NTVS介绍

[原文发表地址] Introducing node.js Tools for Visual Studio

[原文发表时间] 2013-11-21

image

        你会觉得微软将node.js工具引进到了Visual Studio中是不能再疯狂的事了。我们将集成到Visual Studio中的node.js工具称为NTVS。

        NTVS可以在VS2012和2013中运行。一些之前使用过PTVS工具的node.js爱好者们开始将node.js集成到VS。与此同时PTVS项目组也从事于node.js的集成,所以他们的加入会使NTVS成为一个公共的项目。PTVS项目组以及来自Red Gate公司的Bart Read和来自Clickberry公司的Dmitry Tretyakov也参与过NTVS的开发。

        NTVS从开始就是开源的,并从一开始接受捐款。它提供编辑,智能感应,分析,公共管理,本地调试和远程调试(当在Windows/MacOS/Linux上运行服务时),以及可以发布到Azure网站和云端服务。

        他们如何在VS上做到这些的的确是很不可思议的,所以我推荐你下载NTVS并且尝试一下,因为一些东西(即使这是一个alpha版本)真的很棒。

Blank Express Application

        NTVS利用V8分析的编程接口和VS的报告功能让你能够知道你的程序在哪花费的时间。

注: 请看文件|新建项目对话框。visual studio把各个编程语言分类组织起来,因此Node.js是在javascript语言结点下。 此外你还会看到Python和Django,ios和c#下的Android、vb、f#,所有的都在Visual Studio中。

        令我印象深刻的是将Node.js集成到VS中他们没有尝试重新创建或者重新做现有的已经工作的很好的模块。它是节点,它使用V8调试器运行node.exe,以及使用人们正在用的V8分析器,例如:NTVS可以从V8分析器中取到输出,并展示在VS的分析报告分析器中,不需要引入新的东西,仅仅使用了现有的合适的工具去为Node.js工作。

使用NFVS搭建Ghost blogging engine工程

        我们一起看一个例子:

        在visual studio上点击进入:File->New Project,单击JavaScript,然后选择”From Existing Node.js code”并打开。

From Existing node.js Code

        指向你的Ghost所在文件夹。

Create from Existing Code

下一步是使VS识别index.js是起始页,点击下一步,保存文件,完成。

Create New Project from Existing Code

        这时,你已经在VS引入了Ghost。

        自从我得到了网络必备插件,我还得到一个很好的分屏降价编辑器。

        这时,你可以点击F5去调试,Ctrl+F5去运行,还要注意项目右下角属性框中的属性:节点路径和端口以及启动文件。当然,您可以更改这些。

Ghost inside Visual Studio with NTVS

下面是我在本地运行Ghost,你可以看到node路径,ghost.js文件和我的浏览器。

Running Ghost in VS with node for VS

你会得到好的智能感知和方法签名的帮助。

Intellisense example

调试

        NTVS完美的支持node应用程序的调试。包括支持单步执行,打断点,"异常中断",以及局部变量、观察窗口、调用堆栈的工具窗口。

        就像任何其他语言一样,您可以管理异常。下面的对话框中,列出了Node.js异常及其他语言托管和非托管代码的异常。

Managing Exceptions in node.js for Visual Studio

        调试就像之前一样,使用Node V8调试器。不同之处在于Visual Studio会通过另一个socket连接调试器 (你也可以在Linux 或Mac上远程调试) ,而且会将V8对于调试的理解转化成Visual Studio对于调试的理解。调试体验是无缝的,完全一样。

        在这个屏幕快照中,您可以看到正在调试的node.exe,我正在运行的Ghost。你可以看到调用堆栈和监视窗口中的局部变量。我可以检查变量、单步执行,在调试 Web 应用程序时,做一切想要做的。

Debugging Session of Ghost in VS with Node Tools for Visual Studio

Visual Studio中NPM的使用

        NPM的体验也是很酷的,NTVS会一直监视文件系统,因此NTVS更欢迎从命令行运行npm或从node即时窗口中运行npm,同时在visual studio中也会看到变化。

        你还可以使用npm程序包管理对话框来搜索存储库和以图形方式安装软件包。由你来决定。

npm package management within VS

        这是正在安装软件包的截图…

Installing a module

        物理node组件和如何处理这些组件是纯节点,VS并不关心。 但是,visual studio的解决方案资源管理器也提供了以物理视图为基础的逻辑视图。

image

注: 我个人真的很喜欢这点。我认为它很有前景并希望能在.NET中也看到这样处理,这种物理和逻辑结构伴随着展现NuGet包的依赖树。它能够帮助我更好的了解项目。

        还有很多,有 REPL交互式窗口。你可以像其他ASP.net的web工程一样使用发布导向来发布node.js应用。你也可以使用Git或者VS 发布方式直接发布node.js应用到Azure。

        你可以通过启动包含有远程调试代理的Node,远程调试运行在其他机器上的node程序

image

 node.exe RemoteDebug.js -machineport 5860 script.js

        如前所述,你可以远程调试在任何服务器操作系统上运行的visual studio和node应用程序。

总结:

        我个人 很满意Visual Studio能够变成(在我看来很短的时间内)非常称职的语言和环境工厂。

        NTVS是基于Apache license的完全开源的项目。他们欢迎各种共享和错误报告。虽然现在是Alpha版本并比较早期,但是它真的很棒。去使用它吧。感谢所有的参与者。