1.概述
ASP.NET为了优化和云平台,甚至跨平台,DotNetFramework版本进行了重新设计和划分版本,在应用程序中它们可以共存,你也可以单一使用某一个版本。
1.1完整的.NET CLR
它是在 Visual Studio 项目的默认运行时。提供了整个 API 集,是您最佳的选择,为向后兼容性。
1.2核心 CLR (云优化运行时)
它 是 ASP.NET 5 项目精简和完全模块化的运行时。通过重新分解为单独的组件运行时,可以提供改进的组件更多也很快为每个组件更新。它大约 11 兆字节而不是完整的.NET CLR 大约 200 兆字节。核心 CLR 可以部署您的应用程序和不同版本的核心 CLR 可以共存运行。
1.3跨平台 CLR
微软未来还将发布一个跨平台运行时为 Linux 和 Mac OS X。发布时,此运行时将使您能够开发和运行.NET 应用程序在 Mac 和 Linux 的设备上。
2.项目
2.1新建项目
2.2目录结构
3.代码
修改Startup.cs:
using System; using Microsoft.AspNet.Builder; using Microsoft.AspNet.Http; namespace VNext01 { public class Startup { public void Configure(IApplicationBuilder app) { app.Run(async context => { context.Response.ContentType = "text/html"; context.Response.StatusCode = 200; var h1 = "<h1>ASP.NET Framework</h2>"; var h2 = "<h2>Server Time</h2>"; var serverTime = DateTime.Now; await context.Response.WriteAsync(h1); await context.Response.WriteAsync(h2); await context.Response.WriteAsync( string.Format("Server Time {0}", serverTime)); }); } } }
运行结果:
4.安装NodaTime
4.1通过nuget安装
4.2修改
修改Startup.cs中 var serverTime = DateTime.Now;
改为:var serverTime = NodaTime.SystemClock.Instance.Now;
此时运行会出错,我们去修改project.json,把下面注释掉(只保留一个版本):
4.3运行结果
注意和.NETFramework内置的时间格式不一样哦。
5.修改完善
5.1修改project.json
5.2修改Startup.cs
using System; using Microsoft.AspNet.Builder; using Microsoft.AspNet.Http; namespace VNext01 { public class Startup { public void Configure(IApplicationBuilder app) { app.Run(async context => { context.Response.ContentType = "text/html"; context.Response.StatusCode = 200; #if ASPNET50 var h1 = "<h1>ASP.NET Framework</h2>"; var h2 = "<h2>Server Time</h2>"; var serverTime = NodaTime.SystemClock.Instance.Now; #elif ASPNETCORE50 var h1 = "<h1>ASP.NET Framework</h2>"; var h2 = "<h2>Server Time</h2>"; var serverTime = DateTime.Now; #endif await context.Response.WriteAsync(h1); await context.Response.WriteAsync(h2); await context.Response.WriteAsync( string.Format("Server Time {0}", serverTime)); }); } } }
5.3修改运行版本
项目“属性”设置:
其程序运行结果就不截图了。
6.小结
通过此例实践,学到程序集版本可以共存,运行时选用那个版本可以选择。拓展想一下,你又体会到什么啦???欢迎分享!