Asp.net vNext 学习之路(一)

概述

asp.net vNext 也叫 asp.net 5.0,意思是微软推出的下一个版本的asp.net。可以说是微软对asp.net的一个比较重大的重新设计, asp.net vNext是一 
个比较理想的选择对于构建现代Web应用程序来说。它为部署到云端或者运行在本地的应用程序提供了一个优化的开发框架,它的模块化组件以最小的 
开销让你可以灵活地构建你的解决方案。

asp.net vNext 包括以下几个特性:

  • 1,新的灵活和跨平台的运行时。
  • 2,新的模块化HTTP请求管道。
  • 3,云计算环境的配置。
  • 4,MVC,Web Api, Web Pages 相结合的统一的编程模型。
  • 5,不通过编译工程即可看到代码改变的效果。
  • 6,并行的.net framework 版本。
  • 7,可以自我托管或者托管到IIS上。
  • 8,vs 2015的一些新的工具。
  • 9,在github上开源。

这些改变简化了开发,托管,维护并且更加针对性的去构建现代应用程序。接下来我们就看看asp.net vNext 到底有哪些变化吧。首先我们需要下载 
Visual Studio 2015 Preview。下面我就详细说说这些特性吧。

1 新的灵活和跨平台的运行时
     在过去 .net framework 只能单一的安装在windows 平台下,每一次.net 的发布都会加入很多的新特性但是却很少去删除已有的特性,这也导致了 
.net framework 的大小越来越大。这保证了安装了.net framework 的windows机器可以只是各种类型的.net 程序。但是也意味着每一个应用程序 
所依赖的功能并不会在实际用到过。
所以asp.net vNext 提供了三个更灵活的可以运行的运行时:

1,Full .NET CLFR

这是visual studio 默认的运行时,它提供了完整的API这是向后兼容的最好选择。

2 Core CLR (cloud-optimized runtime)

Core CLR 是一个完全模块化的运行时,对于构建asp.net vNext 项目来说是一个比较理想的选择,组件被重新设计,所以我们可以在程序中灵活的

选择我们所需要的组件。可以通过 NuGet来添加。Core CLR 大约有11M,但是full .NET CLR 要有 200M。Core CLR 可以随着程序一起发布。不同版

本的Core CLR可以共存。

3 Cross-Platform CLR

我们可以对linux 和 mac os x发布Cross-Platform CLR ,该运行时你可以在mac 和linux 设备上开发和运行.net 程序。

可以在程序中设置我们需要的运行时:

首先新建一个mvc 项目 ,然后右键-》属性 如图:

2 可以托管到任何一个地方
     asp.net vNext 确保我们开发的程序可以托管在IIS或者自我托管到我们自己的程序进程中,如果我们选择运行时是Core CLR,在发布包中就包括了 
我们程序所需的所有依赖包。所以完全不用去管操作系统是否安装了.net framework。任何类型的设备或者托管平台都可以运行我们的程序。以后我 
们就不用非要发布到IIS上了,脱离了对IIS的依赖。
3 不同版本的.net 可以共存
过去我们的程序运行在服务端的时候是依赖于单个的服务器上安装的.net的版本,所有的程序都必须使用相同的.net 的版本,但是如果升级这个版 
本的话可能会造成一些麻烦,因为不能保证如果升级的话程序会不会在新的版本里能正常的运行。Asp.net vNext 解决了这个问题,我们可以在程序 
里制定每个程序运行所需要的.net 版本。 所有的版本都可以共存,但是注意在程序里需要设置你的运行时是 core CLR。
4 简化依赖
    Asp.net vNext 有一个新的轻量的管理依赖的方式,不再像以前那样添加assembly 引用,只需要通过Nuget 包来管理即可。然后编辑项目中现有的 
project.json(相当于之前的web.config) 文件即可。添加的时候会有只能提示,可以制定版本,如图:


5 统一 MVC,Web Api 和 Web Pages
在以前的asp.net 版本中 MVC,Web Api 和 Web Pages有些东西是重叠的,但是实现这些东西的时候我们需要分别的去实现。比如说,web api 和 
mvc 都有路由机制但是不同的是 mvc 的routing 类是在System.Web.Mvc.Routing 命名空间里,但是api 的却是在System.Web.Http.Routing命 
名空间里。web pages 和 mvc 都有razor 语法但是只有一些类是兼容的。
在 asp.net vNext中 MVC,Web Api 和 Web Pages 都被合并到统一的mvc 6 框架中,移除了之前重叠的东西。使开发更加的简单,我们不需要再考 
虑我们的代码是基于mvc web api 或者web pages 的,因为他们都统一起来了。值得注意的是 目前的2015 preview 中 mvc 和 web api 已经统一 
,web pages 的 统一可能需要正式版或者稍后发布的版本中。
6 http 性能的改善
    asp.net vNext 的新的http 请求管道更加的精简和快速,该管道是模块化的,所以你只需要添加你所需要的组件,减少了管道的冗余,程序也会有 
更好的吞吐量,同时也支持OWIN。
7 云计算
   asp.net vNext 的项目结构更加有利于发布到云上,vs 2015 提供了一个新的环境配置系统替代了原来的web.config。它可以接受多种文件传来的 
值(Json xml 和其他的环境变量),
8 依赖注入
   我们可以使用IOC 去注册依赖在asp.net vNext 中,依赖注入有利于环境提供正确的服务。
9 开源
   众所周知 asp.net vNext 在github(链接)上 已经开源了,我们还可以fork 这个项目。开源的好处我就不说了,呵呵。
