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-app 和 Angular 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 )关注我们。
评论