Asp.Net NVC EF 個版本的區別

來源:互聯網
上載者:User

標籤:sql   elf   nodejs   result   彈性   npe   體驗   特定   htm   

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

 

轉載

Asp.Net NVC EF 個版本的區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.