国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > .NET > 正文

ASP.NET2.0+VS2005利器大評(píng)析之優(yōu)點(diǎn)篇

2024-07-10 13:09:14
字體:
供稿:網(wǎng)友

  asp.net 2.0與visual studio 2005正式上市至今已經(jīng)有好幾個(gè)月了。隨著時(shí)間的一天天向前推移,如今越來越多的人能夠使用到這一產(chǎn)品。本文作者基于對(duì)該產(chǎn)品的試用試圖從個(gè)人角度來對(duì)這一產(chǎn)品的優(yōu)點(diǎn)與不足作出評(píng)析,僅供參考。

  一、 引言

  說實(shí)在的,我對(duì)asp.net 2.0與visual studio 2005之間的關(guān)系有些喜歡也有些討厭;但是,我最終還是決定把我的大多數(shù)內(nèi)部應(yīng)用程序遷移到2.0并且決不后悔。基本上,asp.net 2.0中存在太多的新的特征使我的生活變得更為輕松,并且從此以后再也不會(huì)返回到以前的1.1版本中編程了。

  到目前為止,這個(gè)平臺(tái)一直工作良好。我已經(jīng)發(fā)現(xiàn)了其中存在的許多改進(jìn)能夠大量地降低編碼的復(fù)雜性和編碼數(shù)量,在性能方面大約提高了10~20%,并且減少了內(nèi)存需求量(這對(duì)于大型應(yīng)用程序而言是十分重要的),但是對(duì)我的工作來說幾乎沒有太大的作用。

  把2.0特征加入到現(xiàn)有應(yīng)用程序中絕對(duì)不是一夜之間的事情。但是,隨著我逐漸地習(xí)慣快速地把大量的2.0特征加入到我的新式應(yīng)用程序中,我的最后感覺是:如果再回到asp.net 1.1和vs 2003的話,那將是一個(gè)很大的后退。

  二、 優(yōu)點(diǎn)評(píng)析

  下面,讓我們來逐步剖析這個(gè)新產(chǎn)品中的主要變化,首先來看一下它的優(yōu)點(diǎn)。

  (一) visual studio 2005基于文件的工程開發(fā)

  現(xiàn)在,在visual studio 2005中,你能夠把一個(gè)目錄作為一個(gè)web工程來打開,這是一種相當(dāng)不錯(cuò)的改進(jìn)。在我的開發(fā)機(jī)器上,我可能有50個(gè)不同的web工程。使用以前的vs2003,要把所有這些作為iis中的虛擬目錄加以配置和維護(hù)并且使工程實(shí)現(xiàn)正確地引用是令人相當(dāng)頭疼的事情。你不這樣認(rèn)為嗎?你是否想把某些工程移動(dòng)到一臺(tái)新機(jī)器上?在vs2005中,你只需要簡(jiǎn)單地指向一個(gè)目錄就可以打開工程。你完全可以使用本地的web服務(wù)器構(gòu)建方式來運(yùn)行應(yīng)用程序,這樣以來就免除了配置web服務(wù)器的需要。

  這個(gè)特征特別適合于共享示例的開發(fā)者—任何想檢查一個(gè)示例web應(yīng)用程序的開發(fā)人員都不必經(jīng)受基于iis進(jìn)行配置的痛苦。現(xiàn)在,借助于基于文件的工程,你能夠—至少在開發(fā)場(chǎng)所下—實(shí)現(xiàn)真正的“xcopy”工程。這個(gè)特征相當(dāng)偉大,但是也不無缺點(diǎn)(一會(huì)兒后我們會(huì)詳及)。

  【另注】我接觸到的每一位都喜歡構(gòu)建到visual studio內(nèi)部的cassini web服務(wù)器。當(dāng)然,我也喜歡,因?yàn)樗鼧O大地簡(jiǎn)化了許多問題的處理。然而,有關(guān)它的使用也存在一些缺點(diǎn)。主要是在使用過程中應(yīng)當(dāng)避免cassini與iis之間的相互干擾。例如,cassini能夠把所有的請(qǐng)求傳遞給asp.net而忽略擴(kuò)展內(nèi)容。如果你擁有處理特定的文件類型的定制的處理器(例如,動(dòng)態(tài)地構(gòu)建excel報(bào)告,等等),那么,你必須記住,當(dāng)發(fā)布你的應(yīng)用程序時(shí),你要在iis中為擴(kuò)展內(nèi)容建立定制的映射;否則的話,iis不會(huì)把請(qǐng)求傳遞給asp.net。我接觸過許多朋友在發(fā)布時(shí)花費(fèi)大量的時(shí)間來解決他們的應(yīng)用程序中的問題,因?yàn)樗麄冊(cè)陂_發(fā)過程中從不擔(dān)心cassini中的配置設(shè)置問題。

  (二) 母版頁(yè)面

  現(xiàn)在,你可以定義一個(gè)能夠在你的應(yīng)用程序中重用的母版(master)頁(yè)模板。使用這個(gè)功能能夠節(jié)約你大量的開發(fā)時(shí)間。事實(shí)上,在2.0版本出現(xiàn)以前,已經(jīng)存在基于asp.net 1.x版本的這種概念,但是對(duì)于我來說,吸引我的最關(guān)鍵的特征在于,visual studio提供了對(duì)它的可視化支持。這可以使你看到母版的布局,其中contentplaceholders可以應(yīng)用于每一個(gè)頁(yè)面中以提供頁(yè)面級(jí)內(nèi)容。

  除了設(shè)計(jì)器提供的重要的可視化方面外,母版頁(yè)模板還提供了一種良好的方式來把彼此相關(guān)的可重用的代碼聯(lián)系到一起。母版頁(yè)面的目的是,把以前需要使用若干用戶控件(例如,header,footer和sidebar)才能實(shí)現(xiàn)的功能融合到一起,從而使它們能夠比以前更為有效地實(shí)現(xiàn)邏輯分離。

  【另注】你還能夠在運(yùn)行時(shí)刻動(dòng)態(tài)地改變母版頁(yè)面,從而實(shí)現(xiàn)更大的靈活性。這一支持使用戶能夠改變一個(gè)應(yīng)用程序的整體外觀感覺;而且這種效果是僅憑借切換層疊式樣表所無法實(shí)現(xiàn)的。

  (三) 用戶控件可視化描述

  說實(shí)在的,我非常希望自己在設(shè)計(jì)時(shí)就能看到整個(gè)頁(yè)面的樣子。就象母版頁(yè)面一樣,現(xiàn)在,visual studio 2005能夠在web表單編輯器內(nèi)顯示一個(gè)生成的用戶控件。不再象是以前的老式的、非描述性的灰色的方框加上一個(gè)控件名,現(xiàn)在,你能夠在設(shè)計(jì)器內(nèi)得到一個(gè)全面生成的恰當(dāng)?shù)轿坏目丶kp擊它,則vs就能把你導(dǎo)航到用戶控件設(shè)計(jì)器。在我的開發(fā)中,我一般不會(huì)大量地使用用戶控件,而是使用母版頁(yè)面來替換我的許多現(xiàn)有的控件,但是我發(fā)現(xiàn)這種用戶控件可視化描述使設(shè)計(jì)模式更為有用了。對(duì)于我的現(xiàn)有1.1版本的應(yīng)用程序來說,尤其如此—我的這些程序中通常仍然使用這樣的控件來表達(dá)頁(yè)面的頁(yè)眉,側(cè)欄和頁(yè)腳。

  【另注】完全自動(dòng)地生成用戶控件極大地節(jié)約了開發(fā)時(shí)間。當(dāng)然,我還需要花費(fèi)不少的時(shí)間從ide到一個(gè)瀏覽器來回切換以觀察用戶控件最終生成的樣子。僅此而已。

  (四) 泛型

  不錯(cuò),這并非是一個(gè)asp.net特有的特征,但是.net 2.0中泛型的引入大大豐富了代碼的編寫。以前,在創(chuàng)建定制集合時(shí),我常常非常小心;坦誠(chéng)地說,反反復(fù)復(fù)地從collectionbase進(jìn)行派生然后重新實(shí)現(xiàn)相同的代碼是一件非常折磨人的工作。對(duì)于定制控件開發(fā),特別在asp.net中開發(fā)時(shí),我發(fā)現(xiàn)當(dāng)你需要集合特性時(shí)使用泛型集合效果相當(dāng)好。

  你只需簡(jiǎn)單地使用列表或一個(gè)特定的泛型集合,然后把它作為該控件的一個(gè)屬性—問題就這么簡(jiǎn)單!visual studio能夠看到這個(gè)集合;并且,在大多數(shù)情況下,它還能夠?yàn)槟闾峁┫鄳?yīng)的集合編輯器。通過使用泛型列表,你可以很容易地使用強(qiáng)類型化列表來代替許多基于arraylist的列表,這往往使編碼更為清晰。

  最后,在業(yè)務(wù)對(duì)象內(nèi)使用動(dòng)態(tài)的類型替換消除了對(duì)令人“膽戰(zhàn)心驚”的初始化編碼(以前,在每一個(gè)業(yè)務(wù)對(duì)象中都要進(jìn)行這種初始化以指定哪個(gè)實(shí)體類型與之相關(guān)聯(lián))的需要。在泛型出現(xiàn)以前,往往需要借助于一個(gè)小型編碼代理來把業(yè)務(wù)對(duì)象和實(shí)體綁定到一起。現(xiàn)在,有了泛型類型后,不再需要這樣的編碼,而代之以一個(gè)泛型類型參數(shù)。此后,所有的類級(jí)代碼就能夠使用泛型類描述在運(yùn)行時(shí)刻自動(dòng)地生成正確的類型。借助于一個(gè)類型化參數(shù)和一組父類級(jí)方法,現(xiàn)在再也不需要從我的所有業(yè)務(wù)對(duì)象中剪切和粘貼大量的代碼。其實(shí),還存在許多使用泛型的場(chǎng)所;而且如今,我發(fā)現(xiàn)不使用泛型類型很多問題變得十分棘手,特別是在處理與集合相關(guān)的內(nèi)容時(shí)。

  【另注】泛型將會(huì)被廣泛應(yīng)用于集合及業(yè)務(wù)對(duì)象操作方面,而且,你也可以在頁(yè)面基類和用戶控件開發(fā)中從中獲益。最近,我在網(wǎng)上看到有人構(gòu)建一個(gè)泛型基頁(yè)面實(shí)現(xiàn)自動(dòng)地加載業(yè)務(wù)對(duì)象數(shù)據(jù)并建立相應(yīng)的ajax回調(diào)機(jī)制以便更新這些對(duì)象。你看,以前在每一個(gè)新頁(yè)面中實(shí)現(xiàn)起來如此頭疼的事情一下變得如此簡(jiǎn)單了!

  (五) 支持嵌入式資源

  我比較喜歡把大量的定制控件用于我自己的應(yīng)用程序中。經(jīng)常情況下,這些控件都會(huì)依賴于特定的資源,例如圖像,css文件,xml資源等等。此時(shí),任何這些控件的用戶必須記住要在他們的應(yīng)用程序中發(fā)布相應(yīng)的文件。如今,在asp.net開發(fā)中,你可以容易地把需要的web資源嵌入到一個(gè)工程中,然后經(jīng)由一個(gè)asp.net生成動(dòng)態(tài)的url來存取它們。為此,你只需要簡(jiǎn)單地把[webresource]屬性添加到你的控件的assemblyinfo文件中,然后使用page.clientscript.getwebresourceurl來檢索包含這些資源內(nèi)容的url即可。

  (六) visual studioasp.net代碼編輯器

  visual studio 2005代碼編輯器比2003版本前進(jìn)了一大步。我認(rèn)為,最重要的新“特征”在于,新的編輯器不會(huì)自動(dòng)地“打亂”我的代碼格式,除非我重新格式化文檔。例如,我想讓我的內(nèi)容按我喜歡的方式進(jìn)行組織,然而,當(dāng)我使用vs2003時(shí)這卻成了一個(gè)問題—無論何時(shí)把新的控件添加到頁(yè)面系統(tǒng)都會(huì)重新格式化html。在vs2005中,編輯器在大多數(shù)情況下會(huì)保留用戶自己的代碼格式,并且還會(huì)提供一種更好的處理—把控件標(biāo)記插入到代碼中。

  一個(gè)真正提高生產(chǎn)效率的改進(jìn)是,在新的html編輯器中引入了智能感知技術(shù)—而且出現(xiàn)在每一處位置!我經(jīng)常在一個(gè)頁(yè)面內(nèi)嵌入<%=%>表達(dá)式,而智能感知意味著它會(huì)幫助我避免錯(cuò)別字。asp.net 2.0還會(huì)編譯頁(yè)面并且檢查生成的嵌入式腳本代碼,以便及早地在設(shè)計(jì)時(shí)刻而不是在運(yùn)行時(shí)刻才捕獲html標(biāo)記中的錯(cuò)誤。
