Microsoft 发布新工具,简化 JavaScript Web 应用的创建

  • David Iffland
  • Rays

2017 年 2 月 28 日

话题:JavaScript语言 & 开发

Microsoft 发布了一系列工具用于快速生成基于 JavaScript 的 Web 应用,这些工具包含了 dotnet new 和对 Node.js 的巧妙运用。

dotnet new命令是.NET Core 工具的一部分,它用简单的命令行语法创建(spin up)新项目。现在新工具已成为ASP.NET Core 的 JavaScript 服务的组成部分,Web 开发人员可以使用同样的命令,基于模板创建新的单页应用(SPA,Single Page Applications)。

Steve Sanderson 在一篇文章中介绍,这些模板的初衷在于简化项目的初始化工作:

我们常听到使用 Angular 或 React 构建的 SPA 应用是如何的复杂。其中的挑战在于如何能很好地集成服务器端和客户端代码,或是如何从一开始就选定富有成效的项目配置。

这些工具依赖NuGet 软件包 Microsoft.AspNetCore.SpaTemplates。一旦安装了该软件包,就可以使用如下命令创建 angular、react、reactredux、aurelia 和 knockout 等模板,:

dotnet new reactredux

这些模板被打包放在GitHub上。因为它们也是.NET Core 工具,所以安装任一模板都会创建一个服务于某个客户端 SPA 的 ASP.NET 应用。这里所说的“angular”是指 Angular 2 以上的应用,采用了“仅用于 Angular”的术语。

对于那些熟悉 Node.js 和 NPM 的 JavaScript 社区成员,create-react-appAngular CLI为创建这类应用提供了一种简单方法。对于来自 Microsoft 环境的开发人员,基于.NET 的 dotnet new 方法为他们提供了更为熟悉的方法。但是从某种程度上说,这些新的.NET 工具默认就提供了很全面的功能。

例如,angular 和 reactredux 模板默认包括了服务器端预渲染(可以关闭该功能)。所有这些项目类型都使用了 Webpack 2 绑定前端代码,并且除了 aurelia 模板外,默认都设置了 Hot Module Replacement。

鉴于新工具是一个.NET 应用,它仍然要通过SpaServices使用 Node.js。SpaServices 使用Microsoft.AspNetCore.NodeServices允许 ASP.NET 开发人员无需实际运行 Node.js 目录即可利用 Node.js 生态系统。Sanderson 说这些都是在“后台”进行的。

举个例子,为预渲染服务器上的 Angular 或 React 组件,该工具要在服务器端执行你的 JavaScript。这是通过 NodeServices 实现的,NodeServices 启动一个隐藏的 Node.js 实例,并提供一种快速的和鲁棒的方式从.NET 调用该实例。

Sanderson 也是knockout.js的创建者。

查看英文原文: Microsoft Makes it Easy to Create JavaScript Web Apps with New Tool


感谢薛命灯对本文的审校。

给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ@丁晓昀),微信(微信号:InfoQChina)关注我们。

JavaScript语言 & 开发