当Node.js遇上WebMatrix 2

samgui(三桂)

前言

现在Node.js正是如火如荼,无疑它的出现为客户端和服务端捅破了厚厚的一层纸,使得前后端可以只通过javascript这一种语言就能完成一个完整的web应用程序,但是苦于一直没有一整套针对Node.js开发的工具,使得Node.js推广得比较慢,在实际项目中使用率比较低,大多都是停留在实验和小工具阶段。WebMatrix 是微软最新的 Web 开发工具,它包含了构建网站所需要的一切元素。您可以从开源 Web 项目或者内置的 Web 模板开始,也可以直接从无到有编写代码。简单并且完全是免费的,使得开发网站从来没有如此简单(关于WebMatrix更详细的信息可以移步这里)。随着WebMatrix版本的更新加之Node.js的火热,也加强了对Node.js以及相关的技术支持。

转载请注明来源地址:http://samgui.com/blog/%E5%BD%93Node.js%E9%81%87%E4%B8%8AWebMatrix2/

正文

经过WebMatrix团队数月的努力,现在激动的介绍WebMatrix 2候选版本。WebMatrix 2 包含大量的新特性,但今天我想概述在WebMatrix 2下用Node.js创建应用我们所做的工作。 如果你想跳过此文而仅仅只是想要得到下载连接(免费),请点这里

我们走了多远

不到一年前,我在卡耐基梅隆大学工作,尝试用Node.js和ASP.NET实现我们在线学习环境的实时组件。我们在运行Linux的客户的数据中心是行不通的,在cygwin里运行一个生产系统显得不够理想。在Windows上开发node更加不易 - 如果你想让node运行,让NPM工作是几乎不可能的。在Windows环境下使用node比登山还难。

在我加入微软之后过去的12个月里,我们已经看到Joyent和微软之间的各种合作关系,是的新版的node和npm在Windows上得到支持,以及在Windos Azure上支持Node的承诺。我们共同为开发者,IT管理员以及使用我们系统的最终用户建立更好的用户体验。

这些工作得到的其中一个成果是在Windows Azure上用Node.js构建应用体验得到了极大的改善。在SDK团队的Glenn Block极力称赞微软做了令人难以置信的举措使得Azure成为开发者开发Node.js应用一个很棒的环境。作为我们最喜欢的副总裁Scott Guthrie在他的博客上表示,(这些)满足新Windows Azure

进入WebMatrix 2

如今开始使用node.js是一个相对简单的任务。安装node,npm(现在已经打包在了node安装程序里),用你最喜欢的文本编辑器就可以开始。但是在管理项目,编译CoffeeScript和LESS,配置产品设置,发布应用程序过程中充满各种各样可能性和配置(繁琐)。WebMatrix 2 提供我们另外一种构建node.js应用的方式:你只需要在一个环境下构建优秀的应用程序。

WebMatrix 2 首要是为构建Web应用程序而设计的。在起始屏,可以使用预制的模板,或者从Web Gallery中安装常见的开源应用程序来创建你租户的应用程序。目前模板支持用Node.js, PHP, 当然还包括ASP.NET Web Pages创建应用程序。除此之外,WebMatrix 2 还包含三种创建Node.js应用程序的模板:

空Node.js网站提供使用http server一些非常基础的示例,跟nodejs.org官网提供的一致。

Express网站是用Node.js的Express框架脚手架工具生成的基础应用程序。

Node Starter网站是以Express MVC基础项目模版开始一个项目。样板文件被托管在GitHub上,演示如何实现包含jade父/子布局,LESS预编译css,用Twitter和Facebook登录,移动布局以及验证码的站点。当你用任意这些模板创建新的应用程序时,WebMatrix 2将会确保node,npm以及IISNode已经安装在你的系统里。如果他们没有被安装,WebMatrix 2将会自动安装任何缺少的依赖关系。如果你正在Windows下创建PHP/MYSQL应用程序,这一特性也特别有用。

Node Starter站点模板将会生成一个包含Express,Jade,LESS,使用socket.io实现聊天,使用EveryAuth实现登录,以及用jQuery Mobile支持移动设备的全功能的应用程序:

Node.js智能感知

WebMatrix 2其中一个目标就是降低开发人员在开始使用Node.js时的门槛。方法之一就是提供所有应用程序构建的核心模块智能感知。我们使用的文档实际上构建自node.js官网的文档。

