ASP.NET Core
首先,ASP原本只是一种技术,这种技术从上个世纪90年代就有了。
Active Service Page 和 Java Service Page 是相同的概念。
古老的WebForm技术,其实是正统的ASP.NET技术。刚开始的时候,代码和HTML都是写在一起的。同一个文件里面上半部分是C#代码,下半部分是HTML代码。
随着时间的推移,CodeBehind技术将前台代码和后台代码分离开来了。那个时候流行使用 IsPostBack来判断是Get还是Post。
接下来的历史,就是MVC1-MVC5。整个前后端更加独立了。MVC各司其职,和谐相处。关于MVC的文章,网络上已经不胜枚举了。这里也无需炒冷饭了。
ASP.NET项目一般是指 使用 ASP.NET的MVC框架和EntityFramework这个 ORM的项目。当然,EF只是操作SQL的一种方式。只是这样的搭配多了,所以MVC+EF变成了一种套餐。
改名
ASP.NET 5是ASP.NET Core的曾用名。
关于这个5 的解释,请参看一下这篇文章:
解读ASP.NET 5 & MVC6系列(1):ASP.NET 5简介
5也是.NET framework的新版本的版本号,称之为Core50,也叫.NET Core。.NET Core是.NET的重构版本,只保留原有框架中的最小化的功能集,对于其它的特性和功能,可以通过nuget下载以插件的形式运行。这就意味着,我们可以将其用于各种云环境进行独立部署。另外,微软还会提供一个跨平台的.NET Core,以便可以让ASP.NET程序部署到Mac和Unix/Liunx服务器上。另外.NET Core框架还可以和程序一起进行打包部署,从而可以实现在同一台服务器上使用不同版本的.NET Core。
当然,计划没有变化快,或许是为了和过去进行一个割裂,微软又将名字改为了Asp.NET Core
今天,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 Core, .NET Framework , MONO之间的关系,请参考
补充知识 .Net Framework .Net Core Mono 区别联系
RoadMap
这个框架已经出来1年多了,按照RoadMap,下个月就应该出正式版了。
微软的东西,其实蛮善变的,所以在稳定之前,最好简单了解一下即可。
当然可以看一下大神们的尝鲜测评和系列文章。
在正式版Release之前的1个月开始,才系统学习也是完全来得及的。
Milestone | Release week |
---|---|
Beta8 | 15 Oct 2015 |
RC1 | Nov 2015 |
RC2 (Tools Preview 1) | mid-May 2016 |
1.0.0 (Tools Preview 2) | late-June 2016 |
术语
DNX:.NET Execution Environment,即.NET运行时环境,在Windows,Mac和Linux下运行.NET应用程序的环境(有点目前windows环境下的.NET Framework的意思),当然这东西是跨平台的,这是跟.NET Framework最大的不同之处。
DNVM:NX Version Manager,即DNX的版本管理工具,利用DNVM可以管理DNX的不同版本,你可以轻松切换到不同的DNX版本中。
.NET Core:可以理解为一个经过精简的、模块化的.NET Framework子集,目的是为了跨平台。.NET Core有一系列的类库组成,叫做"CoreFX",一个更精简的版本叫做"CoreCLR"。
环境准备
MVC5的开发环境,最简单的是VisualStudio2015 Update2。MVC6的开发环境可以是VisualCode,也可以是VisualStudio,不过安装.Net Core是必须的。安装过程请参考下面这篇文章:
.NET Core RC2发布在即,我们试着用记事本编写一个ASP.NET Core RC2 MVC程序
VisualCode 1.1.1
如何使用VisualCode
-
下载和安装VisualCode
Visual Code 官网 -
下载一个MVC6的示例
MVC6 Sample -
使用VisualCode打开MVC项目目录。(打开目录的功能,VS15,注意,不是VS2015,也有这个功能了)
-
安装C#扩展。
安装第一个出现的C#扩展即可(OmniSharp)。安装完成之后重启一下VisualCode
如何安装扩展 -
Restore Core Package
- 可以直接在VisualCode 里面,使用F1窗体,进行 dotnet restore
- 或者按照 VisualCode 的提示进行Restore(稍等一会儿,就会出现提示你Restore的置顶信息栏)
- 这个过程非常可能慢,如果使用myget.org的Nuget的话。(2016/05/18 这个时间点还是无法Restore成功)
安装之后如果控制台有什么错误信息,可以通过下面的网址解决问题
VisualCode 常见问题
VisualStudio2015
选择 .NET Core 里面的WebApplication即可。Restore暂时没有问题。
可以运行成功
学习资源
本系列追求的是每一个知识点都力求讲解透彻,不会盲目追求文章的长度。每周至少更新一篇文章。
如果你只是想尝试Asp.NET Core,不喜欢卡顿的VisualStudio,你完全可以使用Visual Code来学习。