Visual Studio Toolbox
17 New Extensions for Visual Studio 2015
Here's a round-up of the most recently released extensions for Visual Studio. There's something here for everyone, from starting a new project to deploying your code.
- By Terrence Dorsey
The extensibility of Visual Studio and huge community of developers sharing their tools and extensions means there's always something new to try or a better solution to a daily coding irritation. Here's a round-up of the latest contributions to the Visual Studio Gallery, the vast majority of them free and created by developers just like you.
Project Setup and Templates
Let's start at the beginning: creating and configuring a new project. Nothing helps make that process more pleasant than a well-thought-out template.
If you're setting up a new Web project using ASP.NET, definitely take a look at the new ASP.NET Core Template Pack by the prolific Mads Kristensen. This has just recently been release, so keep an eye out for updates and additions, but the initial version includes templates for ASP.NET Core MVC Starter Application and a Static Web site project.
What makes these special? As Kristensen points out in the notes, the ASP.NET Core MVC Starter Application "is conceptually somewhere between the current Empty and Web Application templates" and contains no client-side libraries or tools. The Static Web site project does exactly what it states using the new ASP.NET Core project system, including the ability to manage dependencies with Bower and npm and publish directly through Visual Studio.
Testing is important, of course, and Chris Martinez's More xUnit Templates is a new package of project templates, item templates and code snippets that simplify the task of integrating xUnit.net unit testing into your project (see Figure 1). A nice feature of More xUnit Templates is that Martinez has forked xUnit with a convention for parsing test class and method names that provides more readable output in Test Explorer. For example, "cost_gt_50" becomes "cost > 50" in the output. More xUnit Templates is still fully compatible with the official xUnit.net test runner, however. For details on the parsing, see [Proposal] Support Automatic "Pretty" Display Name for Test Cases and "Pretty" Display Name Implementation for Test Cases on GitHub.
NGauge, by William Cowell, is another great tool for setting up tests in your project using NCrunch and Gauge. NGauge takes the best of both tools -- writing your test cases using business language in Gauge, executing your Gauge tests using the automated concurrent testing capabilities of NCrunch. NGauge reads your Gauge tests and creates the bridging code for the xUnit tests employed by NCrunch.
Coding Tools for Visual Studio
Once you've started a project, here are some new tools that personalize, streamline, or extend features of the Visual Studio development environment to help you get work accomplished more easily, more quickly and with fewer bugs.
Jason Rai's LetMeEdit extension is a fork of Ed Muñoz's EditProj extension. Both extensions let you right-click on project files in Solution Explorer to edit them without unloading them first. LetMeEdit extends EditProj by enabling you to right-click edit solution files, as well, and also correctly shows the name of the file you're editing (instead of a GUID). Rai is working on further enhancements, so if you have feature requests, ideas or want to contribute, head over to the editProjFiles repository on GitHub and get involved.
The SeeUsingsLater extension, by Nate Hitze, does something delightfully simple and useful: It automatically collapses the "using" statement regions in a C# source file when you open it in Visual Studio.
Another competitor in the competition for BestDescriptiveNameWithoutSpaces is Adrian Rusznica's new ToLazy extension (see Figure 2), which does something different, but also delightfully simple and useful: With a quick keyboard shortcut it does a Roslyn refactoring to a Lazy property type, creating the get and set code for you. Not really all that lazy when you think about it.
This one kind of crosses the line between template and tool -- and also could use some spaces in the name. VSIXEasyEfRepo, by Alex Bertini, provides a menu item in Visual Studio to add an Entity Framework generic repository class project that includes pre-defined CRUD operations including add, add range, delete, delete range and query. You need an existing EF reference in your project before using VSIXEasyEfRepo, but it's definitely a handy new tool for quickly creating a simple data layer.
Jure Bogunovic's Lightnium.CodeGen extension is another helpful tool to automate creation and running of Web application tests. Lightnium.CodeGen works with Lightnium.Core, a test automation framework built on top of the Selenium browser automation toolset.
More Tools to Extend Visual Studio
NamR, by Ralf 'bexxx' Beckers, extends Visual Studio IntelliSense to provide auto-completion for your parameter names and variable declarations (Sublime Text does this and I love love love it).
VSColorPicker adds a color picker to Visual Studio that lets you pick a color on your computer and get the hex, RGB, hue, saturation, and brightness values, pick from an existing palette, or define custom color palettes.
Another visual designer tool, Move Tray, by Ivan Ferrer Villa, changes the position of the WinForms Form Designer from the bottom of the window to the right-hand side of the window.
Build and Deploy
The final steps of wrapping up, building, and deploying your project are sometimes the ones you most appreciate help completing.
CommentDotifyer is a great, new extension to help accomplish one simple task that will save you a ton of work. If you're using StyleCop to enforce style and consistency rules in your C# code, CommentDotifyer automatically runs through your files and inserts periods at the end of comment lines to address the StyleCop issue SA1629: DocumentationTextMustEndWithAPeriod.
Don't forget Christophe Heiser's Visual StyleCop extension to integrate StyleCop testing directly into Visual Studio 2015.
Speaking of build-time customizations, George Samartzidis's MSBuildTargets extension let's you execute custom MSBuild targets by just right-clicking on the project item in Visual Studio.
The Android Localization extension, by Mikael Nensén, helps your project keep track of and helps you edit the multiple language-specific Strings.xml files used for localization in a Xamarin Android project.
If you're using the SharpUpdater bootstrap loader for automatically updating applications, the SharpDeploy extension provides packaging and deployment tools within Visual Studio. When you're ready to deploy, just click a menu item. You'll be prompted to fill in version, manifest, product and deployment details, then it builds and deploys your project using GitHub - cnsharp/SharpUpdater.Server.
Finally, IronGit is a new project currently in preview by AtCipher that provides data-at-rest protection for local and remote Git repositories. According to AtCipher's FAQ, Git can provide protection for data transfer, but by default doesn't encrypt your local or remote repositories. IronGit is meant to provide that extra layer of security for your code. A 30-day trial is available.
Terrence Dorsey is a technical writer, editor and content strategist specializing in technology and software development. Over the last 25-plus years he has worked on developer-focused projects at ESPN, The Code Project, and Microsoft. Read his blog at http://terrencedorsey.com or follow @tpdorsey on Twitter.