如果要开发一个新的ASP.net项目,那应该使用新出的ASP.net Core,还是原来的ASP.net呢?微软的一篇文章给出一了一些建议,值得参考:https://docs.microsoft.com/zh-cn/aspnet/core/choose-aspnet-framework
ASP.NET Core 是微软新推出的、开源的、跨平台的.NET框架,用来构建现代的基于云的Web应用,可运行于Windows, Mac或Linux系统。
ASP.NET 是成熟的Web平台,用来构建企业级服务端Web应用,且只能运行于Windows系统上。
ASP.NET Core | ASP.NET |
---|---|
用于 Windows, Mac, or Linux | 仅用于 Windows |
使用 MVC, 或 Web API 技术 | 使用 Web Forms, SignalR, MVC, Web API, or Web Pages 技术 |
每台机器上可以运行多个版本 | 每台机器上只能运行一个版本 |
只能使用C#语言开发,工具有Visual Studio 或 Visual Studio Code | 可以使用C#, VB或F#通过 Visual Studio 开发 |
新平台 | 成熟的平台 |
极高性能 | 高性能 |
可以选择使用 .NET 框架运行时 or .NET Core 运行时 | 使用.NET框架运行时 |
ASP.net Core是构建在.NET 运行时环境(Runtime)基础上的,而运行时环境有两种,一种是.NET Framework,一种是.NET Core。搭配下面这个图,可以更好的明白.NET Framework, .NET Core的关系。
上图来自:.NET 体系结构组件
只有ASP.net Core 搭配 .NET Core时,才是完全跨平台;如果ASP.net Core搭配 .NET Framework的话,还是只能用于Windows平台的。关于选择.NET Framework还是.NET Core,微软也有一篇文单介绍,值得参考: 《为服务器应用选择 .NET Core 或 .NET Framework》。
在上面提到的这篇文章中,有一些有趣的点,可以看出微软ASP.net未来的计划,比如ASP.net WebForm 这个技术明确的不会出现在未来.NET Core中,可见此项技术必将被淘汰。此外,工作流WF没有在.NET Core计划中,而WCF也将从2016年开始只在.NET Framework中支持,都可以看出微软的态度。
简单来说,ASP.net Core 是针对.NET Core 新推出的Web应用框架。它的目标是跨平台,但现阶段还属于不太成熟的萌芽期,但一定是未来微软主推的方向。就目前来说,如果要构建企业级的Web应用,还是要选择成熟的ASP.net 老框架 + .NET Framework 运行时比较稳妥。