ASP.NET MVC 架構路線圖更新

來源:互聯網
上載者:User
 

【原文地址】ASP.NET MVC Framework Road-Map Update
【原文發表日期】 Tuesday, February 12, 2008 1:05 PM

去年的十二月份,作為ASP.NET 3.5 Extensions CTP版的一部分,我們發布了新ASP.NET MVC 架構的第一個預覽版。我也寫了幾個部落格文章,對該架構到底是什麼,以及你可以如何使用它,提供了更多的細節:

  • ASP.NET MVC 架構 簡介
  • ASP.NET MVC 教程 (第一部分)
  • ASP.NET MVC 教程 (第二部分: URL直接選取)
  • ASP.NET MVC 教程 (第三部分: 把ViewData從控制器傳到視圖)
  • ASP.NET MVC 教程 (第四部分: 處理表單編輯和提交情境)

此後,我們得到了很多正面的反饋,下載量非常高,感受到了圍繞著該架構的興奮。最近大家常問我的一個問題是,“新的版本什麼時候出來,裡面都有些什嗎?”

下面的內容將提供幾個更新,是關於ASP.NET MVC Team Dev一直在開發的東西,以及不久就會發布的一些新特性。我在將來的另外一個文章裡將會討論ASP.NET Dynamic Data(動態資料)以及一直在穩步前進的ASP.NET AJAX 特性方面的工作。

所有這些特性(ASP.NET MVC, ASP.NET Dynamic Data, 以及新的ASP.NET AJAX 改進)都將在今年稍後發布,可用於VS 2008 和.NET 3.5。

即將發布的ASP.NET MVC MIX 預覽版

我們計劃在幾個星期後的MIX 08 大會上發布 ASP.NET MVC 的下一個公開預覽版。這個版本將可以在網上為任何人所下載(你不需要參加MIX)。在這個版本中,我們融合了許多早期採用者的反饋。下面是將在這下一個預覽版中出現的一些改進:

1)ASP.NET MVC架構可以部署在應用的\bin目錄中,以及在部分信任許可權下工作

第一個ASP.NET MVC 預覽版,為了將System.Web.Mvc.dll程式集註冊到機器的GAC(全域組件快取)中去,需要一個安裝程式在機器上運行。

從即將發布的這個預覽版開始,我們將允許應用直接從應用的\bin目錄中直接引用System.Web.Mvc.dll 程式集。這意味著不需要在伺服器上運行安裝程式就可以使用ASP.NET MVC 架構,你只要直接將你的應用拷貝到遠程ASP.NET 伺服器上,就可以運行(不用註冊,也不需要額外的配置步驟)。

我們還在做一些工作,以允許ASP.NET MVC 架構能在“部分和中等信任許可權(partial/medium trust")”的主機情境中運行。這將允許你在廉價的共用主機帳號中也可使用這個架構,而不用要求主機供應商做什麼(只要將你的應用FTP上去,它就能運行,他們不需要安裝什麼東西)。

2)顯著增強直接選取特性和基礎設施

ASP.NET MVC 架構一個最強大的特性是它的直接選取引擎(我在這裡討論過這些特性)。

即將發布的這個ASP.NET MVC 預覽版將包含更多的URL直接選取的特性和改進。你現在可以使用置名的路徑(允許明確的路徑規則的引用),使用靈活的路徑萬用字元規則(允許自訂的基於CMS的URLs),引申和聲明自訂的路徑規則(允許象REST資源地圖那樣的情境等等)。

在這個預覽版中,我們還將URL直接選取基礎設施與MVC架構的其他部分分開,這允許我們可將其用於ASP.NET中其他的非MVC特性中 (包括ASP.NET Dynamic Data和ASP.NET Web Forms)。

3)改進的VS 2008工具支援

第一個ASP.NET MVC預覽版只有極小的VS 2008 支援(基本上就是簡單的項目模板支援)。

這個即將發布的ASP.NET MVC預覽版將提供改進的VS 2008整合支援。這包括,更好的專案檔模板,自動的項目預設設定等等。我們還加了內建的“測試架構”嚮導,這嚮導將在你通過 File->New Project 對話方塊建立新ASP.NET MVC項目時自動運行。這將允許你輕鬆地為你的ASP.NET MVC應用命名和串連單元測試項目。

ASP.NET MVC測試架構嚮導是可插拔的,允許自訂的測試專案模板添加到支援的測試選項表中去:

