詳論在.NET中定義結(jié)構(gòu)設(shè)計(jì)標(biāo)準(zhǔn)
隨著.net平臺(tái)的推出,微軟不但使這種工作更加吃香,而且明顯又帶來(lái)了更多的挑戰(zhàn)。但是如果有充足的計(jì)劃,.NET結(jié)構(gòu)設(shè)計(jì)師就能保證他們的開(kāi)發(fā)團(tuán)隊(duì)創(chuàng)建高質(zhì)量的、可支持的以及可維護(hù)的應(yīng)用程序,方法就是給出一個(gè)使用.NET平臺(tái)先進(jìn)性的創(chuàng)建或升級(jí)的標(biāo)準(zhǔn)和過(guò)程的可靠建議。
對(duì)于那些打算升級(jí)或者創(chuàng)造適應(yīng).NET的標(biāo)準(zhǔn)的結(jié)構(gòu)設(shè)計(jì)師來(lái)說(shuō),有兩個(gè)主要問(wèn)題需要考慮。一是如何改變開(kāi)發(fā)標(biāo)準(zhǔn),二是如何根據(jù)該平臺(tái)的新的RAD能力以及開(kāi)發(fā)部署環(huán)境的要求來(lái)修改開(kāi)發(fā)過(guò)程。
開(kāi)發(fā)標(biāo)準(zhǔn)
新開(kāi)發(fā)平臺(tái)的推出要求我們重新評(píng)價(jià)現(xiàn)有的開(kāi)發(fā)標(biāo)準(zhǔn)。但是.NET平臺(tái)為新的、令人激動(dòng)地應(yīng)用程序類(lèi)型帶來(lái)了如此多的機(jī)會(huì),以至于你需要對(duì)你的標(biāo)準(zhǔn)進(jìn)行根本的改變。只有一些地方只需要較小的變動(dòng),例如命名標(biāo)準(zhǔn)和慣例以及文檔標(biāo)準(zhǔn)需要做的改變就不多。但是所有的使用.NET Framework的新應(yīng)用開(kāi)發(fā)都要有效地將應(yīng)用程序視為松散的耦合組件和精心設(shè)計(jì)的接口的集合體。雖然很多C++開(kāi)發(fā)人員不會(huì)發(fā)現(xiàn)這類(lèi)思考過(guò)程困難,但是多數(shù)VB.NET開(kāi)發(fā)人員卻會(huì)。為正確地開(kāi)發(fā)類(lèi)而要求的規(guī)范和知識(shí)將不得不來(lái)自.NET結(jié)構(gòu)設(shè)計(jì)師,而不是來(lái)自VB開(kāi)發(fā)人員,因?yàn)樗麄冎挥惺褂妙?lèi)而沒(méi)有設(shè)計(jì)類(lèi)的經(jīng)驗(yàn)。開(kāi)發(fā)一個(gè)高效的類(lèi)設(shè)計(jì)、集成以及命名策略是使用.NET開(kāi)發(fā)軟件走向成功的第一步。
另外,新的.NET安全特征強(qiáng)迫系統(tǒng)結(jié)構(gòu)設(shè)計(jì)師重新檢查先前的有關(guān)安全管理議題的假設(shè)。像以前的COM系統(tǒng)一樣,.NET可以使用一個(gè)單獨(dú)的安全憑證集合,籍此不但可控制磁盤(pán)一般文件和可執(zhí)行文件的訪問(wèn),還可以控制數(shù)據(jù)庫(kù)表和存儲(chǔ)過(guò)程(在SQL Server中使用集成安全性--.NET傾向使用的方法)的訪問(wèn)。但是.NET為使用代碼訪問(wèn)安全來(lái)訪問(wèn)系統(tǒng)資源的代碼增加了請(qǐng)求或者需求權(quán)限的能力。事實(shí)上,.NET結(jié)構(gòu)設(shè)計(jì)師必須考慮如何匯總管理和應(yīng)用域,因?yàn)檫@些東西要求他們必須重新評(píng)價(jià)他們當(dāng)前所有的有關(guān)應(yīng)用程序內(nèi)的以及應(yīng)用程序間的管理信任邊界的假設(shè)。
另外一個(gè)結(jié)構(gòu)設(shè)計(jì)師必須要考慮的主要標(biāo)準(zhǔn)區(qū)域是數(shù)據(jù)訪問(wèn)。.NET應(yīng)用程序使用ADO.NET訪問(wèn)數(shù)據(jù),因此它盡可能的工作在脫機(jī)以及無(wú)狀態(tài)的自然情況下,而基于ADO的COM應(yīng)用程序需要高度聯(lián)機(jī)、有狀態(tài)的環(huán)境。使用消極鎖定的處理并發(fā)問(wèn)題的開(kāi)發(fā)建議在.NET環(huán)境里不能簡(jiǎn)單高效地實(shí)現(xiàn),因?yàn)樗呄蛴谑褂梅e極并發(fā)。結(jié)構(gòu)設(shè)計(jì)師需要為處理貫穿于整個(gè)企業(yè)的并發(fā)問(wèn)題建立一個(gè)標(biāo)準(zhǔn)。
開(kāi)發(fā)過(guò)程
更新之后的新標(biāo)準(zhǔn)并不足以保證在采用.NET平臺(tái)時(shí)能夠成功。平臺(tái)提供的RAD功能要求結(jié)構(gòu)設(shè)計(jì)師重新考慮軟件設(shè)計(jì)過(guò)程以及整個(gè)應(yīng)用程序生命周期管理問(wèn)題。當(dāng)你的開(kāi)發(fā)人員使用新的.NET Framework特征,比如說(shuō)DataSets、DataGrids以及ASP.NET設(shè)計(jì)環(huán)境來(lái)創(chuàng)建健壯、可部署的原型時(shí),你就要重新檢查你的軟件設(shè)計(jì)過(guò)程。VS.net使開(kāi)發(fā)人員使用像極端程序設(shè)計(jì)法之類(lèi)的新的方法學(xué),以非??斓乃俣?相比老的開(kāi)發(fā)工具而言)來(lái)創(chuàng)建軟件系統(tǒng)的特征豐富的新迭代發(fā)布版本。有了維護(hù)前面討論的標(biāo)準(zhǔn)的正確指導(dǎo),我們就能創(chuàng)建更快適應(yīng)時(shí)間改變,類(lèi)型更加豐富的應(yīng)用程序----只要結(jié)構(gòu)設(shè)計(jì)師在向新的設(shè)計(jì)過(guò)程轉(zhuǎn)變的足夠快。
另外我已經(jīng)看到人們對(duì)源代碼管理和構(gòu)建基于微軟技術(shù)的系統(tǒng)的巨大興趣。曾經(jīng)被遺忘的產(chǎn)品,Visual SourceSafe,又煥發(fā)出生機(jī)。在VS.NET工具集投入了成千萬(wàn)美元的公司很不情愿地在第三方源代碼管理系統(tǒng)上投入更多的錢(qián)。很多使用COM技術(shù)的公司忽視了共享源代碼的需求,因?yàn)樗麄冏駨牡氖敲總€(gè)項(xiàng)目作為一個(gè)開(kāi)發(fā)(one-developer-per-project)的規(guī)則。但是由于在.NET平臺(tái)開(kāi)發(fā)的組件具有高度可復(fù)用的本質(zhì),所以很多的應(yīng)用程序的開(kāi)發(fā)者變成了那些創(chuàng)建可復(fù)用組件或者子系統(tǒng)的團(tuán)隊(duì),而不再是那些開(kāi)發(fā)單獨(dú)系統(tǒng)的個(gè)體。這些環(huán)境就需要高效的源代碼管理,源代碼系統(tǒng)的使用是整個(gè)開(kāi)發(fā)、構(gòu)建和測(cè)試過(guò)程的一個(gè)不可分割的一部分。
繼續(xù)向前
.NET Framework是微軟在開(kāi)發(fā)工具上的一個(gè)主要的策略轉(zhuǎn)變。它需要開(kāi)發(fā)人員和系統(tǒng)結(jié)構(gòu)設(shè)計(jì)師共同回顧檢查開(kāi)發(fā)過(guò)程的細(xì)節(jié)。這個(gè)過(guò)程的結(jié)果是一個(gè)每個(gè)人必須遵守的結(jié)構(gòu)設(shè)計(jì)標(biāo)準(zhǔn)。
【編輯推薦】
【責(zé)任編輯:彭凡 TEL:(010)68476606】