Visual Studio Toolbox
New Extensions for Visual Studio 2017
Here’s a roundup of the newest tools and extensions available for the new Visual Studio 2017 release.
- By Terrence Dorsey
Now that Visual Studio 2017 has been out in the world for a few months, I'm seeing a lot of new extensions written either specifically for the latest release of the IDE or updated with support for Visual Studio 2015 and 2017.
It's worth pointing out again that most of these tools and extensions are written by your fellow developers and shared for free. If you install any of the tools here -- or really any community-source extensions on Visual Studio Marketplace -- be sure to give the developer a word of thanks and a helpful review. If you love the tool, tell a friend. If you have problems, I'm sure the developer will appreciate constructive feedback.
Now let's dig into some new tools ...
Build, Debug, Test
Mole for Visual Studio 2017 and Mole for Visual Studio 2015, by Karl Shifflett, provide debugger visualizers that run in Visual Studio and give you a clear view of object properties and fields as you debug your .NET Framework-based projects. Mole gives you a visual map of your Windows Presentation Foundation (WPF) for Windows Forms UI elements, and also provides a "MoloScope" viewer for searching, navigating, and even editing objects, properties, WPF data bindings, and more (see Figure 1). You'll also find documentation, background information and how-to videos for Mole in Shifflett's Mole Visual Studio Debugger Visualizer blog posts.
Another useful test and debugging tool is Microsoft's Test Adapter for Google Test, an extension designed to work with the Google Test Adapter extension and the Google Test Framework to improve unit testing support specifically for C++ developers using Visual Studio 2017. (If you're using an older version, the original Google Test Adapter extension will work on its own.) The entire stack of extensions is based on XUnit, and together they enable automated unit test discovery, execution, and reporting within the Visual Studio environment. Test Adapter includes new project templates for Google Test, automated setup of required NuGet packages, and Google Test item templates. Development is ongoing, so check in frequently for issues, fixes and new features.
Parallel Builds Monitor, by Krzysztof Buchacz, gives you a visual bar-graph indicator of compilation tasks, allowing you to compare build times of concurrent build tasks, optimize the number of parallel builds and basically have a more granular view of the compilation process than shown in the Output window.
Specifically for testing or tweaking extensions, take a look at the Mobile Essentials Experimentalizer, which lets you configure downloaded VSIX extension projects to automatically load as Experimental instances. In addition to allowing you to test your VSIX code, Experimentalizer lets you co-load alternate or tweaked versions of default or already installed extensions. Related is information on setting up a Serverless Custom Visual Studio Gallery with Azure Functions to handle your Experimental VSIX projects. For additional information on Experimental instances, see the Visual Studio SDK documentation page, The Experimental Instance, and Mario Majčica's CodeProject article, "Resetting the Visual Studio Experimental Instance."
Handling Files and Repositories
Managing checkouts and changes when working with Team Foundation Server (TFS) can be time-consuming, complicated and error-prone. Kulikov Denis has written a trio of extensions that can help. Auto Uncheckout for Visual Studio 2017 can undo checkouts for unchanged files. If you've checked out multiple files, but only make changes to some of them, Auto Uncheckout resets the checkout status of the files you didn't change.
Last Work Item for Visual Studio 2017 allows you to quickly select the TFS work item associated with the most recent changeset on the Pending Changes page, simplifying the task of updating the issues related to your latest check in.
Auto Merge for Visual Studio 2017 lets you select a changeset in TFS and any branches the changes should be merged into, then handles all of the merges automatically.
These are three simple yet extremely helpful extensions for TFS file management. Denis also has versions of these extensions for Visual Studio 2015 and 2013.
For files already on your development machine, Utkarsh Chauhan's Open File in Windows Explorer provides a right-click menu item in Solution Explorer allowing you to select a file and open its file system location in Windows Explorer. This extension works with Visual Studio 2012, 2013, 2015 and 2017.
CopyWithLineNumbers, by Masaru Tsuchiyama, is handy for sharing individual lines of code by prefacing each line of a copied code snippet with its line number. Note that the line numbers are within the context of the source file, not the snippet itself. If you copy a snippet starting 10 lines into your file, the starting line number is 10:. I can see this being useful for discussions of code where you'd want to include the context within the larger code file.
Working in Visual Studio
Another handy extension from Karl Shifflett: Font Sizer for Visual Studio 2017 gives you keyboard shortcuts to increase and decrease both editor and environment font sizes. Useful for presentations -- and in fact based on Sam Harwell's Presentation Mode extension -- and if your eyes are getting old and you often move from desktop monitor to laptop display and back.
Semantic Highlighter adds granular semantic code-coloring options for C# tokens and symbols. See the SemanticHighlighter GitHub repository for information about recommended color settings and additional supported token types. If you're interested in learning more about semantic code highlighting, see my August 2014 article, appropriately titled "."
Attila Gál's JsonToCsFileGenerator is great for creating code to work with API output or static data files. It does exactly what the name implies: takes a non-nested JSON input and creates a static C# class with matching fields. As a practical matter, the "non-nested" requirement may be a stumbling block for some projects. If that's the case, there are some older extensions that also let you create a C# class based on JSON input, including Dang Khuong's Json2Csharp for Visual Studio 2015 and 2017 and Mohammed Omar's Json2Model for Visual Studio 2013.
Is Karl Shifflett the new Mads Kristensen? Here's a third useful, new extension from Shifflett, Tame Visual Studio Editor Tool Tips. If you're tired of seeing tooltips all the time, this extension turns them off unless you press the Ctrl key while hovering over an object.
You know I love documentation and strongly recommend any tools that make creating docs easier. I've covered both of these tools previously (along with others in "Doing Visual Studio and .NET Code Documentation Right") and it's great to see tools like these updated quickly for new releases of Visual Studio.
Remarker for Visual Studio 2017, by Gil Yoder, enables font size and coloring in comments via a simple inline markup language (see Figure 2). Colors are custom-configurable. Yoder also has older versions of Remarker for Visual Studio 2015 and Remarker for Visual Studio 2013.
PowerShell Tools for Visual Studio 2017, by Adam R. Driscoll, gives you a powerful set of tools for writing, running and debugging PowerShell scripts with all of the coding conveniences of Visual Studio at your fingertips. You can create PowerShell scripts and modules as Visual Studio projects and execute scripts and commands within the IDE. You can also use the Visual Studio locals, watch, and call stack tools for debugging your PowerShell code, and it even provides built-in support for unit testing with the Pester framework. You can also install PowerShell Tools for Visual Studio 2015 or versions for Visual Studio 2013 and 2012. Licensed Pro versions of PowerShell Tools are available from PoshTools.
ESharper for Visual Studio 2017, by Sergey Vlasov, provides tools for writing functions and commands for Excel 2013 and 2016 in C# within Visual Studio (see Figure 3). You write the functions in the Visual Studio editor, with full syntax highlighting and IntelliSense support, and register the extension in Excel to get one-click updates of your code between Excel and Visual Studio. A trial is available. For documentation and details on personal or per-seat business licenses, see the ESharper Web site.
VSProlog for Visual Studio 2017, by Sebastian Gomez, adds support for Arity/Prolog syntax highlighting and Go To Definition search to Visual Studio (see Figure 4). You can also get versions for Visual Studio 2015, 2013, 2012 and 2010. Peter Gabel was involved in writing this version of Prolog and you can learn more about it in his blog post Arity/Prolog32 as well as the GitHub repository for ArityProlog32: Arity's Prolog Compiler and Interpreter.
Why Prolog in 2017? It's still a very powerful functional logic language that's used extensively in complex business systems and machine learning applications. See Carlos Oliveira's article, "Why Learning Prolog Can Make You a Better Programmer," for further enticement.
Finally, I want you all to be well and keep coding, so check out Healthy with VS, by Grzegorz Jamiołkowski (djfoxer), a Pomodoro Technique timer for Visual Studio 2015 and 2017. It helps you organize work sessions with a Pomodoro timer and, when it's time to take a break, gives you animated stretch and exercise examples. There's even an optional activity log so you can keep track of your work and break sessions ... and then write an application that charts out your work data or something. Why not?