Asp.Net NVC EF 个版本的区别

2009年發行ASP.NET MVC 1.0版

2010年發行ASP.NET MVC 2.0版,VS2010

2011年發行ASP.NET MVC 3.0版+EF4,需要.Net4.0支持,VS2011

2012年發行ASP.NET MVC 4.0版+EF5,需要.Net4.0支持,VS2012

2013年發行ASP.NET MVC 5.0版+EF6,需要.Net4.5支持,VS2013

2015年發行ASP.NET MVC 6.0版+EF7,需要.Net5.0支持,VS2015

ASP.NET 5.0      将改名为  ASP.NET Core 1.0

ASP.NET MVC 6     将改名为  ASP.NET MVC Core 1.0

Entity Framework 7.0    将改名为  Entity Framework Core 1.0

.NET新的跨平台版本将命名为.NET Core 1.0

MVC3

支持多视图引擎 
在 ASP.NET MVC3 中,增加视图的对话框中允许你选择你希望的视图引擎,在新建项目对话框中,你可以指定项目默认的视图引擎,可以选择 WebForm,Razor,或者开源的视图引擎,例如:Spark, NHaml, 或者 NDjango.

控制器的改进 
全局的 Action 过滤器 
有的时候你希望能够在在一个 Action 方法执行之前或者执行之后执行一些处理逻辑,在 ASP.NET MVC2 中,提供了 Action 过滤器,允许对特定控制器的 Action 方法进行处理,实际上,有时候你希望对所有的 Action 都进行类似的处理,MVC3 允许你将过滤器加入到 GlobalFilters 集合中来创建全局的过滤器.

新的 ViewBag 属性 
MVC2 中的控制器支持 ViewData 属性,允许通过后绑定的字典将数据传送给视图模板,在 MVC3 中,你可以通过 ViewBag 来更加简单的完成。例如,对于 ViewData["Message"] = "text",你可以通过 ViewBag.Message = "text" 来完成。你不需要通过类来定义任何强类型的属性,因为这是动态属性,在内部,ViewBag 属性以名-值对的形式保存在 ViewData 字典中。注意,在许多预发布版本中,这个属性被称为 ViewModel。

新的 ActionResult 类型 
下面的 ActionResult 类型在 MVC3 中是新增的或者被扩展的。

JavaScript 和 Ajax 改进 
默认情况下,在 MVC3 中,Ajax 和验证使用不引人注目的 unobtrusive 的 JavaScript 方式。unobtrusive 不会在 HTML 中插入行内的 JavaScript ,这使得 HTML 更加精简和更少干扰,也使得更加容易被替换和定制 JavaScript 库,在 MVC3 中,验证助手默认使用 jQuery.Validate 插件完成,如果你希望使用 MVC2 的行为,你可以在 web.config 中通过配置来关闭 unobtrusive .

默认启用了客户端验证 
在早先版本的 MVC 中,你需要在视图中显式调用 Html.EnableClientValidation 方法来启用客户端验证。在 MVC3 中,已经不再需要了,因为默认就会启用客户端验证。可以在 web.config 中关闭。

为了使得客户端验证工作,你仍然需要在网站中加入对 jQuery 和 jQuery.Validation 库的引用,你可以在自己的网站中提供,或者使用 Microsoft 或者 Google 的 CDN 服务器。

远程验证 
ASP.NET 3 通过一个新的标签 RemoteAttribute 对 jQuery Validation 插件的远程验证提供支持。这允许客户端的验证库自动调用一个你定义在服务器上的自定义的方法来完成只能在服务器上完成的验证逻辑。

