怎樣使.NET命名空間符合標(biāo)準(zhǔn)_.Net教程
推薦:談ASP.NET創(chuàng)建Web服務(wù)的使用事務(wù)支持XML Web服務(wù)的事務(wù)利用公共語言運行期中的支持,其是基于Microsoft Transaction Server ( MTS)和COM Services中相同的分布式事務(wù)模型。該模型基于明確的判斷一個對象是否參與一個事務(wù),而不是編寫特定的代碼用來處理委托和回調(diào)一個事務(wù)。對于一個使用ASP
命名空間可以幫你組織企業(yè)的.NET源代碼,但要做到這一點,必須要有可靠的計劃。by Jonathan Goodyear, MCSD, MCP, CLS
還記得在COM中為企業(yè)組織源代碼有多難嗎?典型情況下,你在命名時只可以用兩個級別(level):項目名稱和類名稱。你的ProgID通常是以下面的形式顯示的:XYZCompanyAccounting.Payroll。顯然,這種方法并不理想。如果可以更細地劃分命名空間標(biāo)識符就更好了。例如,在.NET中,ProgID可以表示成:XYZCompany.Accounting.Payroll。在這個例子中,兩者的差別并不大,但當(dāng)你在定義層次更多的項目時,它們的差別就會很明顯了。
實際上,.NET Framework可以讓你創(chuàng)建更深層嵌套的命名空間,這種功能會使編程工作更順利(或更糟)。要運用深層嵌套的命名空間需要我們更仔細地做計劃,并需要企業(yè)各開發(fā)小組的配合。本文提供了一些有用的建議,講述了如何以命名空間的形式來組織源代碼,以及如何在Visual SourceSafe(VSS)項目中組織企業(yè)的.NET源代碼。
構(gòu)建你的命名空間
作為出發(fā)點,你為一個源代碼單元分配的每個命名空間都應(yīng)該以公司標(biāo)識符開頭,這是很有用的。例如,在前面的例子中,我是以“XYZCompany”開頭的。命名空間的下一部分取決于代碼的目的范圍。如果你的代碼是包含商業(yè)邏輯的一個特定項目,那么命名空間的下一部分就應(yīng)該是你的項目的名稱(例子中的“Accounting”)。接下來是細分你的項目(例子中的“Payroll”)。因此,你的特定項目的命名空間就應(yīng)該是:XYZCompany.Accounting.Payroll
然后,你可以在XYZCompany.Accounting.Payroll命名空間中為手頭更具體的任務(wù)來定制類。通過在更細的基礎(chǔ)上劃分商業(yè)邏輯命名空間,你就可以在VSS中將代碼分成更具體的項目單元(我在后面會更詳細地對此加以講述)。
ASP.NET Web項目和Web services項目是特定項目命名空間的特殊的例子。對于ASP.NET Web項目來說,一個很好的命名標(biāo)準(zhǔn)就是CompanyName.ProjectName.Website。同樣,Web services項目的一個很好的命名標(biāo)準(zhǔn)就是CompanyName.ProjectName.WebServices。
根據(jù)該語法,用于XYZCompany的帳目網(wǎng)站和Web services的命名空間就會是:XYZCompany.Accounting.Website
XYZCompany.Accounting.WebService
你運用的命名空間方案可以根據(jù)源代碼的目的范圍改變。如果你打算讓代碼跨企業(yè)共享,那么在命名空間中就不要放項目的名稱。我還建議你不要創(chuàng)建自己的命名標(biāo)準(zhǔn)。作為替代,你應(yīng)該遵循Microsoft已經(jīng)為.NET Framework建立的標(biāo)準(zhǔn)。例如,如果XYZCompany的開發(fā)人員要構(gòu)建一個企業(yè)類庫來將數(shù)據(jù)訪問封裝到SQL Server中,那么他們應(yīng)該用下面的命名空間:XYZCompany.Data.SqlClient
該命名空間模擬了.NET Framework中的System.Data.SqlClient命名空間結(jié)構(gòu)。同樣,如果XYZCompany的開發(fā)人員要構(gòu)建一個類庫來封裝他們自定義的事件日志(event logging),那么下面的命名空間就會很適合:XYZCompany.Diagnostics
在你的命名空間中創(chuàng)建唯一的類名總是很好的。通過這種方法,當(dāng)有必要讓你的代碼同時運用.NET Framework命名空間和特定企業(yè)的命名空間時,就不會出現(xiàn)類名沖突的現(xiàn)象。例如,你應(yīng)該將自定義的事件日志類命名為EventLogger或XYZEventLog,而不是EventLog。我更喜歡用前面提到的建議,因為在一個完全形式的(fully-qualified)類名中不只一次地列出公司名稱會很啰唆。
出于幾個原因,以這種格式構(gòu)建你的命名空間是很重要的。首先,通過建立一個公司名形式的根命名空間,我們在以后購買第三方產(chǎn)品時就避免了可能出現(xiàn)的命名空間沖突現(xiàn)象。第二,通過采用與.NET Framework一樣的命名空間結(jié)構(gòu),你就可以讓開發(fā)人員更容易地在企業(yè)底層架構(gòu)中找到為他們所需要的功能提供了支持的類。Microsoft的類編目系統(tǒng)可能并不完善,但是讓開發(fā)人員去學(xué)習(xí)另外一個特定于你的企業(yè)的編目系統(tǒng)并沒有意義。第三,通過為企業(yè)構(gòu)建命名空間層次,你就可以很容易地用一個文件生成工具(如NDoc)為整個類庫編譯一個單獨的MSDN形式的文件了。
構(gòu)建你的項目
在構(gòu)建好命名空間格式后,我們就可以考慮如何在VSS中構(gòu)建項目了。我建議在你的VSS樹狀目錄結(jié)構(gòu)的頂層中運用兩個項目節(jié)點:XYZ Enterprise .NET Class Library
XYZ Project .NET Class Library
這兩個項目節(jié)點可以讓你創(chuàng)建兩個單獨的文件(一個用于特定項目代碼,另一個用于企業(yè)代碼)。在每個頂層節(jié)點下,以公司名的形式創(chuàng)建一個項目節(jié)點(本例中的XYZCompany)。這就是你的根命名空間。至于VSS項目樹狀目錄結(jié)構(gòu)的其它部分,我們可以復(fù)制你已經(jīng)創(chuàng)建的命名空間結(jié)構(gòu),用文件夾來替代命名空間中的圓點(.),這同Java中各層次的類的顯示形式是類似的:在代碼中以圓點顯示、
在CLASSPATH系統(tǒng)環(huán)境變量中用文件夾顯示。記住,我們總是需要用完全形式的、完整的命名空間名稱來命名你的項目文件。
提到命名標(biāo)準(zhǔn),我建議你遵循Microsoft已經(jīng)建立的一些類名后綴。例如,屬性類都應(yīng)該是以單詞“Attribute”結(jié)尾的,異常類都應(yīng)該以“Exception”結(jié)尾。這就是說,你在決定為準(zhǔn)備構(gòu)建的類命名時,先要確定它屬于哪種類型的類,并查看.NET Framework類庫,看看是否已經(jīng)有命名標(biāo)準(zhǔn)了。如果有,就遵循該命名標(biāo)準(zhǔn)。
我所講述的命名空間結(jié)構(gòu)只是為了幫你組織企業(yè)的.NET源代碼。對于大多數(shù)公司來說,.NET還是項很新的技術(shù),所以現(xiàn)在運用一個組織好的編目系統(tǒng)正是時候。通過本文,我們就會意識到為你的命名空間建立一個標(biāo)準(zhǔn)的命名結(jié)構(gòu)的重要性。否則,你的.NET代碼就會是個混亂的、深層嵌套的ProgID代碼庫,你在運用它時,就會很費勁。
分享:談ASP.NET創(chuàng)建XML Web服務(wù)全接觸XML Web服務(wù)描述 XML Web服務(wù)基礎(chǔ)結(jié)構(gòu)創(chuàng)建在使用遵循一個公布的服務(wù)描述的基于XML的消息的通信的基礎(chǔ)上。服務(wù)描述是一個使用WSDL語言的XML語法編寫的XML文檔,定義了XML Web服務(wù)能理解的XML Web服務(wù)消息格式。服務(wù)描述起一個協(xié)定的作用,用來定義一個XML Web
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實例(可帶附件)
- js實現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進度條的實現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(連接字符串的配置及獲取)
- asp.net頁面?zhèn)髦禍y試實例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實現(xiàn)分頁示例代碼
- 相關(guān)鏈接:
- 教程說明:
.Net教程-怎樣使.NET命名空間符合標(biāo)準(zhǔn)
。