BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 David Iffland 关注 4 他的粉丝 ,译者 Rays 关注 3 他的粉丝 发布于 2017年3月1日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

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)关注我们。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT