Visual Studio 2019 just launched, and .NET Core 3 isn’t even here yet, but already there are many useful Visual Studio extensions available to help developers get a head start on the future of Microsoft-centric programming.
In the best of worlds, the open source, cross-platform .NET Core 3 would have been available as a general availability release when VS 2019 launched on April 2, as it’s central to Microsoft’s new development direction. The company has made it clear .NET Core is the future and is prodding developers to get onboard and forget (well, at least deprecate) the ageing, Windows-only .NET Framework.
However, even though .NET Core 3 wasn’t ready at VS 2019 launch time, the .NET Core 3 release candidate and v2.x editions can be put through their paces in the flagship IDE. To help with that, there are already numerous Visual Studio 2019 extensions that can help in different ways, ranging from providing templates that typically already include boilerplate code to help coders get started quickly, to conversion tools, to simple one-function code helpers.
Here then, is a look at some of the top, free extensions in the Visual Studio Marketplace — with an emphasis on those that are tagged with “.NET Core 3” or mention that term — that target Visual Studio 2019, as measured by subjective “relevance” and the number of downloads:
Convert Project To .NET Core 3
This project from Brian Lagunas is an experimental work in progress with a great promise (if fulfilled): convert a Windows Presentation Foundation (WPF) project for use with .NET Core 3.
As such, it has only been downloaded 456 times (367 installs), earning an average rating of 4 (scale to 5) from three developers who reviewed it.
Its specific promise is: “When you convert your application, the extension will update your CSPROJ file to the new .NET Core SDK style format.”
What it keeps:
- Maintains the project version (uses AssemblyVersion)
- Maintains property groups
- Maintains all project references
- Maintains all items where the “Build Action” is Resource (everything else is removed)
- Maintains all NuGet packages (it deletes the packages.config file)
- Comments out all Assembly related attributes in the AssemblyInfo.cs file
However, currently references are not retained, so developers will have to re-add any references manually. Although a work in progress that needs finishing, this tool (or similar ones) is likely to be in great demand when .NET Core 3.0 rolls out later this year.
Dotfuscator – .NET Obfuscator & App Hardening
This comes from PreEmptive Solutions with the aim of improving compliance and hindering attacks against .NET, Xamarin, UWP, .NET Core and Unity Apps. It comes in a community edition as well as a for-pay professional edition.
Its description reads:
Dotfuscator is a .NET Obfuscator and App Hardener that helps companies with apps “worth protecting” secure trade secrets (IP), reduce piracy/counterfeiting, and protect against tampering and unauthorized debugging. Dotfuscator works with all flavors of .NET including Xamarin, Unity, ASP-NET, and UWP apps. PreEmptive Protection also supports Java/Android and iOS apps.
Apps that may need to be protected, the company said, include those with innovative features, that contain sensitive data, that perform a critical function or are shipped internationally.
By combining binary hardening, detection and defense and alert controls, the company said it provides risk mitigation for threats such as: intellectual property theft; fraud and unauthorized access; trust and brand damage; confidential data theft; and revenue loss.
The marketplace item lists nearly 26,000 “clicks” (not downloads or installs) and an average 4.2 rating from 18 reviewers. It covers VS editions ranging from 2019 back to 2012.
.NET Core REST API Template
Coming from Jon Mikel Inza, this project template is designed to accelerate the creation of .NET Core 2.1.x API projects, though, like others targeting v2.x .NET Core editions, it can probably be easily upgraded to support .NET Core 3.
Inza says this extension (which works with VS 2019 and 2017) helps coders create a .NET Core solution by taking into account:
- DI according to .NET Core 2.1.x practices (without external dependencies)
- Exception handling settings according to .NET Core 2.1.x practices (exception and validation filters are not required anymore)
- AppSettings (.NET Core 2.1.x way)
- Mapping settings (based on Automapper)
- OpenAPI basic configuration (can be enabled/disabled by configuration)
- API Versioning
Inza has provided documentation (for VS 2017) to use the extension, which has 22,550 downloads (15,287 installs) and a perfect 5 rating from two reviewers.
C# Console App Boilerplate
Created by Wei Ye, this tool has been installed more than 9,500 times, even though it’s humbly described as “Yet another C# console app project template with batteries included.”
Listed benefits include:
- The benefits of using this template are:
- New SDK csproj file
- Asynchronous Main method
- Overall exception handling
- Stopwatch to measure the total time
- UTF-8 support
- .NET Core support
- Installed log4net with configuration for console and file appenders
- Latest Vanilla library of lovely extensions
The extension works with VS 2019 and 2017. It has only one review, rating it a 5.
OpenAPI (Swagger) Connected Service
Developed by Dmitry Pavlov, this extension provides a connected service for Visual Studio to generate OpenAPI (Swagger) Web service references. Specifically it generates C# HttpClient code for OpenAPI (formerly Swagger API) Web service with NSwag.
Resident Visual Studio Magazine Practical .NET columnist Peter Vogel has used NSwag, stating his purpose in writing about it: “In part I’m doing this to illustrate one of the attractive aspects of the OpenAPI specification: The variety of tools that support it (Visual Studio has no built-in support, though).”
There are many more extensions available in the Visual Studio Marketplace for using Visual Studio 2019 and .NET Core (even the preview v3), but keep in mind that the site’s search mechanism doesn’t seem to work correctly when searching for tags, as a search specifically for “.NET Core 3” tagged entries brings up many that not only don’t feature the tag but don’t even mention the term.
However, the marketplace has tools to winnow your results in other ways, so you can do your own investigations to, for example, search for items tagged with “.NET Core 3” that are free and work with Visual Studio 2019 and so on, even specifying the category of extension (templates, tools).