在下面的例子中,Remote 标签指定了通过一个定义在 UsersController 中名为 UserNameAvailable 的方法来验证用户名字段。

    • Razor 的语法简单且清晰,只需要最小化的输入
    • Razor 容易学习,语法类似于 C# 和 VB
    • Visual Studio 对于 Razor 提供了智能提示和语法着色
    • Razor 视图不需要允许程序或者启动 Web 服务器就可以进行测试
    • @model 用来指定传到视图的 Model 类型
    • @* * 注释语法
    • 对于整个站点可以一次性设定默认项目,例如布局。
    • Html.Raw 方法提供了没有进行 HTML 编码的输出
    • 支持在多个视图之间共享代码 ( _viewstart.cshtml 或者 _viewstart.vbhtml )
    • Chart. 生成图表
    • WebGrid, 生成数据表格,支持完整的分页和排序
    • Crypto,使用 Hash 算法来创建 Hash 和加盐的口令
    • WebImage, 生成图片
    • WebMail, 发送电子邮件
    • HttpNotFoundResult. 向客户端返回 404 HTTP 状态.
    • RedirectResult. 基于一个布尔型的参数,返回一个临时的重定向 (HTTP 302 status code) 或者持久的重定向 (HTTP 301 status code), 结合这个改进,, Controller 提供了三个方法来支持持久的重定向: RedirectPermanent, RedirectToRoutePermanent, 和 RedirectToActionPermanent. 这些方法返回一个 Permanent 属性为真的 RedirectResult 对象实例。
    • HttpStatusCodeResult. 返回用户指定的 HTTP 状态码。

    JSON 绑定支持 
    ASP.NET MVC3 包含内置的 JSON 绑定支持,允许 Action 方法接收 JSON 编码的数据并且模型化为 Action 的参数。这个能力经常被用于客户端的模板和数据绑定中。客户端模板允许你通过客户端的模板来格式化和显示一个或者多个数据,MVC3 允许你简单的连接客户端模板和服务器端的 Action 方法,通过 JSON 来发送和接收数据,更多的信息参考:Scott Guthrie‘s MVC 3 Preview blog post.

    ValidationAttribute 类 
    在 .NET Framework4 中被改进 的ValidationAttribute 类支持新的 IsValid 重载,提供关于当前验证上下文的更多信息,例如什么对象被验证了。这允许你基于 Model 的其他属性来验证当前值,例如,新的 CompareAttribute 就允许你比较 Model 的两个属性的值,在下面的例子中,ComparePassword 属性必须匹配 Password 字段来同通过验证。

    Model 验证的改进 
    DataAnnotations 元数据标签 
    ASP.NET MVC3 支持 DataAnnotations 元数据标签,例如:DisplayAttribute。

    1. public class User
    2. {
    3. [Required]
    4. public string Password { get; set; }
    5. [Required, Compare("Password")]
    6. public string ComparePassword { get; set; }
    7. }

 MVC4

MVC4 在vs2012以上版本中创建的时候,默认是 .net framework4.5  ,但是我们是可以修改为 .net 4.0的  (也就是说在2003的服务器上,还是可以上 mvc4的,安装过程请参考  windows2003 IIS6 部署MVC3和MVC4程序    Asp.net MVC4.0(从net4.5降级到4.0) 部署到window server 2003上的解决方案

但是Net Framework4.5是不支持安装在window server 2003上)

asp.net 4.5   MVC升级到 MVC4, 多了 webapi

vs2013里面  asp.net 4.5.1  MVC升级到了MVC5 ,webapi升级到了  webapi2.0

MVC5

