Visual Studio Toolbox
7 Tools That Bring Cross-Platform Languages into Visual Studio
It's been another great year for new development tools and technologies. Here are some that bring cross-platform development languages or capabilities into Visual Studio.
- By Terrence Dorsey
As 2015 comes to a close, I thought it would be a good idea follow up on my "Top 7 2014 Dev Tool Releases You Should Know About" roundup and maybe make this an annual affair.
Let's look back at some interesting tools and technologies that were either released or significantly updated over the past 12 months that I haven't covered yet in this column. If there's a theme here, it's bringing tooling or languages not typically associated with Windows-based development into first-class status within the Visual Studio IDE.
So let's jump right in.
Python Tools for Visual Studio
When folks think of the Python programming language and Windows, they often think of IronPython, the open source implementation of Python for the Microsoft .NET Framework. (I was a bit surprised to see a new release just last year!)
A more up-to-date toolset for Python development on Windows is Python Tools for Visual Studio (PTVS), a Microsoft-led, open source plug-in project that turns Visual Studio into a fully featured Python IDE. In addition to Python-specific syntax coloring, IntelliSense, virtual environments, and debugging tools you'd expect in an IDE, PTVS also includes built-in support for IPython notebooks, Django and Microsoft Azure, just to scratch the surface.
The project GitHub site has excellent documentation, including a great PTVS Installation guide. I also recommend checking out the Microsoft Visual Studio channel on YouTube for PTVS, starting with "Getting Started with Python Development Using Visual Studio." And while it's a few years old now, one of the best overview articles about Python and Visual Studio is Scott Hanselman's post, "One of Microsoft's Best-Kept Secrets -- Python Tools for Visual Studio (PTVS)."
Node.js Tools for Visual Studio
Python Tools was a good idea for building Web apps, so Microsoft kept on going and released version 1.0 of Node.js Tools for Visual Studio (NTVS) this year, as well. Like it's brother, PTVS, NTVS provides a full-featured Node.js IDE within Visual Studio including IntelliSense, profiling, debugging (both locally and remotely on Linux, Mac OS or Windows), and much more, as shown in Figure 1.
NTVS includes npm package management through the console and a graphical interface, and provides direct integration with TypeScript, Azure Web Sites, and Cloud Services.
See the project GitHub site for documentation and tutorials, and you'll find a good overview of features and downloads on the Microsoft Node.js Tools for Visual Studio page. For more details check out the blog posts from the Visual Studio team ("Node.js Tools 1.0 for Visual Studio") and Shawn Wildermuth ("Node.js and Visual Studio? Sure!"), as well as Gast -- n Hillar's brief tutorial, "Building Node.js Projects in Visual Studio," over at Dr. Dobb's.
There are lots of reasons why your application should log out information while it's running: execution status, system health, usage statistics, and debugging, of course, just to name a few. Writing out messages could be as easy as opening and writing to a log file in C#, or even just Console.WriteLine.
NLog, the free, open source logging platform for the .NET Framework, Silverlight, Windows Phone and Mono, is a better solution. Using NLog, your application can take internal messages and diagnostics, format them with contextual information (time, severity, environment information and more) via customizable templates, and route the messages to multiple targets including files, event logs, databases, e-mail or ASP.NET Trace.
The NLog Wiki on GitHub provides a tutorial, examples, configuration reference guides and even an API reference. Peter Vogel wrote an excellent introduction to NLog, "A Simple and Sophisticated Logging Tool," right here at VisualStudioMagazine.com. For more examples, see Adam Prescott's "Loggin' Like Bunyan: An NLog Tutorial" and Christos Matskas' "NLog with SQL Server and MVC 4."
Seriously, though, DocumentDB is an important new offering for Azure that's designed to be simple to use for the programmer and flexible for data modeling, while offering high performance at scale. If you're deeply worried about Fifth Normal Form relationships in your data, this might not be for you, but it is a very interesting option.
Herve Roggero does a great job laying out the differences between the technologies in his blog, "DocumentDB vs. Azure SQL vs. Azure Table," so you can start by understanding the strengths of the Microsoft data stores provided by Azure, and David Green takes a helpful look at MongoDB vs. Azure DocumentDB. Julie Lerman, over at MSDN Magazine, wrote a great general introduction to document databases in her Data Points column, "What the Heck Are Document Databases?" It pre-dates DocumentDB by a few years, but explains the theory and the practical strengths and weaknesses, which you'll need to get the most out of your DocumentDB-based projects.
For a hands-on introduction to the nuts and bolts of DocumentDB, start with Ruben Bond's "Azure DocumentDB Primer" and Eitan Blumin's "Introduction to Azure DocumentDB." Aleksandar Grbic wrote an extensive tutorial demonstrating how to build a Node.js Web application using DocumentDB, from creating an account to deploying an Azure Web site. Finally, if you just want to mess around without making a commitment, try the interactive DocumentDB Query Playground (see Figure 2).
Visual Studio Tools for Unity
For game developers who use the Unity Game Engine there was welcome news this year that version 2.0 of Visual Studio 2015 Tools for Unity (VSTU) had shipped, providing full integration between Unity and Visual Studio (see Figure 3). A better IDE for Unity has been a long-standing developer wish. There had been previous versions of VSTU that supported Visual Studio 2010, 2012, and 2013, as well as some third-party and community extensions, but the latest VSTU release is a huge leap forward in capabilities and productivity enhancements for developers.
The most recent VSTU version 2.1 release offers the most seamless integration to date, including debugging Unity within Visual Studio with breakpoints, evaluating variables and complex expressions, and accessing the Unity console within Visual Studio. You also get built-in syntax highlighting for Unity shaders and visualizations for objects and collections. Note, however, that the latest integration features are only for Visual Studio 2015 and Community Edition.
Your first stop to learn more should be the Unity Tools homepage, which has overview information and download links. You'll find some more detail in the Visual Studio team's "Visual Studio Tools for Unity 2.0 Preview" blog post and the official VSTU documentation. If you've never used Unity before, Adam Tuliper provides an excellent tutorial, "Developing Your First Game with Unity and C#," over at MSDN Magazine, and Pixelnest has a good cross-platform primer, "Install Unity and Create Your First Scene."
As mobile devices and cloud computing platforms continue to proliferate, I don't see the need for Web-based APIs letting up any time soon. And while it's not a new tool, RestSharp continues to be an excellent, simple-to-use REST and HTTP client for .NET Framework-based application development. The project is under active development, has great documentation in the RestSharp Wiki on GitHub, and a NuGet package for easy integration into your projects.
There are many good tutorials that will get you up to speed consuming APIs with RestSharp. Pawel Sawicz's "Introduction to RESTSharp" and "Basics of RestSharp in Dot Net" from WeblineIndia are good places to start. For more in-depth examples, check out Christopher Steven Millar's "Get RestSharp Working on Windows Phone 8.1 and Universal Apps" and Damian Karzon's walk-through, "Dropbox API and RestSharp for a C# Developer."
Replace Visual Basic 6 with B4J
Still interested in Visual Basic 6 development? You're not alone. In fact, enthusiasm for Visual Basic 6 staying strong while Visual Basic .NET development wanes. I'm not going to lie: Tooling for Visual Basic 6 development isn't making huge strides forward in 2015, in spite of headlines to the contrary.
B4J, from Anywhere Software, has been touted in the press as "taking up where Visual Basic left off." In actuality it's a free, Java 8-based rapid application development IDE that can create compiled applications for Windows, Mac, Linux and Raspberry Pi. You'll find a video tour of the IDE over on YouTube, as well as tutorials and an active community in the B4X Community forums.
I also recommend reading "Still Looking for a Replacement for VB6?," a thorough review of alternative development environments and languages from Lightquick Web Design.
More New Tools in 2016
Sorry about that last one; it turns out we're not really bringing Visual Basic 6 into the 21st Century. But you're not forgotten.
As for the rest, it's great seeing Visual Studio 2015 mature into a first-class IDE for platforms and languages outside of the usual .NET Framework suspects. I'll continue looking out for unique, usually free tools in the coming year. Stay tuned!