西安通瀛的,NET實(shí)訓(xùn)(提高篇)
當(dāng)學(xué)員具備了一定.NET基礎(chǔ)后,就要開始以下的學(xué)習(xí):
一、 學(xué)習(xí).NET框架開發(fā)平臺底層原理和體系結(jié)構(gòu)
.NET框架的核心是公共語言運(yùn)行時(shí)(Common Language Runtime,CLR)。通常情況下,我們使用一種高級語言(如C#或者VB.NET)編寫程序,這些高級語言的編譯器產(chǎn)生的是一個(gè)托管模塊(即中間語言IL代碼)。托管模塊是一個(gè)需要CLR才能執(zhí)行的標(biāo)準(zhǔn)Windows PE文件。執(zhí)行中間語言代碼的時(shí)候,CLR中的即時(shí)編譯器(Just-in-time,簡稱JIT) 把其轉(zhuǎn)換成CPU指令。這中間有許多細(xì)節(jié),包括怎么初始化CLR,微軟組件運(yùn)行時(shí)執(zhí)行引擎MSCorEE.dll(Microsoft Component Object Runtime Execution Engine,在system32目錄下)怎么工作等等。如果你想精通.NET技術(shù),就必須對.NET框架原理、程序集、元數(shù)據(jù)、值類型/引用類型、類型設(shè)計(jì)、異常處理、自動(dòng)垃圾回收等核心技術(shù)有一個(gè)清楚的認(rèn)識。
二、 熟練運(yùn)行底層工具進(jìn)行調(diào)試和解決各種問題
了解.NET平臺的底層原理,我們需要學(xué)會(huì)一些工具和CLR 調(diào)試器 (DbgCLR.exe)的使用。C# 命令行編譯器(Csc.exe)和VB.NET編譯器(Vbc.exe)的重要性就不用再多說。
.NET 框架 SDK 提供的幾個(gè)比較重要的工具是:MSIL匯編程序(Ilasm.exe)、MSIL反匯編程序 (Ildasm.exe)、程序集鏈接器 (Al.exe)。強(qiáng)烈建議大家在開發(fā)中多使用MSIL 反匯編程序 (Ildasm.exe),以加強(qiáng)對CLR和底層的了解。MSIL 匯編程序(Ilasm.exe)從 MSIL 匯編語言生成可移植可執(zhí)行的 PE 文件。反匯編程序(Ildasm.exe) 可對任意 .NET 框架 .exe 或 .dll 程序集進(jìn)行分析,并以可讀的格式顯示信息。程序集鏈接器 (Al.exe) 從一個(gè)或多個(gè)文件生成一個(gè)帶有程序集清單的文件。.NET框架SDK還提供許多其它的工具,如:PEVerify 工具 (Peverify.exe)、強(qiáng)名稱工具 (Sn.exe)等,我們力求能用命令行的方式使用他們。
需要指出的是:Visual Studio.NET不是能完成所有命令行能做的工作,一些任務(wù)必須由命令行來完成。如:創(chuàng)建多文件程序集,必須求助于csc.exe的addmodule選項(xiàng)。只有在對.NET 框架有很深理解的基礎(chǔ)上,才會(huì)靈活運(yùn)用這些工具。
三、 進(jìn)行大型軟件系統(tǒng)架構(gòu)設(shè)計(jì)
進(jìn)行軟件系統(tǒng)的架構(gòu)設(shè)計(jì),需要積累相當(dāng)豐富的經(jīng)驗(yàn),要求我們從全局的概念上把握軟件的總體結(jié)構(gòu)。首先的一點(diǎn)是,我們必須參照軟件需求說明書。需求說明書是用戶和開發(fā)雙方對所開發(fā)軟件的功能、性能、用戶界面及運(yùn)行環(huán)境等做出詳細(xì)的說明,所以我們設(shè)計(jì)軟件必須以此為依據(jù)。接下來,我們要做軟件的總體設(shè)計(jì),即概要設(shè)計(jì)。一般需要根據(jù)軟件的業(yè)務(wù)需求和業(yè)務(wù)流程進(jìn)行模塊劃分,規(guī)劃程序的總體結(jié)構(gòu)、輸入輸出以及接口設(shè)計(jì)、運(yùn)行設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)和出錯(cuò)處理設(shè)計(jì)等,為詳細(xì)設(shè)計(jì)奠定基礎(chǔ)。在詳細(xì)設(shè)計(jì)中需要指出每一模塊是怎樣實(shí)現(xiàn)的,包括實(shí)現(xiàn)算法、邏輯流程、數(shù)據(jù)流程圖等。以后的工作,就是程序的實(shí)現(xiàn)。測試是和編碼同步進(jìn)行的,必須嚴(yán)格把好質(zhì)量關(guān)。
在用.NET開發(fā)大型系統(tǒng)的時(shí)候,一般都是做成三層(或是N層)結(jié)構(gòu)的形式。即將應(yīng)用程序邏輯地分為3個(gè)基本層:數(shù)據(jù)訪問和存儲(chǔ)、業(yè)務(wù)邏輯層、表示層。三層結(jié)構(gòu)的優(yōu)點(diǎn)主要是:可擴(kuò)展性、可伸縮性和靈活性。在做Web應(yīng)用的時(shí)候,可以考慮采用MVC(模型-視圖-控制器 Model-View-Controller)模式讓W(xué)eb應(yīng)用程序的用戶界面功能實(shí)現(xiàn)模塊化。
順便要說的是,大型軟件有時(shí)需要整合多種產(chǎn)品,來滿足企業(yè)級的應(yīng)用需求。微軟提供了許多Server產(chǎn)品,如SQL Server 、Exchange Server、Share Point Server、BizTalk Server等。記?。捍蠹乙欢ㄒ嗔私馕④浀漠a(chǎn)品線,微軟很多技術(shù)都是相符相承的,結(jié)合起來才能發(fā)揮作用!我們可以微軟的Server級產(chǎn)品的基礎(chǔ)上整合軟件系統(tǒng)、實(shí)現(xiàn)數(shù)據(jù)共享訪問、終端設(shè)備上的電子郵件、消息協(xié)作。總之,通過互聯(lián)網(wǎng),讓所有人一起協(xié)同工作,是未來軟件的發(fā)展趨勢。我們把握好這些方向,就等于駕馭未來。
四、 帶領(lǐng)團(tuán)隊(duì)進(jìn)行軟件開發(fā)
一個(gè)好的團(tuán)隊(duì),才能開發(fā)一個(gè)成功的產(chǎn)品。軟件開發(fā)主要由項(xiàng)目管理團(tuán)隊(duì)、軟件開發(fā)團(tuán)隊(duì)、軟件測試團(tuán)隊(duì)組成。項(xiàng)目管理人員主要對項(xiàng)目進(jìn)行控制,協(xié)調(diào)開發(fā)人員、測試人員的工作。開發(fā)人員的工作主要是負(fù)責(zé)軟件的實(shí)現(xiàn)。測試人員是軟件產(chǎn)品的質(zhì)量保障。其它人員,如產(chǎn)品規(guī)劃方面、軟件技術(shù)支持和文檔、后勤都是不可缺少的。
大型軟件是許多人集體智慧的結(jié)晶,要求Project Leader有較強(qiáng)的管理能力和技術(shù)背景,以及良好的溝通能力。如果你作技術(shù)的時(shí)間很長,積累了豐富的經(jīng)驗(yàn),做過項(xiàng)目組長等管理工作,通過不斷的學(xué)習(xí)和提升,極有可能成長為Project Leader。如果你已是Project Leader,就到對軟件的成敗負(fù)責(zé),你可以根據(jù)現(xiàn)有資源決定開發(fā)中任務(wù)分配,合理用人,決定功能模塊是否值得開發(fā),項(xiàng)目進(jìn)度控制等許多問題??傊?,帶領(lǐng)團(tuán)隊(duì)的人必須有遠(yuǎn)見卓識,采取正確方法引領(lǐng)團(tuán)隊(duì)取得成功。
總結(jié):
.NET是一個(gè)劃時(shí)代意義的概念,可以說未來十年內(nèi),會(huì)有更多的軟件開發(fā)商使用.NET。我們可以看到,現(xiàn)在的VS.NET功能已經(jīng)很強(qiáng)大了。而且微軟的開發(fā)工具會(huì)更加完善,每一個(gè)新版本的VS.NET都比上一版本有許多提升。以后將會(huì)有更多程序員步入.NET陣營,程序員的.NET時(shí)代,將會(huì)極大提高生產(chǎn)率。設(shè)想如果世界上的每一臺服務(wù)器都運(yùn)行一個(gè)Web Service,提供一個(gè) Web API,每個(gè)API都能完成一個(gè)強(qiáng)大的功能,這是一個(gè)多么強(qiáng)大的環(huán)境??!我們期待這所有的一切?,F(xiàn)在,我們要做的是:掌握好今天的.NET,迎接明天的輝煌!
2010/5/27
網(wǎng) 址:
郵 箱:
咨詢電話:029—88321303 029—88326002
QQ: 1106075375 448564593 965125202
聯(lián)系老師:雷老師 陳老師