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