在提供Node.js核心模块智能感知之外,WebMatrix 2还为你自己的Javascript代码以及通过NPM安装的第三方模块提供代码自动完成功能。有无数种方式来构建自己的应用程序,NPM的画廊最近超过了10000条。当开发者开始构建更加复杂的应用程序,将变得很难(甚至吓人)开始。WebMatrix 2 通过开源程序包将这一切变得更容易:

支持Jade和EJS

为创建Node.js应用程序提供更实用的工具,我们决定为Jade和EJS提供一流的编辑体验。WebMatrix 2 为Jade和EJS提供语法高亮,HTML验证,代码大纲,自动完成。

如果你键入包含尖括号的代码(EJS代码块),EJS体验表现得会更好,因为它基于我们的高级HTML编辑器之上:

星球上最好的LESS编辑器

因此我承认 —— 我有一点CSS预处理器极客。我不写CSS因为我爱它,但是因为我需要把事情做好,我得尽可能的编写更少的CSS代码。像LESS以及Sass之类的工具提供CSS程序员缺失的特性,像变量,混入,嵌套以及常用的内置方法。

WebMatrix的LESS编辑器不仅提供语法高亮,而且还提供LESS规范验证,变量和混入智能感知,以及LESS规范的格式化。许多node开发人员在服务器端使用npm模块来处理他们LESS,但是如果你想在本地编译LESS,你可以在设计时使用Orange Bits compiler来编译你的CSS。

CoffeeScript编辑器

跟LESS和Sass让书写CSS变得更容易一样,CoffeeScript简化了书写Javascript的方式。WebMatrix 2 提供语法高亮,代码大纲,自动完成来简化编辑体验。如果你想使用CoffeeScript但不用服务器上编译它,你可以在设计时使用Orange Bits compiler来编译你的CoffeeScript

移动模拟器

设计移动应用程序不能滞后,WebMatrix 2试图让这两种方法更容易。首先 - 视觉模板在主样式表中(以Node Starter Template为例)充分利用响应式布局的优势:

styles.less

这看起来非常牛逼如果你不需要改变你的网站内容,但缺乏令人更加复杂的场景。为了绕开它,node开始模块使用了一块连接中间件来检测用户是否来自移动设备,然后发送给他们基于jQuery Mobile的移动布局(另外一篇文章会详细介绍).基于单个视图约定允许您创建{viewName}_mobile.jade视图仅在移动设备上加载。

更强大的是,如果你需要在各种浏览器以及移动设备上查看你的网站表现?WebMatrix 2 提供一种扩展模型允许你在运行菜单添加移动以及桌面浏览器。

目前,我们提供Windows Phone模拟器, 以及 iPhone/iPad仿真器。我们都在寻找人员支持其他模拟器咳嗽android咳嗽,甚至构建网桥方便在线测试应用程序。

扩展以及开源

一款代码编辑工具仅对致力于该平台的开发者至关重要。我们想要与大家一起取得成功和成长。作为目标的一部分,我们开放了一个可扩展模型,允许开发者构建自定义扩展以及和其他开发者分享。扩展库可以通过http://extensions.webmatrix.com访问。我们计划转移大部分扩展到GitHub上,NodePowerTools扩展是第一个计划开源:

接下来几个月你将可以从Microsoft官网看到更多的扩展以及开源。

参与

我想确保感谢所有帮助这个版本诞生的人,包括WebMatrix团队,Glenn Block, Claudio Caldato, our Node Advisory board, Isaac Schlueter,以及在Joyent的所有人。 更多的信息,请访问:

WebMatrix on Microsoft.com

WebMatrix on Twitter

WebMatrix on GitHub

WebMatrix on UserVoice

WebMatrix and Node on Microsoft.com

Windows Azure just got a lot friendlier to node.js developers

Vishal Joshi’s blog post

原文

http://jbeckwith.com/2012/06/07/node-js-meet-webmatrix-2/

附件(中英对照)

当Node.js遇上WebMatrix2.rar

参考

http://www.microsoft.com/web/webmatrix/

https://www.windowsazure.com/zh-cn/develop/nodejs/

http://weblogs.asp.net/scottgu/archive/2012/06/07/meet-the-new-windows-azure.aspx

http://extensions.webmatrix.com/packages/OrangeBits/