Microsoft recently announced the availability of a new set of tools for building Node.js applications.
Last week at the Microsoft Build 2014 developer conference, Microsoft released its Node.js Tools for Visual Studio 1.0 Beta. The release of the open-source tools, which has included contributions from the community since its beginning, includes support for Microsoft’s TypeScript superset of JavaScript, as well as numerous other new capabilities that provide developers with a more productive experience, including expanding support to Visual Studio Express for Web, debugging enhancements, remote debugging in Azure, Edit and Continue, and Azure Worker role support.
Node.js is a software platform for scalable server-side and networking applications. Node.js applications are written in JavaScript, and can be run within the Node.js runtime on Windows, Mac OS X and Linux with no changes. Applications are designed to maximize throughput and efficiency, using non-blocking I/O and asynchronous events. They run single-threaded, although Node.js uses multiple threads for file and network events. The Node.js platform is built on Google Chrome’s JavaScript runtime for easily building fast, scalable network applications.
S. “Soma” Somasegar, corporate vice president of Microsoft’s Developer Division, described the new Node.js Tools for Visual Studio 1.0 Beta in a blog post that itself was a follow-up to Microsoft Software Architect Scott Hanselman’s November blog post introducing Node.js for Visual Studio (NVTS). Developers can download the bits on the CodePlex Website here.
In his post, Somasegar notes that Node.js has become a popular JavaScript-based server-side development language. Microsoft has had support for Node.js in Azure via Azure Web Sites and Azure Mobile Services for some time, he said.
Now, Microsoft’s Node.js Tools for Visual Studio offers “one of the best Node.js development environments available today, from great JavaScript editor integration, to NPM package management, to fully integrated debugging and diagnostics, to simple deployment—Visual Studio is a great environment for developing your Node.js applications,” Somasegar said.
Microsoft said many developers are using TypeScript in Node.js projects, “so adding TypeScript support in NTVS provides a way to enjoy the best of TypeScript, Node.js and Visual Studio together,” Somasegar said. “While Node.js enables you to scale your application’s runtime, TypeScript enables you to scale your application’s development. With the 1.0 Beta, NTVS has full debugging, Intellisense and profiling support for TypeScript.”
One of the most important features of NTVS is having the power and convenience of Visual Studio’s debugger available for Node.js and the underlying V8 JavaScript engine. The debugging support in NTVS supports all the core debugging features developers expect in Visual Studio: breakpoints, call-stacks, locals, watches, conditional breakpoints, filters, when-hit actions and more, Somasegar said.
“The debugging support in NTVS is available both when you F5 to run your Node project from Visual Studio, and when you remote debug a Node.js app running on Windows Azure—including even debugging an app running on Linux,” Somasegar said.
The open-source Node.js Tools for Visual Studio are licensed under the Apache 2.0 license and hosted on CodePlex, Microsoft’s site for hosting open-source projects.
“NTVS was developed by the same team that brought you PTVS with help from friends like Bart Read from Red Gate (he did the npm GUI), and Dmitry Tretyakov from Clickberry for several debugger fixes & features,” including the Edit and Continue feature, Hanselman wrote in his post from November. Edit and Continue enables developers to make changes to server-side code while it is running. This means developers can frequently update their application without needing to restart the server, Somasegar said.
Also, with the Azure Node.js SDK along with NTVS available for the free Visual Studio 2013 Express for Web, developers have the tools required to build high-performance Node.js Websites and networked apps using Visual Studio and Azure.