這允許開發人員輕鬆地選擇他們最喜歡使用的任意單元測試架構(以及關聯的mocking和依賴注入選項)。

4)Controller Action方法不再需要[ControllerAction]特性

第一個ASP.NET MVC 預覽版要求Controller類的action方法明確標有[ControllerAction]特性,才可調用:

基於早期採用者的反饋,即將發布的ASP.NET MVC版將去掉這個要求,取而代之的是,在預設情形下,Controller上的所有公用方法現在都被認為是Action方法:

註: 你可以添加特性,以避免你的Controller的公用方法成為可調用的action方法,假如你想要/需要加一個公用的非action方法的話。

5)控制器和Action方法的新過濾特性支援

在這下一個ASP.NET MVC版本中啟用的一個新擴充性特性是個叫做“過濾特性(Filter Attributes)”的特性。這允許你把攔截代碼注入到MVC控制器的請求中,這些代碼可以在Controller或它的Action方法執行之前和之後執行。這個行為能促成一些非常棒的封裝情境,在其中你可以乾淨,聲明的方式來封裝和重用功能。

例如,我可以使用一個 [OutputCache] 過濾特性,來每次30秒輸出緩衝我的產品列表網頁:

或者使用 [Authorization] 過濾特性來確保只有擁有某個特定資訊安全角色的人才允許編輯產品:

這個過濾機制是可擴充的,你可以輕鬆地為Controller類或者其中的Action方法建立你自己的自訂過濾特性。過濾器(以及使用過濾器的控制器和action方法)是可以被完全單元測試的。

6)HTML輔助方法成內建

第一個ASP.NET MVC 預覽版只有幾個HTML UI輔助方法內建於核心程式集中。然後我們發布了一個單獨的下載,內含一堆可為你所用的額外的HTML輔助方法。

這個即將發布的ASP.NET MVC 預覽版現在內建擁有這些HTML輔助方法(不需要單獨的下載)。下個月,我們還將開始討論我們正在對用戶端ASP.NET AJAX庫所做的一些新的改進,以及一些能與ASP.NET MVC輕鬆整合的AJAX輔助方法。

7)許多重構和設計方面的改進

這個即將發布的ASP.NET MVC預覽版還包括幾個重構和設計改進,以進一步提高MVC架構的可擴充性和可測試性。總的來說,Team Dev遵循了這樣一個設計理念,針對所有特性你都有三個選項:

  1. 原封不動地使用內建的特性/實現
  2. 稍微定製一下內建的特性/實現,不需要編寫很多代碼
  3. 用自訂的東西完全替換掉內建的特性/實現

例外,你現在可以改變視圖引擎(ViewEngine)的定位邏輯 (locator logic),而不用改變視圖引擎的執行邏輯(反之亦然),或者可以把視圖引擎完全置換掉。Controller Factory支援也被擴充成更便利與依賴注入架構的輕鬆整合。路徑規則現在也是完全可擴充的,Controller也更易測試了,等等。

8)可下載的ASP.NET MVC架構源碼(可編譯和施於補丁)

上個月,我宣布了.NET架構原始碼可以下載和調試了。最終在發布 ASP.NET MVC 架構之後,該架構的原始碼也將以同樣的機制提供給開發人員,就像其他的ASP.NET原始碼一樣。

從下一個預覽版開始,我們還將把ASP.NET MVC 架構的原始碼以可編譯的VS項目方案的方式提供下載。這將允許你輕鬆地查看和調試ASP.NET MVC 架構原始碼。我們還將包括一個許可,允許你可以對ASP.NET MVC 架構的原始碼進行補丁,萬一你在使用MVC架構開發的應用中遇上其中的缺陷的話。

這個許可將不允許你重新發布你補過的ASP.NET MVC 版本(我們想避免有多個不相容的ASP.NET MVC 版本的流傳以及相互之間的衝突)。但它會允許那些想動手開發ASP.NET MVC 應用的開發人員立刻取得進展,而不必擔心為他們無法繞過的臨時的缺陷所阻礙。

結語

下一個 ASP.NET MVC 預覽版中還包括了很多其他的變動(包括許多輔助屬性/方法/對象)。希望上面的列表對即將出現的幾個較大的改進提供了一些介紹。在MIX大會左右我會在預覽版發布後寫文章,提供更新的預覽版的地址。

希望本文對你有所協助,

Scott

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.