…and referencing a NuGet package. That’s it. That’s the whole thing.
As mentioned in my previous post, I think modding represents one path forward for my favorite programming language, VB.NET. So, I’ve created my own mod to help me explore the years of ideas I’ve had for VB and to share them with others!
ModVB is more than just an unimaginative name. Yes, it means “modified”. But it also means modern. And modulo (with respect to).
And the mathematically inclined will note that:
(VB + ModVB) Mod VB = ModVB
(Assuming ModVB is less than 2x VB, which it is). You see, I really did put a lot of thought into this!
The first wave of new functionality is introduced in the very next post on this blog: ModVB “Wave 1”—JSON Literals & Pattern Matching. Please check out the post and the accompanying video for more details on what you can do with this first pre-release version. I’ve labeled it an alpha because it’s very early in the development of the mod and semantics will likely change. That said, I’ve built it for stability so crashes or hangs should be very few (and please report them if you find them so I can fix them ASAP).
Look forward to future posts from me about how you can make and distribute mods of your own!
About the Developer (Me)
My name is Anthony D. Green (he/his/him). I’m a 37-year-old VB developer from Chicago, IL, USA. I previously worked at Microsoft for 8 years on the Managed Languages team. For most of that time I was the program manager for the Roslyn compilers; communicating with customers and working with Microsoft architects, developers, and testers on designing and implementing the VB.NET and C# compilers in VB and C# respectively as well as a large part of the Roslyn APIs that power the VB and C# IDE experience inside Visual Studio.
For my entire Microsoft career, I served as a language designer on the VB language design team, which I led for 2 years, during which I also served ex officio on the C# language design team. Both before and after my time at Microsoft I’ve worked as a software architect consultant in Chicago for a total of 5 years, mostly working with .NET and other Microsoft technologies.
VB.NET is my passion and I’ve enjoyed working with it both as my profession and as a hobby, starting with VB4 when I was just 13-years-old. I’m building this mod mainly for myself because I want to see the language and experience evolve to their limits but I hope others will get benefit from it as well because I really want to see the VB.NET community grow and flourish. To everyone who chooses to join me on this journey, thank you for trying my mod!
This process is easy solely thanks to the heroic efforts of the Roslyn infrastructure teams throughout the years. I just implement the features; they made it possible for me to share them with you.
- Visual Studio 2022 (any edition, including Community) and VS2022 Update 17.3.1
- Launch Visual Studio 2022 in a new hive
This creates an isolated configuration of Visual Studio 2022 that you can install the mod into. ModVB is currently in pre-release and installing into a separate hive means you can always launch Visual Studio 2022 normally if you encounter bugs or blocking issues or simply want to return to the behavior of “Vanilla” VB.NET. Even when the mod eventually releases you may wish to use separate hives to maintain this flexibility.
- Open the Visual Studio 2022 Developer Command prompt (Start > “Dev…”)
- Enter the command `devenv /rootSuffix ModVB`
- Click “Continue without code” (bottom right)
You can always confirm when you’re using the ModVB hive because “MODVB” will appear in the upper right corner of Visual Studio 2022 when you’re using that hive.
- Add the ModVB MyGet VSIX feed to Visual Studio as an additional VSIX gallery
- On the menu, open “Extensions > Manage Extensions”
- Click “Change your settings for Extensions” (bottom left)
- Under “Additional Extension Galleries”, add a new gallery
- Name: ModVB
- Click “Apply” and then “OK”
- Download and install the ModVB Language Services extension
- On the menu, open “Extensions > Manage Extensions”
- On the left, select Online > ModVB
- Download the “ModVB Language Services (Built with Roslyn)” extension
- Close Visual Studio 2022
- The VSIX Installer will open. Follow the instructions in the installer to complete the installation
- Re-launch the Visual Studio 2022 ModVB hive by entering `devenv /rootSuffix ModVB` at the Developer Command Prompt. You may wish to create a separate Windows shortcut with this option for convenience.
Installing the language services VSIX enables any new or modded IDE experiences inside of Visual Studio 2022, including the IDE experiences for new language features such as IntelliSense, syntax highlighting, and code actions. However, for building projects using new or modded language features and semantics you’ll need to reference the ModVB compiler from those projects. This also enables those projects to build as part of your CI/CD process on build servers which won’t have Visual Studio 2022 or the ModVB Language Services VSIX installed.
- Add the ModVB MyGet NuGet feed to Visual Studio as an additional NuGet package source
- On the menu, open “Tools > NuGet Package Manager > Package Manager Settings”
- On the left, select “NuGet Package Manager > Package Sources”
- Add a new package source
- Name: ModVB
- Click “Update” and then “OK”
- Install the ModVB.Compilers.Toolset package to any projects you want to compile using new language features
- On the menu, open “Project > Manage NuGet Packages…”
- At the top, select Browse
- Select the ModVB package source in the drop down at the top right
- Make sure “Include prerelease” is checked (next to search box)
- Select “ModVB.Compilers.Toolset” on the left
- Click “Install” on the right
Congrats! Your project will now build with the ModVB compiler and have access to new features for VB.NET. Of course, if you’re not using these features the behavior of building will be exactly the same as before. Remember to add this package to any additional projects where you wish to use new functionality. Happy coding!
- Read this post detailing the new features in “Wave 1” of the ModVB alpha
- Try out the mod—do anything you’re interested in doing with the new features
- File bugs at https://github.com/modvb/backlog/issues
- Feedback and discussion on my blog, your blog, Twitter, YouTube, or wherever you hang out with other VB.NET enthusiasts!
- Don’t forget to SHARE!
Anthony D, I have always believed that you could and are able to change the history of VB.net
Thank you very much
LikeLiked by 2 people
LikeLiked by 1 person
Pingback: 试用 ModVB（一）：安装教程+使用 JSON 常量和 JSON 模式匹配 - 算法网
Pingback: 试用 ModVB（一）：安装教程+使用 JSON 常量和 JSON 模式匹配 | 呱唧呱唧网
Pingback: 试用 ModVB（一）：安装教程+使用 JSON 常量和 JSON 模式匹配 - CodeUUU
With people like you, I am now confident that VB is noway near death. This may be a good way for the language to evolve without losing its character.