[轉]Asp.Net MVC EF各版本區別

本文轉自:http://www.cnblogs.com/liangxiaofeng/p/5840754.htmlhtml

2009年發行ASP.NET MVC 1.0版前端

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

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

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

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

2015年發行ASP.NET MVC 6.0版+EF7,須要.Net5.0支持,VS2015數據庫

ASP.NET 5.0      將更名爲  ASP.NET Core 1.0windows

ASP.NET MVC 6     將更名爲  ASP.NET MVC Core 1.0api

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。

image

image

 

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.跨平臺。

相關文章
相關標籤/搜索