Visual Studio Toolbox
16 New Tools and Extensions for Visual Studio
The tools and extensions keep on coming, so here's another round-up of new releases. You keep building extensions, we'll keep sharing them with the Visual Studio community.
- By Terrence Dorsey
The summer may be coming to an unwelcome end -- except to those of us looking forward to fall colors and skiing -- but there's been no let up in the release of new tools and extensions for Visual Studio. That includes the first trickle of extensions specifically for the upcoming Visual Studio 15. I've pulled together a round-up of 16 new contributions to the Visual Studio Gallery that range from project templates to security toolsets to simple utilities that make you more productive. Bonus: They're all free.
Last year in 15 Visual Studio Project Templates To Jump Start Your Code I introduced you to the Windows IoT Core Project Templates, which provides the scaffolding for building cross-platform "Internet of Things" applications in Visual Studio for Windows 10 IoT Core devices. These include Arduino, Arrow DragonBoard, MinnowBoard MAX, Raspberry Pi, along with recently announced support four Intel Joule. For more background information, see Tyler Whitney's Guide to Universal Windows Platform (UWP) apps on MSDN.
While the Windows IoT Core Project Templates aren't technically new, they have been updated recently to support additional platforms. Plus, Microsoft has released a new Windows IoT Core Project Templates for VS 15 package specifically for Visual Studio 15.
Another great new addition is Alexander Krylkov's Simplify.Web.Templates, a collection of project templates for building web applications with Krylkov's Simplify.Web. This is a fast, lightweight .NET Framework-based web framework based on MVC and OWIN, that includes its own dependency injection (Simplify.DI) and templating engine (Simplify.Templates). Simplify.Web also includes great documentation in the Simplify.Web Wiki, a feature that always gets my attention.
The Latest from Mads Kristensen
Visual Studio extension projects from Mads Kristensen are no strangers to this column, and Kristensen has been busy this summer with new and updated tools. Here are just the ones I stumbled upon recently ... there may be more!
Speaking of packs, Syntax Highlighting Pack is a collection of code syntax highlighting schemes that covers 30 languages out of the box, from batch files to YAML. This extension takes advantage of a feature I did not know about: Visual Studio can load TextMate Bundles for language services.
TextMate, by the way, is a popular Mac OS code editor, and the cross-platform Sublime Text editor also uses TextMate bundles. Makes me wonder what other syntax highlighting features from my August 2014 article Semantic Code Highlighting might be possible... .
Also take a look at Kristensen's File Icons pack, which provides new or improved descriptive file icons for hundreds of file types not recognized by default in Solution Explorer. There's even a feature that lets you report file types that don't yet have icons by creating an issue in the project GitHub repo.
Tools for Better Coding
Let's take a look at some more new tools and extensions that help you while you're coding. A good place to start is AttackFlow Community Edition extension, a free version of AttackFlow, an interactive static security analyzer. AttackFlow reviews your code as you work against security best practices and known vulnerabilities and provides real-time notifications so you can fix your code before shipping. The free community edition provides notifications for 6 vulnerabilities, while the paid version includes over 40.
DependencyInjectionToolset, by Akos Nagy, is a simple Visual Studio 2015 extension that helps automatically create constructor injection code parameters to take the grueling work out of creating well written, self-documenting dependency injection code.
A new Unit Test Boilerplate Generator extension by Microsoft's David Rickard lets you create a unit test for a given class on the fly from within Solution Explorer. The extension supports the Moq mocking framework for the .NET Framework and Unity for dependency injection.
If you're coding in C++ close to the metal, check out Henk-Jan Lebbink's Intrinsics Dude extension, which provides statement completion, tooltips, and signature help for compiler intrinsic functions, including the ability to enable or disable support for specific processor architectures. Want to code even closer to the metal? Lebbink's AsmDude extension provides assembly language syntax highlighting, code completion, label analysis, and documentation for i386, x64, MMX, SSE, AVX, AVX2 and Xeon Phi architectures. See the intrinsics-dude and asm-dude projects on GitHub for details, documentation, and issues.
Visual Studio Utilities
Here are a few extensions that add convenience functions to Visual Studio. For example, Respacer, by Drew Keller, helps normalize indentation within a code file, folder, or an entire project between tabs or spaces. Simple as that! I'm not even going to judge if you're using tabs instead of spaces... .
Visual Studio Bitbucket Extension, of course, adds built-in support for Bitbucket-based git repositories. (Two of Bitbucket's interesting features versus GitHub are free private repositories and a free tier for small teams.) The Bitbucket extension lets you handle all the usual tasks from within Visual Studio including setting up remote repos, cloning, pushing, pulling, handling pull requests and so on. A nice alternative DCVS solution to GitHub should you need it.
On the topic of source control, the Git Submodules extension, by Tobias Sekan, is a graphical git client for Visual Studio that provides more granular control over git submodules than many other clients. Submodules are simply git projects that are dependencies within other git projects, so source control has to be handled separately for the submodules. The Git Submodules extension lets you initialize and de-initialize submodules, check submodule status, pull or fetch individually or all submodules, and more.
, by Alon Amsalem, is a handy extension for monitoring processes and services on the back end of your development workflow. It lets you monitor build and integration services like AppVeyor, Jenkins, TeamCity, or TFS, local Windows services, HTTP status, TCP ports, and more. Colored service health indicators are displayed in a tab within Visual Studio. Don't see a service that you need to monitor? File an issue with the project or make your own contribution to the codebase.
HJSON for Configuration
Here's a very interesting project that caught my eye this month: the Hjson extension provides HJSON syntax support within Visual Studio 2015 and 15. What's that? Well, Hjson, the Human JSON is a project to allow writing YAML-style configuration in a JSON-like format that is less punctuation sensitive, doesn't require quoted key names or strings, and allows for commented metadata. HJSON is easier to read and write, but can be quickly transformed to compliant JSON.
Open Source Extension Projects
In closing, I thought it worth pointing out that a solid majority the projects highlighted here today are open-source projects with public GitHub repos. That includes AnyStatus, Git Submodules, HJSON, Intrinsics Dude and ASM Dude, Respacer, Simplify.Web, Snippet Pack Project Template, Syntax Highlighting Pack -- actually, all of Mads Kristensen's projects -- and the Windows IoT Core resources.
It's great that Visual Studio Gallery gives contributors the ability to link directly to their repos, where you can review the code, read wiki documentation, post issues, grab the code, and even make your own contribution and pull requests. You can also see the number of issues and pull requests right in the gallery listing. I noticed that File Icons even enables you to create project issues directly from the extension.
I love this level of community transparency and collaboration. Keep it up folks. And don't forget to write documentation for your projects. I can't in good conscience highlight tools and extensions, no matter how great they may be, if I can't tell what they do. Cheers!