10 灵活的开发环境
  vs 2015 提供了轻便的开发体验,改变我们的代码保存修改,不需要重新的编译,然后刷新浏览器,我们就可以看到这个变化。(注意:不是按f5 而是 
按 ctrl+f5 )步骤是 ctrl+f5 运行项目 > 修改代码 保存修改> 刷新浏览器 ok 如图:


以上应该是asp.net vNext 主要的特点了,以后我还会分享,谢谢。

Asp.net vNext 学习1的更多相关文章

  1. Asp.net vNext 学习3

    Asp.net vNext 学习之路(三) asp.net vNext 对于构建asp.net 程序带来了一些重大的改变,让我们开发asp.net 程序的时候更加的方便和高效. 1,可以很容易的去管理 ...

  2. [整理]ASP.NET vNext学习资源

    http://www.hanselman.com/blog/IntroducingASPNETVNext.aspx http://blogs.msdn.com/b/dotnet/archive/201 ...

  3. Asp.net vNext 学习之路(三)

    asp.net vNext 对于构建asp.net 程序带来了一些重大的改变,让我们开发asp.net 程序的时候更加的方便和高效. 1,可以很容易的去管理客户端的包比如jquery,bootstra ...

  4. Asp.net vNext 学习之路(二)

    View component(视图组件)应该是MVC6 新加的一个东西,类似于分部视图.本文将演示在mvc 6中 怎么添加视图组件以及怎么在视图中注入一个服务. 本文包括以下内容: 1,创建一个新的a ...

  5. Asp.net vNext 学习之路(一)

    概述 asp.net vNext 也叫 asp.net 5.0,意思是微软推出的下一个版本的asp.net.可以说是微软对asp.net的一个比较重大的重新设计, asp.net vNext是一 个比 ...

  6. Asp.net vNext 2

    Asp.net vNext 学习之路(二) View component(视图组件)应该是MVC6 新加的一个东西,类似于分部视图.本文将演示在mvc 6中 怎么添加视图组件以及怎么在视图中注入一个服 ...

  7. POCO Controller 你这么厉害,ASP.NET vNext 知道吗?

    写在前面 阅读目录: POCO 是什么? 为什么会有 POJO? POJO 的意义 POJO 与 PO.VO 的区别 POJO 的扩展 POCO VS DTO Controller 是什么? 关于 P ...

  8. 分享我对 ASP.NET vNext 的一些感受,也许多年回过头看 So Easy!

    写在前面 阅读目录: Visual Studio "14" CTP 关于 ASP.NET vNext ASP.NET vNext 实践 后记 ASP.NET vNext 发布已经过 ...

  9. 振奋人心啊!!!!下一代.NET——ASP.NET vNext

    这两天看到的.NET的新闻都好振奋人心啊!微软北美技术大会带来了好多好消息! 看到一篇博客园的文章,感觉太棒了.摘录下来.原文链接:http://news.cnblogs.com/n/208133/ ...

随机推荐

  1. ReferenceTypeDemo

    对象a作为参数argument在方法中使用时,如果argument在方法中赋予另一个对象的地址,则之后方法中对参数argument的操作,都不会影响到对象a. 方法中参数argument如果是对象,a ...

  2. iOS kvc

    kvc在我的脑海里用来更改属性的实例变量值. 今天,他们遇到了kvc第二次去学习它,在网上看了很多博客,这似乎不符合我的口味,为了提取一些以下的.总结自己的. http://www.cnblogs.c ...

  3. -ms-grid -ms-grid-rows -ms-grid-row -ms-grid-columns -ms-grid-column

    style: display:-ms-grid-ms-grid-columns和-ms-grid-rows的值可以为: >标准长度单位,如像素 >对象宽度(对于列)或高度(对于行)的百分比 ...

  4. 分布式中使用Redis实现Session共享(转)

    上一篇介绍了如何使用nginx+iis部署一个简单的分布式系统,文章结尾留下了几个问题,其中一个是"如何解决多站点下Session共享".这篇文章将会介绍如何使用Redis,下一篇 ...

  5. ORACLE安装心得,大家一起分享,假设不正确的地方,大家请指出来

    1. 安装\Oracle\10201_database_win32.zip: a) 安装图解: http://jingyan.baidu.com/article/5d6edee228308899ead ...

  6. mahout安装和测试

    Mahout 是 Apache Software Foundation(ASF) 旗下的一个开源项目,提供一些可扩展的机器学习领域经典算法的实现,旨在帮助开发者更加方便快捷地创建智能应用程序.Apac ...

  7. HDU 1195 Open the Lock (双宽搜索)

    意甲冠军:给你一个初始4数字和目标4数字,当被问及最初的目标转换为数字后,. 变换规则:每一个数字能够加1(9+1=1)或减1(1-1=9),或交换相邻的数字(最左和最右不是相邻的). 双向广搜:分别 ...

  8. CSDN markdown 编辑 第五章 UML

    这里大概只能产生两种类型的图: 序列图 框图 序列图 ```sequence A->B: 一句话证明你非常寂寞. Note right of B: thinking B->B: count ...

  9. axure & Markman

    axure & Markman学习总结 最近学了几款有意思的软件,一款是axure,另一款是Markman.接下来聊聊自己的学习心得吧. 关于axure,百度上的解释是:是一个专业的快速原型设 ...

  10. git - 简明指南(转)

    安装 下载 git OSX 版 下载 git Windows 版 下载 git Linux 版 创建新仓库 创建新文件夹,打开,然后执行  git init 以创建新的 git 仓库. 检出仓库 执行 ...