VS2015 VNext学习笔记01:CLR

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.小结

通过此例实践,学到程序集版本可以共存,运行时选用那个版本可以选择。拓展想一下,你又体会到什么啦???欢迎分享!

时间: 2024-10-12 00:42:12

VS2015 VNext学习笔记01:CLR的相关文章

VS2015 VNext学习笔记02:Bower和Grunt

1.概述 (首先声明本人英语水平有限,专业术语也不好恰当翻译,所以有些单词还是不要翻译为好吧) Bower:一个"web包管理",允许您安装和还原客户端软件包,包含 JavaScript 和 CSS 库.对于服务器端库像 MVC 6 框架,仍将使用 NuGet 程序包管理器.Grunt:基于 JS 的task runners.它是一个应用程序,自动化常规开发任务.ASP.NET 5.0 项目模板可以使用它. NPM:节点程序包管理器,Bower和Grunt要使用到它. 2.项目 3.目

【opengl 学习笔记01】HelloWorld示例

<<OpenGL Programming Guide>>这本书是看了忘,忘了又看,赶脚还是把笔记做一做心里比较踏实,哈哈. 我的主题是,好记性不如烂笔头. ================================================================ 1. 下载glut库 glut库地址为:www.opengl.org/resources/libraries/glut/glutdlls37beta.zip glut全称为:OpenGL Utilit

HTTP 学习笔记01

HTTP   hypertext transfer protocol (超文本传输协议) TCP/IP 协议集中的一个应用层协议 用于定义WEB浏览器与WEB服务器之间交换数据的过程以及数据本身的格式 HTTP 1.0  会话方式 HTTP 1.1 方式 HTTP 请求消息结构 一个请求行,若干消息头,以及实体内容 其中的一些消息头和实体内容都是可选的,消息头和实体内容之间要用空行隔开. GET   方式下是没有实体内容的 POST .PUT.DELETE 方式下请求消息才可以包含实体内容 HT

SWIFT学习笔记01

1.Swift,用来判断option是不是nil,相当于OC的 if(option) if let name = option{ greeting = "if=====" }else{ greeting = "else===" } 2.运行switch中匹配到的子句之后,程序会退出switch语句,并不会继续向下运行,所以不需要在每个子句结尾写break. 3.//使用..创建的范围不包含上界,如果想包含的话需要使用...,集合上,就是[)与[]的关系 for i

C++ GUI Qt4学习笔记01

C++ GUI Qt4学习笔记01 qtc++signalmakefile文档平台 这一章介绍了如何把基本的C++只是与Qt所提供的功能组合起来创建一些简单的图形用户界面应用程序. 引入两个重要概念:一个是“信号和槽”,另一个是“布局”. 窗口部件(widget)是用户界面的一个可视化元素,相当于windows系统中的“控件”和“容器”.任意窗口部件都可以用作窗口. 1.1Hello Qt 正确安装Qt4开发环境,创建工程目录hello,源代码文件名为hello.cpp,进入hello目录 (1

HTML学习笔记01

HTML学习笔记 HTML学习笔记01 一.HTML的定义 1 HTML就是"HyperText Markup Language","超文本标记语言".2 HTML不是<color="red">编程语言,而是一种标记语言.3 标记语言是一套标记标签.4 HTML使用标记标签来描述网页. 二.HTML标签 1 HTML标签是由尖括号包围的关键词.2 HTML标签通常是成对出现的.3 标签对中的第一个标签是开始标签,第二个标签是结束标签.

MVC4 学习笔记01

1 . ASP.NET MVC 中 ActionResult 和 ViewResult 在使用上的区别是什么?要注意什么吗? ActionResult 是一个抽象(abstract)类,ViewResult 只是ActionResult 的一个实现(implementation).如果你确认你返回的是一个视图(view),你可以直接返回类型为ViewResult.ActionResult 有很多的派生类,如果你很确定你要返回的类型,你可以明确的返回该类型.如果你并不是很清楚,或者你根本不想去理解

python学习笔记(01):python和c语言 标识符命名规则比较

python标识符命名规则:标识符的第一个字符必须是字母表中的字母(大写或小写)或者一个下划线(‘ _ ’).标识符名称的其他部分可以由字母(大写或小写).下划线(‘ _ ’)或数字(0-9)组成.标识符名称是对大小写敏感的.例如,myname和myName不是一个标识符.注意前者中的小写n和后者中的大写N.有效 标识符名称的例子有i.__my_name.name_23和a1b2_c3.无效 标识符名称的例子有2things.this is spaced out和my-name. c语言标识符命

C++学习笔记——01

最近准备跳槽的事情,于是把C++翻出来看,顺便做了一些练习,主要是数据结构方面的,就贴在这里做个系列,权当督促自己了. 第一天,写了一个栈,调试了下没什么问题,内存泄露的问题也解决了. 1 #ifndef STACK_H 2 #define STACK_H 3 4 #include "stdlib.h" 5 #include "iostream" 6 7 class Stack 8 { 9 private: 10 typedef int NODE_DATA_TYPE