首页 > 代码库 > VS2015 VNext学习系列之三:CLR篇

VS2015 VNext学习系列之三:CLR篇

1.概述

    ASP.NET为了优化和云平台,甚至跨平台,DotNetFramework版本进行了重新设计,划分了多个版本,在应用程序中它们可以共存,你也可以单一使用某一个版本。

1.1完整的.NET CLR    

    它是在 VS创建项目的默认运行时。提供了整个 API 集,保持了向后兼容性。

1.2核心 CLR/云优化     

    它 是 ASP.NET 5 项目精简和完全模块化的运行时。通过重新分解为单独的组件运行时,可以提供改进的组件更多也很快为每个组件更新。

    它大约 11 兆字节而不是完整的.NET CLR 大约 200 兆字节。核心 CLR 可以部署您的应用程序和不同版本的核心 CLR 可以共存运行。

1.3跨平台 CLR  

    微软未来还将发布一个跨平台运行时为 Linux 和 Mac OS X。此运行时将使您能够开发和运行.NET 应用程序在 Mac 和 Linux 的设备上。

1.4项目属性设置

    右键项目:属性-》Application:

   

1.5References文件夹

   在项目中:

  

   可以通过project.json中依赖来选择:

  

2.实例演示

   注:先把上一篇介绍中创建的“WebApp”项目“设为启动项目”。

2.1修改Startup.cs

   打开WebApp项目,根目录下的Startup.cs,代码修改为:  

using System;using Microsoft.AspNet.Builder;using Microsoft.AspNet.Http;namespace WebApp{    public class Startup    {        public void Configure(IApplicationBuilder app)        {            app.Run(async context =>            {                context.Response.ContentType = "text/html";                context.Response.StatusCode = 200;                var h1 = "<h1>Server Time</h1>";                var serverTime = DateTime.Now;                await context.Response.WriteAsync(h1);                await context.Response.WriteAsync(string.Format("Server Time {0}", serverTime));            });        }    }}

   此时运行网站程序结果:

  

2.2安装NodaTime

    通过Nuget查找安装:

   

    安装成功后:

   

    疑问:两个.NetFramework版本里都有它了,会不会冲突???

2.3使用NodaTime

    把Startup.cs中 var serverTime = DateTime.Now;改为: var serverTime = NodaTime.SystemClock.Instance.Now;

    此时运行网站会出错,我们去修改project.json,把下面暂时注释掉(只保留完整的.NetFramework版本版本):

   

   再运行网站结果:

  

   注:和DateTime.Now获取的格式略有不同。

2.4条件选择执行

    修改Startup.cs代码为:

using System;using Microsoft.AspNet.Builder;using Microsoft.AspNet.Http;namespace WebApp{    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>Server Time</h1>";                var serverTime = NodaTime.SystemClock.Instance.Now;#elif ASPNETCORE50                var h1 = "<h1>Server Time</h1>";                var serverTime = DateTime.Now;#endif                await context.Response.WriteAsync(h1);                await context.Response.WriteAsync(string.Format("Server Time {0}", serverTime));            });        }    }}

    再把project.json修改为:

   

    然后你可以选择哪个版本执行了,也就是项目“属性”来设置(如选择核心版,就是执行DateTime.Now时间):

   

    其网站运行结果:

   

2.5代码高亮

   

    注:通过选择版本,可以使得代码在VS里着色高亮!

3.小结

   本篇希望大家明白.NetFramework版本选择和设置。下一篇将介绍Bower知识。

 

VS2015 VNext学习系列之三:CLR篇