今天,Scott Hanselman在其博客上宣布《ASP.NET 5 is dead - Introducing ASP.NET Core 1.0 and .NET Core 1.0》,ASP.NET 5已经被判死刑,Scott在其中也解释了改名的根本原因:之前称之为“ASP.NET 5”确实让人感觉这是ASP.NET 4.6的升级版,比其功能更加强大,未来会替代ASP.NET 4.6。其实不是的,因为“ASP.NET 5”是另起炉灶开发,和 ASP.NET 4.6是并行独立的关系。
所在现在的名字变动如下:
- ASP.NET 5 –> ASP.NET Core 1.0
- .NET Core 5 –> .NET Core 1.0
- Entity Framework 7 –> Entity Framework Core 1.0
这样的重命名可以让人(特别是.NET 圈子之外的人)马上了解到这个技术栈是微软在Web开发领域的一个“重新出发”,他们之间的关系以及和之前技术的关系如下图所示:
为了达成跨平台目标,微软开发工具部门在发布了 .NET 4.5 和 ASP.NET 4.5 之后花了相当长的时间来构架下一代网站开发技术。在这个超过两年的漫长过程中,以下几个目标逐渐清晰,这次改名让这几个目标更加明白的展现在你的面前:
- 采用新思路来重新设计框架基础。这方面向 node.js 学习不少。
-
采用全新技术,主要是 Roslyn。
-
脱离 .NET Framework 的束缚实现跨平台
那么,我们如何做出选择呢?其实也很简单:
- 如果你是重新开发全新的Web应用,而且打算跨平台运行,那么首选ASP.NET Core,这次改名后,就快发布了,还好在正式发布之前进行改名,改名是一个我们开发软件时候最难做的事情,看看自己写的代码就知道,有时候发布出去了只能将错就错;
- 如果你希望做更多事情,使用更多语言(VB和F#)和技术,稳定成熟比较看重,也希望获得微软官方支持,那么选择ASP.NET 4.6,如果不需要获得微软的官方支持可以选择使用Mono 4.2+,这里为大家推荐MVP 李杨的文章 《Jexus 网站服务器和 ASP.NET 跨平台开发》,这篇文章也发表在公众号“dotNET跨平台”上。