智能感知適合于所有的控件,包括你自己的定制控件,因此你不必再提供一種私有類型模式文件。visual studio能夠簡(jiǎn)單地找到你的控件并且在內(nèi)部管理智能感知。智能感知支持真是太好了,有時(shí)它甚至能夠“超越”可視化設(shè)計(jì)器。一會(huì)兒后,你就會(huì)明白為什么這可能比你想像的更為重要。

  【另注】作為一名最近才從visual basic轉(zhuǎn)到c#的新手,我特別欣賞visual studio 2005提供的c#智能感知支持。在visual studio以前的版本中好象在對(duì)vb和c#的智能感知支持方面存在很大的差距;并且,當(dāng)我分析c#代碼時(shí),我常常發(fā)現(xiàn)我自己十分需要有一種vb風(fēng)格的智能感知幫助。現(xiàn)在,現(xiàn)在這種差距消失了,而且語(yǔ)言之間的切換也更為容易了。



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 岱山县| 孙吴县| 土默特左旗| 富民县| 绵竹市| 沙河市| 广河县| 东港市| 龙门县| 丹寨县| 神农架林区| 康定县| 奉新县| 佛学| 龙陵县| 孝感市| 永年县| 石屏县| 长子县| 西华县| 岫岩| 邛崃市| 敦煌市| 江川县| 呼玛县| 井冈山市| 福清市| 耿马| 清新县| 商河县| 仁化县| 页游| 商洛市| 安义县| 呼伦贝尔市| 天台县| 新乡县| 威远县| 万山特区| 佛冈县| 凯里市|