Building Modern Web Apps-构建现代的 Web 应用程序

时间:2021-01-12 12:17:44

Building Modern Web Apps-构建现代的 Web 应用程序

一些感想

这段视频虽然标题设定为 Visual Studio 2013 最新版本发布,但其实并没有对 Visual Studio 2013 进行过多的介绍,而更多的是讲述微软对 ASP.NET 的发展规划,特别是对 Web 的重视,我觉得非常好,下面谈一下我的一些感想,当然只是个人观点,勿喜请喷。

其实说到 Web,就不得不提乔布斯在《遗失的访谈(1995)》中对未来十年技术发展的预言,没错,乔布斯就预言了 Web,而十年后,二十年后,确实如预言的那样,不得不说他是“神”一样的存在。但二十年的今年,现在的 Apple 并没有多重视 Web,反而把大把的精力放在 App 上,这就有点不应该,反观 Apple 的对手微软,仿佛是看了乔布斯访谈一样,越来越重视 Web 了,当然我个人觉得,一部分原因是 Windows Phone 的不给力。

视频中首先谈到的是 ASP.NET 不再那么神秘了,确实如此,现在我们可以在 CodePlex 上获取 ASP.NET MVC 、EntityFramework 等源代码,甚至可以进行修改提交,Scott Hunter 提到现在 ASP.NET MVC 中两个重要功能(属性路由和 Web API 的跨源支持),就是来自于社区代码的提交,这是开放的一种表现,对开发者,对微软都有好处。

Building Modern Web Apps-构建现代的 Web 应用程序

ASP.NET 我们都很熟悉,Web Tools 是什么?简单的说,就是我们用的 Visual Studio,但其实只是 Visual Studio 中的应用之一,我们现在所开发的 ASP.NET 是离不开 Web Tools 的,为什么?因为从项目新建-前段设计-后端代码编写-程序调试-程序发布等等,这些操作都是使用 Web Tools 完成的,也就是说 ASP.NET 和 Web Tools 就像是一对连体婴儿,谁也离不开谁。但这种“紧密的关系”往往就失去了一些开发所独有的“创造性”,试想一下,如果 ASP.NET 和 Web Tools 可以独立运作,这又是一种怎样的场景?用 Text 编写 ASP.NET 应用程序?这个已经不是梦想了。

Building Modern Web Apps-构建现代的 Web 应用程序

One ASP.NET,请注意在图中间部分的两边有两个“YOU”,这是什么意思呢?我们知道 ASP.NET 的运行必须建立在 .NET Framework 支持的基础上,也就是说必须是 Windows 环境,但是现在,我们可以在 ASP.NET 中融入任何我们想要的东西,比如自己喜欢的插件、框架、项目等,因为第三方的支持,我们可以想做任何我们想做的事,这不是爽一点的问题,而是爽到了极点。昨天在 YouTuBe 上看了一个哥们在 MAC OS 上开发运行 ASP.NET VNext 的视频(只需要一个编辑器和一个命令工具),很是激动啊,过几天我也尝试下。

Building Modern Web Apps-构建现代的 Web 应用程序

在这段讲述中,Scott Hunter 除了强调 ASP.NET Identity 的改进之外,还说到了他最喜欢到 ASP.NET MVC 属性路由,来自社区代码的提交,可能是一些开发者厌烦了之前 URL 繁琐的配置,所以在 ASP.NET MVC 中增加了属性路由。关于 EntityFramework,他讲到了这样一个问题:

在一个 ASP.NET 应用程序中有两个页面,一个是静态页面,一个是需要数据库读取页面,如果我同时频繁访问这两个页面,你认为会发生什么?

Scott Hanselman:我猜静态页面与数据库无关。

Scott Hunter:不是的,鉴于这个原因,每次执行数据库操作和网络操作时,都应该使用异步支持,我们有一个基准测试表明,实际会发生的是,每次执行进行数据库调用的页面时,在等待该操作发生的整个期间,系统将在 ASP.NET 线程池中存留一个线程,因此如果你多次访问该页面,就会消耗掉线程池中的所有线程,就没有线程为静态页面提供服务了,因此一个数据库页面可能会在你不知情的情况下影响整个应用程序的性能,让线程池“挨饿”,通过使用权重,任何时候,当你使用 EntityFramework 时,都不会再让线程池“挨饿”,静态页面永远不会损失性能,因为另一个页面在运行并进行数据库调用。

后面提到 EntityFramework 的数据库迁移(主要时针对)、Code First。。。

Building Modern Web Apps-构建现代的 Web 应用程序

视频的最后就是讲述 Visual Studio 2013 的具体更新了,关于这一部分我不是很感兴趣,只是大概的看了下,主要将了亮点内容:

  1. 精简 ASP.NET 模块:新建 ASP.NET App 的模版,由原来的 20 个减为 6 个,另外 Web Forms、MVC、Web API 之间更好的“混搭”。
  2. 云的支持(Windows Azure):关于 Visual Studio 2013 中使用 Windows Azure,Scott Hunter 进行了详细的演示,一个新建,一个勾选,一个 Windows Azure 下的 ASP.NET 就这样创建好了,如此简单。我比较感兴趣的是 Windows Azure 运行下,Visual Studio 2013 中调试 ASP.NET,有机会可以尝试下。

最后

看完这段视频(昨天晚上),我个人觉得 MSDN 应该是 .NET 程序员常去的社区,为什么?当你还在纠结 ASP.NET Web Forms 和 ASP.NET MVC 时,你所不知道的是,人家已经在 MAC OS 中使用 ASP.NET VNext 了。