ASP.NET系列的多種框架
話說(shuō)2007的視頻我還沒有看多少,2008又要出來(lái)了。在每年的MIX大會(huì)上總有一些東西被微軟力推,比如06年的ASP.NET AJAX(當(dāng)時(shí)還是Atlas,如果沒有記錯(cuò)的話),07年的Silverlight,那么在08年的MIX大會(huì)中又會(huì)重視什么呢?Scott在這篇文章中給了我們一些選項(xiàng):
◆IE 8
◆IIS 7.0
◆ASP.NET (including ASP.NET 3.5, ASP.NET AJAX, ASP.NET MVC, and ASP.NET Dynamic Data)
◆VS 2008 and Expression Studio
◆WPF
◆Silverlight 2
◆And much more....
按照過(guò)去的經(jīng)驗(yàn),我估計(jì)最受關(guān)注的應(yīng)該還是ASP.NET系列的內(nèi)容。微軟的ASP.NET團(tuán)隊(duì)目前手中的任務(wù)其實(shí)不少,有許許多多大大小小的框架/組件需要去開發(fā)和完善——不過(guò)只要有一個(gè)東西獲得成功并受到業(yè)界廣泛使用,那么他們的目的就達(dá)到了。微軟那么多牛人畢竟不是吃干飯的。
在ASP.NET系列中最受社區(qū)(或者還是微軟)重視的應(yīng)該就是ASP.NET MVC框架了,它是ASP.NET系列內(nèi)容中唯一能夠被稱為框架的新玩意兒——ASP.NET AJAX已經(jīng)不新了。Scott也在不久前發(fā)布了有關(guān)ASP.NET MVC框架的最新消息,其主要內(nèi)容就是談到了APS.NET MVC會(huì)為幾周后的MIX08發(fā)布一個(gè)“ASP.NET MVC Framework MIX 08 Edition”——呵呵,這名字是我亂取的,其實(shí)應(yīng)該叫做“ASP.NET MVC MIX Preview Release”,從文章內(nèi)容上看改動(dòng)不小,而且似乎價(jià)值頗大:
1. ASP.NET MVC Framework能夠在Partial Trust級(jí)別中運(yùn)行了:還記得 ASP.NET AJAX遭遇虛擬主機(jī)時(shí)的狀況嗎?ASP.NET AJAX由于必須在Full Trust級(jí)別下才能運(yùn)行,所以只能讓虛擬主機(jī)服務(wù)器商在服務(wù)器上安裝ASP.NET AJAX了。ASP.NET MVC Framework能夠在Partial Trust級(jí)別中運(yùn)行,這意味著我們只需要將相關(guān)dll復(fù)制到bin目錄下去即可。
2. 對(duì)于URL Routing等基礎(chǔ)設(shè)施有了極大的增強(qiáng):文章中僅提到了能夠更好地支持RESTful的URL。我有時(shí)候在想,ASP.NET MVC的URL Routing其實(shí)體現(xiàn)的是“約定勝于配置”,如果要“強(qiáng)大”的功能,是不是又需要相當(dāng)程度的配置了呢?由于沒有談到更詳細(xì)的內(nèi)容,我們只能拭目以待了。
3. 增強(qiáng)VS 2008的支持:Visual Studio其實(shí)是個(gè)平臺(tái),擴(kuò)展性極強(qiáng),微軟為了吸引更多開發(fā)人員,讓自己的東西更有競(jìng)爭(zhēng)力自然需要借助于強(qiáng)大工具的支持。說(shuō)起來(lái)創(chuàng)建項(xiàng)目時(shí)的模板也已經(jīng)是一種支持了,從文章內(nèi)容看來(lái),至少還會(huì)出現(xiàn)一個(gè)Test Project的模版,不過(guò)似乎UI簡(jiǎn)陋了些——還好,畢竟只是個(gè)Preview。
4. 去除了ControllerAction自定義屬性:在上一個(gè)CTP中,Controller的Action需要使用 ControllerActionAttribute這個(gè)自定義屬性進(jìn)行標(biāo)記,而今后則不需要這個(gè)東西了。這個(gè)改變據(jù)說(shuō)是因?yàn)樯鐓^(qū)的反饋,不過(guò)我倒并不介意這個(gè)。
5. Filter Attribute:新功能。自定義屬性是.NET中非常強(qiáng)大的一個(gè)特性,代碼實(shí)現(xiàn)可以非常漂亮。例如按照文章的說(shuō)法,ASP.NET MVC將會(huì)使Controller和Action支持可擴(kuò)展Filter機(jī)制,而框架本身也會(huì)通過(guò)這個(gè)機(jī)制實(shí)現(xiàn)一些常用的功能,比如文章中提到的緩存和身份驗(yàn)證——不得不說(shuō),這個(gè)真的很強(qiáng)。
6. 內(nèi)建HTML Helpers:其實(shí)就是把原本在MVC Toolkit里的類庫(kù)集成到嫡系框架中了。當(dāng)然,肯定還會(huì)增加新的Helper類和方法。
7. 大量重構(gòu)和設(shè)計(jì)上的改進(jìn):這無(wú)疑會(huì)使ASP.NET MVC框架變成一個(gè)很好的學(xué)習(xí)材料——以及很多技術(shù)作家寫作的素材。剛才搜了一下有關(guān)ASP.NET 3.5的書籍,發(fā)現(xiàn)已經(jīng)有不少了,不過(guò)還缺少幾個(gè)重要的系列,例如Wrox的Professional系列和O'Reilly的Essential XXX和Programming XXX等。每項(xiàng)技術(shù)出現(xiàn)之后的百家爭(zhēng)鳴總歸是不會(huì)少的,不過(guò)那么多書總讓我無(wú)從下手,所以我現(xiàn)在一般只看MSDN和社區(qū)里的文章。
8. ASP.NET MVC框架將會(huì)公布源代碼,可供調(diào)試、編譯和修補(bǔ):其實(shí)我更關(guān)心的是ASP.NET MVC的實(shí)現(xiàn),例如它是如何在Partial Trust級(jí)別下運(yùn)行的。公布源代碼之后直接解決了看代碼的問題,當(dāng)然調(diào)試也不在話下。至于修補(bǔ),按照Scott的說(shuō)法,微軟肯定不會(huì)允許第三方將 ASP.NET MVC修改后再發(fā)布,因此真正的Patch也只會(huì)由微軟進(jìn)行。公布源代碼的目的是方便用戶發(fā)現(xiàn)問題之后能夠自行修補(bǔ),或者有啥需要自行擴(kuò)展——“悄悄的進(jìn)村,打槍的不要”。 以上介紹ASP.NET系列的多個(gè)東西。
【編輯推薦】