ASP.NET 5 开箱





4.00/5 (6投票s)
本文概述了 ASP.NET 5 (又名 vNext),其特性以及为开发者和受众带来的新内容。
引言
ASP.NET 的第五个版本已经发布,带来了微软的许多新特性,包括 Visual Studio Community 2015,.NET Core 将开源,以及最重要的 ASP.NET 新框架。本次发布的主要亮点在于避免在编译、构建和将应用程序部署到托管环境(云或其他媒介)时浪费时间。
本文将概述 ASP.NET 第五次更新中包含、添加和/或修复的服务。
概述
让我们先对本文将深入探讨的内容进行概述,以理解其核心功能以及在“现代 Web”中的需求。
平台 - 移动设备、平板电脑、电脑和笔记本电脑等
在现代 Web 中,用户不再仅仅通过电脑向互联网上的应用程序发送 Web 请求来使用它们提供的服务。相反,他们拥有智能手机,如 Android、Windows Phone 或 iOS 手机,这些设备的功能已接近电脑。因此,不再需要显示“请使用桌面设备访问我们的网站以使用我们的服务”的提示。
Android 等手机使用 WebKit 引擎以获得更好的网站渲染性能,这样您就可以流畅地播放更高质量的图形,并使用 JavaScript 或其任何库编写出色的动态网站代码,为您的动态网站构建精美的设计。单页应用程序是 JavaScript 的产物,许多网站的移动版本也支持此功能,Facebook 就是一个例子。
响应式
网站的响应式意味着网站对读者(用户;客户端)而言有多好,UI 和 UX 的表现如何。
网站通过 CSS3 的媒体查询、JavaScript 或 jQuery 来创建响应式,以检查屏幕或设备属性,然后对其进行处理,确保每个设备和屏幕都能获得更好的内容视图,而不是让数据或 Web 内容出现错乱或糟糕的 UI。
使用 CSS 框架,例如 Twitter Bootstrap,这是一个构建在 JavaScript 和 CSS 之上的框架,用于改善网站 UI 或响应式。无表网站也是其中的一个例子,您无需将内容放在表格中,等等……
ASP.NET 更新提供了什么?
在深入探讨 ASP.NET 之前,让我们先深呼吸一下,为那些不熟悉 ASP.NET 本身的人解释一下 ASP.NET 是什么。
什么是 ASP.NET
ASP.NET 是微软开发的一个开源(从这个版本开始,ASP.NET 是一个开源项目;从上一个版本开始它就是开源的,但这个版本从一开始就是开源的)服务器端编程语言,可以在任何平台上运行(最初是 Windows;现在 ASP.NET 可以运行在从 Windows、Mac 到 Linux 的任何平台上),允许程序员构建将在服务器和云上托管的网站和 Web 应用程序。
ASP.NET 的主要功能是构建可以托管在云(例如 Azure)中的 Web 应用程序、网站和 Web 服务。但现在,它也被创建独立网站并将其托管在自己计算机上的开发者所使用,许多开发者都是这样做的。
ASP.NET vNext
ASP.NET vNext 一直备受关注,现在 ASP.NET 团队在其博客上发布了新的更新,宣布 ASP.NET 5 已发布并可供使用。
此次更新包括许多微软产品经常被诟病的修复。它现在是 开源 的。ASP.NET 项目的源代码现在可以在 Git 存储库 上使用。
不再含糊不清
我说的含糊不清是指 MVC、Web Pages、Web Forms 和 Web API 之间的区别。新开发者通常对使用哪个感到困惑,并在各种论坛上提问,询问根据他们的需求应使用哪个服务。ASP.NET 团队现在自己解决了这个问题,并将 Web API 和 MVC 合并到一个,称为 MVC 6。Web Pages 也将被合并到 MVC 模型中。只剩下 Web Forms 留待您提问……
特点
现在,是时候介绍 ASP.NET 第五个版本中包含在我们将下载并用于未来项目包中的内容了。
如果开始阅读和深入研究 ASP.NET 支持的核心功能,那将是一个庞大的列表,所以为什么不将功能块分组到更大的块中,然后阅读并理解 ASP.NET 团队在其更新中提供的有趣概念呢?
客户端性能
客户端性能和代码执行一直是 ASP.NET 编程的重要组成部分,Web Forms 的开发是为了控制客户端与网站或 Web 应用程序的交互。
移动设备 - 平板电脑支持
从一开始,就对移动设备、压缩和 IIS 缓存服务提供了大力支持,以提高移动平台上的 Web 应用程序性能,或在移动设备上响应式地显示网页。
响应式
“现代 Web”希望每个网站或 Web 应用程序都能尽可能地响应式。这使用户能更好地理解网站的功能和目的,而不是让他们滚动或缩放网页。
为了提供此功能,需要使用 CSS3、jQuery 等,但 ASP.NET 也承担了这项任务。ASP.NET 已与客户端框架联手,以控制网站的客户端行为。
客户端框架
Angular.js 和其他客户端框架因其更好的 UI 和 Web 应用交互而被广泛使用,以提供更好的 UX。因此,为了使 Web 开发者能够 100% 使用 ASP.NET 编写应用程序,该团队提供了可以在客户端和服务器端工作的框架。Grunt 和许多其他框架已内置到 Visual Studio 2015 中。您可以直接将新内容推送到浏览器,我没开玩笑。
在 Visual Studio 2015 中,您的 Web 浏览器和 IDE 是相连的,因此您通过浏览器(检查器)进行的任何更改都会推回 Visual Studio,并从 Visual Studio 直接推送到 Web 浏览器。
云就绪
尽管 ASP.NET 从一开始就是为云而设计的,但它被广泛用于通用 Web 应用程序,而云却被遗留下来。微软现在创建了 Azure,并建议开发者使用 Azure 以获得更好的性能。
以前版本中的麻烦…
ASP.NET 的设计初衷是为了减少代码执行时间。Web Pages 就是这样的网站的一个例子。您只需编写代码,保存,然后在浏览器中重新加载页面,新代码就会执行。这就是所谓的 JIT 编译,“Just in Time compiling”(即时编译)以及许多其他名称。
但在开发 Web Forms、MVC 应用程序和其他 ASP.NET 项目时,您需要构建、编译项目,然后浏览器会打开一个选项卡,指向您的资源位置,新代码才能为您工作。这在普通机器和开发机器上需要 5-7 秒或更长时间,具体取决于项目和机器。
此外,如果项目托管在其他环境中,则需要程序员下载整个项目,进行编辑和修改。完成后,他会将应用程序部署到服务器以在服务器上显示更改。
新版本有什么?
新版本的 ASP.NET 包含了很多修复;我已经说过很多次“很多”。主要的一点是很少,甚至可以说根本不进行源代码编译。您编写代码,保存,然后重新加载页面即可在浏览器中看到代码的最新更改。
是的,情况就是这样。这是因为当您保存代码时,Visual Studio 会自动检查更改,并只处理那部分,动态编译会将其保存在内存中供客户端访问。这也有助于 CPU 一次编译并每次都使用,从而加快应用程序的启动速度。
这个问题出现在云环境中,部署、开发和其他所有工作都占用了开发者大量时间,然后编译时间会造成约 7 秒的混乱。ASP.NET 现在有了解决方案。几个月前,他们更新了 ASP.NET 项目的程序集,使其 CPU 占用率降低了 60%,处理时间降低了 80%,现在,编译已移除,内存消耗减少了 90% 以上。拥有如此出色的性能,您不觉得这很棒吗?
利用云的力量
在这个版本中,调试、编译、日志记录和堆栈跟踪,所有的一切都保留在云端。您甚至无需下载源代码即可进行编辑,云提供了源代码编辑的界面,Azure 就有一个。在那里您可以轻松编辑源代码,并在点击保存按钮后,最新代码就会立即公开提供给您。
因此,您在云中创建连接状态,在云中管理每个会话,并配置 Web 应用程序以适应云环境和设备所需的设计。应用程序被缓存以提高性能,这使开发者能够维护会话和状态,并以更快的速度执行任务,而不是处理获取 UserID 或 DateTime 等基本功能。
使用任何工具进行开发
ASP.NET 不仅开源,还可以使用任何工具进行开发。Visual Studio 在开发者中多少有些受欢迎,但如果您有任何其他 IDE,ASP.NET 也很乐意与之配合。
不仅如此,ASP.NET 还兼容许多第三方工具和框架。下一个主题将详细介绍这一部分,并涵盖自身。
跨平台
ASP.NET 不是跨平台的。它不仅可以在 Windows 上运行,还可以在 Mac 和 Linux 上运行。该项目现在已开源,以便开发者可以在任何地方使用它们,即使微软不知道该项目(这种情况通常不会发生)。
在 Mac 上构建
在 ASP.NET 方面,它现在可以在 Mac 上运行是一个好消息。目前还没有太多相关的文章,我也没在 Mac 上测试过任何 ASP.NET 项目,因为我没有 Mac。但微软团队也已经解决了这个问题。他们还在博客上发表了一篇不错的 文章。
获取贡献
上一节“在 Mac 上构建”不仅仅是微软的工作,还有许多其他人为此做出了贡献。在 Mac 上进行 ASP.NET 开发不是唯一的事情,还有其他第三方工具,例如用于在 Mac 上编译 ASP.NET 项目的 **Yeoman** 工具。
微软还对提供贡献表现出浓厚的兴趣,Android 应用程序、Visual Studio 的 Android 模拟器以及更多内容是微软迈出的一大步,并且对我而言,至少是成功的。
托管服务
托管 ASP.NET 应用程序是一个大问题。IIS 是微软的一个仅限 Windows 的产品,因为它是在其自己的 Web 服务器上开发的。他们尚未准备好为 Mac 或 Linux 开发 IIS,但他们已设法让开发者无需使用 IIS 即可托管网站。
ASP.NET 团队的这篇博文 详细介绍了此过程,即如何无需 IIS 即可托管 ASP.NET 应用程序,您需要编辑 project.json 文件。
此功能消除了您脑海中对 IIS 的依赖,让您可以在任何托管环境中托管 ASP.NET 网站。我记得我曾经不得不寻找 Windows 托管服务来移植我的网站,我很难过当时没有这个功能。
Project.json
在上一节中,我说过您可以编译和运行 ASP.NET 项目,而无需在任何托管服务上运行。那么,如果我没有 Visual Studio 来理解 Web 应用程序、托管服务、.NET Framework 版本等的需求,会怎么样?
为了最大限度地减少这些问题,这一次每个项目都与其项目信息和所需信息一起创建,并写入 project.json 文件中。该文件包含项目所需的所有关于依赖项、程序集、框架(服务器端和客户端)以及所有其他内容的信息。
因此,上述文件使得通过命令行进行编译成为可能。这相当不错。
无需完整包
在此更新中,还有另一个重大新增内容,您实际上不需要使用整个 ASP.NET 框架来运行一个简单的个人博客。您可以选择您想在应用程序或网站中使用的内容,然后删除项目中所有其他不必要的内容。
这在 ASP.NET 中也被称为“模块化”。例如,套接字、服务对于一个人的简单 Web 博客没有任何用处,您可以将它们从项目中关闭以完全删除它们。然后只使用您想要在网站或应用程序中使用的功能。
这也被称为 ASP.NET 中的 HTTP 请求管道功能。它允许您只添加少量组件。这通过仅发送/接收与您的应用程序相关的数据来提高网站性能。
运行多个框架
ASP.NET 5 引入了两个框架,一个新框架是 ASP.NET Core 5。ASP.NET 5 使用 .NET Framework,而 ASP.NET Core 5 是用于在 Core ASP.NET 框架上处理 ASP.NET 应用程序的框架,而不会影响在其他环境或框架上运行的任何应用程序。
您只需在应用程序项目中定义依赖项。此功能使您能够为任何应用程序使用最新版本的框架,而为一个应用程序坚持使用旧框架。
关注点
ASP.NET 还有更多内容即将推出。ASP.NET 现在是一个用于云托管 Web 应用程序的开源服务器端语言。
Visual Studio 2015 将是最佳 IDE,因为它直接连接到浏览器,使我们能够动态地在运行时更改 UI。
编译时间和解决方案构建时间已大大缩短,使开发者能够编写、保存并在浏览器中看到更改。
ASP.NET 已添加跨平台支持,您可以将应用程序托管在几乎任何环境中。Mac 和 Linux 上没有 Visual Studio,因此添加了 project.json 文件,供您从命令行编译源代码。
历史
帖子第一版。