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 主要的特点了,以后我还会分享,谢谢。

时间: 2024-11-08 06:40:35

Asp.net vNext 学习之路(一)的相关文章

Asp.net vNext 学习之路(三)

asp.net vNext 对于构建asp.net 程序带来了一些重大的改变,让我们开发asp.net 程序的时候更加的方便和高效. 1,可以很容易的去管理客户端的包比如jquery,bootstrap,angular. 2,能够自动的完成less 的编译,javascript 的压缩和单元测试. 3,在web 开发社区有非常丰富的工具生态系统. vs 2015 中有一些自动化的编译工具来支持一些第三方的工具, 1,Bower,可以看作是web 应用的包管理工具,bower 可以安装和恢复客户端

Asp.net vNext 学习之路(二)

View component(视图组件)应该是MVC6 新加的一个东西,类似于分部视图.本文将演示在mvc 6中 怎么添加视图组件以及怎么在视图中注入一个服务. 本文包括以下内容: 1,创建一个新的asp.net vNext 项目. 2,安装 KVM(K version manager). 3,如何运行EF 数据库迁移. 4,什么是 view component. 5,如何在 mvc 6 中添加一个view component . 6,如何在view 中注入一个服务. 一 创建一个新的asp.n

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

http://www.hanselman.com/blog/IntroducingASPNETVNext.aspx http://blogs.msdn.com/b/dotnet/archive/2014/05/12/the-next-generation-of-net-asp-net-vnext.aspx#_.NET_vNext https://github.com/aspnet http://www.asp.net/vnexthttp://www.asp.net/vnext/overview/

ASP.NET MVC 学习之路-4

本文在于巩固基础 模型绑定 从URL 获取值 public ActionResult About(int id) { ViewBag.Id = id; return View(); } @{ ViewBag.Title = "About"; } <h2> @ViewBag.Id</h2> 后面还会说到Entity Framwork C# 的主要 Razor 语法规则 Razor 代码封装于 @{ ... } 中 行内表达式(变量和函数)以 @ 开头 代码语句以分

ASP.NET MVC 学习之路-1

本文在于巩固基础 学习参考书籍:ASP.NET MVC4 Web编程 首先确定我们学习MVC的目标: 我们学习ASP.NET MVC的目的在于开发健壮的.可维护的Web应用,当然这需要一定的知识基础,需要对HTML,CSS,JavaScript以及.net框架还有C#编程语言非常的熟悉 大概了解什么是ASP.NET MVC ASP.NET MVC他是一种全新的WEB开发框架,构建在.net平台上,ASP.NET MVC能够完全支持那些提倡松耦合,高可维护性的开发模式和实践原则 了解过去是为了更好

ASP.NET MVC 学习之路-3

本文在于巩固基础 到这里不得不说ASP.NET MVC一个规则:惯例优先原则 ASP.NET会假定开发人员遵循特定的规则来构建自己的程序而不是使用配置文件 ASP.NET MVC文件夹结构也遵循惯例优先原则,控制器默认以“Controller”结尾,整个框架都是按照这种方式来注册控制器,并且将它们与路由相关联 Share文件夹惯例优先原则也是很明显,这个惯例可以方便用户找到布局文件的位置,如果HomeController控制器包含"Index"操作,它就会按照惯例去Views/Home

ASP.NET MVC 学习之路-2

本文在于巩固基础 为了方便理解MVC框架,我们先创建空的ASP.NET MVC模板 下面是创建后的项目结构 每个文件或者文件夹的作用 App_Data 应用程序数据--- 顾名思义是放置文件或者数据库的文件夹 App_Start应用程序启动文件夹 FilterConfig全局过滤器配置---判断用户登录和权限.Action.防篡改等等. RouteConfig 路由配置 WebApiConfig WebApi 配置 public static class WebApiConfig { publi

ASP.NET MVC学习之路:模板页

1.MVC开发步骤: 控制器-视图. 2.每一个视图都会有一个默认的模板页:_ViewStart.cshtml. 名字不能改,只能叫_ViewStart. 3.Layout=”~/Views/Shared/_Layout.cshtml”; 代表指向的布局. 4._ViewStart.cshtml页面什么时候执行呢? 在每个页面执行之前,先执行此页面代码. 也就是说,给所有页面执行了默认布局了. 5.在_Layout.cshtml文件里,@RenderBody()表示在这个位置显示子页面的内容.相

ASP.NET MVC 学习之路-6

本文在于巩固基础 上文中使用的Code First创建数据库 本文将使用数据库生成模型 这里使用ADO.NET实体数据模型来生成模型 下面按照指导完成操作 下面看看如何使用这个框架 数据访问修改主要是通过上下文类实现,这个类在MyModel.Context.cs中 public partial class MyDBEntities : DbContext { public MyDBEntities() : base("name=MyDBEntities") { } protected