多了对 webapi 2.0的支持  (可以看看这个  http://www.cnblogs.com/artech/p/web-api-sample.html)

ASP.NET MVC 5带来全新的开发者体验,One ASP.NET的整合新范本系统,经由单一入口即可完成所有Web范本的选择,各种Web范本之间也可以灵活组合出新范本,例如,Web Forms + Web API等。MVC 5提供更有弹性的会员认证系统,透过Code First的方式开发人员不在受限於固定的Schema,可自由定义所需的资料Schema。採用Bootstrap设计的全新Web范本介面,Bootstrap提供高度弹性,让开发人员也能快速拥有架构页面介面及开发出支援响应式网页 (Responsive Web)的能力。

随著Visual Studio 2013的发行,开发工具又向前迈出大一步,它正在统一一致的体验,现在,你能够实现相同功能集,无论你如何开始建置ASP.NET应用程式。例如,开发人员可以在Web Forms专案中透过支架(Scaffold)加入Web API,开发人员可以自由混合选择你所想要的技术。One ASP.NET是為了让开发人员在所爱的ASP.NET裡更容易做想做的事,One ASP.NET应该给开发人员信心,无论他们选择什麼,他们仍然是在一个可信任基础框架-ASP.NET-下进行开发。 
MVC专案范本无缝地整合成一个全新的One ASP.NET体验。透过One ASP.NET的专案建立精灵,开发人员可以客製化MVC专案和组态认证。MVC专案现在是标準Web应用程式的一部分且不再使用它们自己的专案GUID。

vs2013里面 有  EF6

EF6 在 code first的模式下,codefrist不支持的数据库更多,比如access,sqlite,sql compact 3.5,mysql,oracle

MVC6

在新版 ASP.NET5 和 MVC6 中,有很多变化,有些是彻底的变化,比如在最底层支持依赖注入技术,为了方便了解,我们这里列出了最重要的 10 大变化,以便进行学习,具体如下:

ASP.NET 5 现在已经是跨平台了,可以在 Mac 和 Linux 上运行。

不再有 Web Forms 框架了。

只支持 C# ,不在支持 VB.NET 了。(貌似最近又听说最终版 VB.NET 又要支持了)

新的 Tag 语法, @Html.LabelFor 或 Html.TextBoxFor 替换成新语法 <label asp-for="Name"> 或 <input asp-for="Name" /> ,以便进行模型绑定。

新增视图组件( View Component ),可以将局部内容定义为一个单独的组件进行调用,和 Web Forms 里的 WebControl 非常像。

拥抱前端技术,内置了 Nodejs 、 NPM 、 Grunt 、 Bower 技术。

模型整合,将 MVC 和 WebAPI 整合成一个框架。

支持 AngularJS ,帮内置了 AngularJS 的 module 、 controller 、 directive 、以及 factory 模板。

支持依赖注入技术,拥有原生的 DI 框架,并且也支持第三方容器。

支持 xUnit.net ,并抛弃了 Visual Studio Unit Testing 框架。

ASP.NET 5 中的 MVC 、 Web API 、 Web Pages 三个框架会合并成一个框架,统称为 MVC6 。该合并工作将删除三个框架中重复的功能,比如 MVC 和 Web API 中的两种 Controller 只保留一种。但是传统 MVC 的功能都会保留,比如模型绑定。不过,据说 Web Pages 在 RTM 的时候不会发布,而是会在 RTM 之后的第一次更新中进行发布。

MVC6 会引入一些新功能,最引人注目的功能就是 Tag Helpers 和 View Components 。 Tag Helpers 是 Html Helpers 的一种替换,而 View Components 则引入里类似 Web Forms 中的 WebControl 的概念。

EF7

EF7不是在EF6上更新,而是完全重写了。它完全支持.NET Core runtime,也就是说以后你可以在Mac或者是Linux机器上使用EF了。

EF7比较大的变化:

a.只支持Code-First或者Code,不再支持图形界面的生成。

b.支持关系型数据库。

c.跨平台。

转载

时间: 2024-08-06 07:54:48

Asp.Net NVC EF 个版本的区别的相关文章

Asp.Net MVC EF各版本区别

2009年發行ASP.NET MVC 1.0版 2010年發行ASP.NET MVC 2.0版,VS2010 2011年發行ASP.NET MVC 3.0版+EF4,需要.Net4.0支持,VS2011 2012年發行ASP.NET MVC 4.0版+EF5,需要.Net4.0支持,VS2012 2013年發行ASP.NET MVC 5.0版+EF6,需要.Net4.5支持,VS2013 2015年發行ASP.NET MVC 6.0版+EF7,需要.Net5.0支持,VS2015 ASP.NET

[转]Asp.Net MVC EF各版本区别

本文转自:http://www.cnblogs.com/liangxiaofeng/p/5840754.html 2009年發行ASP.NET MVC 1.0版 2010年發行ASP.NET MVC 2.0版,VS2010 2011年發行ASP.NET MVC 3.0版+EF4,需要.Net4.0支持,VS2011 2012年發行ASP.NET MVC 4.0版+EF5,需要.Net4.0支持,VS2012 2013年發行ASP.NET MVC 5.0版+EF6,需要.Net4.5支持,VS20

基础知识 Asp.Net MVC EF各版本区别

原文:https://www.cnblogs.com/liangxiaofeng/p/5840754.html 2009年發行ASP.NET MVC 1.0版 2010年發行ASP.NET MVC 2.0版,   VS2010 2011年發行ASP.NET MVC 3.0版+EF4,需要.Net4.0支持, VS2011 2012年發行ASP.NET MVC 4.0版+EF5,需要.Net4.0支持, VS2012 2013年發行ASP.NET MVC 5.0版+EF6,需要.Net4.5支持,

MVC2 ,MVC3 ,MVC4,MVC5的区别,EF的各个版本的区别;LocalDB是个啥

EF6 在 code first的模式下,codefrist不支持的数据库更多,比如access,sqlite,sql compact 3.5,mysql,oracle 关于LocalDB的介绍 类似于sqlite (但是sqlite是不支持存储过程的,而LocalDB则支持存储过程) 导读:LocalDB是SQL Server 2012带来的新特性,它是一个专门为开发人员量身定制的轻量级数据库.本文将为您讲解LocalDB的开发背景,展示其核心特性,并看看它与微软的其它轻量级数据库到底有何不同

解析ASP.NET WebForm和Mvc开发的区别

解析ASP.NET WebForm和Mvc开发的区别 2013-12-29 01:59 30052人阅读 评论(9) 收藏 举报  分类: ASP.NET(14)  版权声明:本文为博主原创文章,未经博主允许不得转载. 因为以前主要是做WebFrom开发,对MVC开发并没有太深入的了解.自从来到创新工场的新团队后,用的技术都是自己以前没有接触过的,比如:MVC 和EF还有就是WCF,压力一直很大.在很多问题都是不清楚的情况下,问周围的人,别人也只是给自己讲一个大概.而且前两天因为问了一个比较细的

记录我的ASP.NET MVC+EF的印记

首先我想大家对ASP.NET MVC+EF并不陌生,可悲的是小菜我从2012年知道他的存在直到现在才开始学习.可以说是浪费了很多时间,由于楼主一直使用ADO.NET+三层的模式,所以总觉得有自己的一番天地,同时在此呼吁还有像我一样的橙色猿或攻城师们请正视它,时代的脚步不会因为你们而停留.但最近一段时间可以说是2014年下半年,整个行情都是在使用ASP.NET MVC+EF或者其他持久层来搭建项目.大势所趋不得不正视它了. 楼主的MVC水平还停留在2.0的水平,可想而知.当时是出于项目需要而使用了

ASP.NET MVC+EF框架+EasyUI实现权限管理系列(3)-面向接口的编程

原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(3)-面向接口的编程 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇)  (1)框架搭建    (2):数据库访问层的设计Demo 前言:这篇博客在数据访问层的基础上面我们继续学习对这个Demo的开发,希望大家都好好理解一下这个Demo的架构,到最后我实现权限的时候我就简单的说一下搭建过程就OK了,因为这个Demo的思想就是按照权限的设计方式去设计的,下面我们开始介绍面向接口的编程思想,如果感觉好的话可以

c# asp.net 新建项目与新建网站区别

http://blog.sina.com.cn/s/blog_9a9e0bd601017iz3.html web应用程序----Web网站 1--web应用程序Default.aspx显示有两个原有文件及Default.aspx.cs和Default.aspx.designer.cs:Web网站Default.aspx显示有一个原有文件Default.aspx.cs. 2--web应用程序有重新生成和发布两项:Web网站只有一个发布网站. 3--Web应用程序和一般的winform没有什么区别都

ASP.NET中RegisterStartupScript和RegisterClientScriptBlock有区别吗

今天用RegisterClientScriptBlock()方法调用了alertify.js(绚丽的实现alert()同样的提示功能): Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "message", "<script>alertify.success('删除成功!');</script>"); 错误信息大致是这样:alertify is undefined