.net學習路線(轉載)
入門篇
1.學習面向物件(OOP)的程式設計思想
許多高階語言都是面向物件的程式設計,.NET也不例外。如果您第一次接觸面向物件的程式設計,就必須理解類、物件、欄位、屬性、方法和事件、封裝、繼承和多型性、過載、重寫等概念。需要說明的是,微軟的產品幫助文件做得非常完善,而且查詢相當方便,入門者不得不看。安裝完Visual Studio2010後,在“開始選單->Microsoft Visual Studio 2010”組裡有一個Microsoft Visual Studio 2010 文件。
初學者從幫助文件就會獲得許多知識。
2.選擇一門語言,學習語法及相關基礎知識
選 擇語言的標準:根據你自己的需求和個人的技術背景。在.NET平臺下,C#、VB.NET都是呼叫Framework的類庫,效率基本一樣,C#的語法嚴謹,適合以前C++、VC的程式設計師。VB.NET不區分大小寫,寫法隨意一些.,自動縮排,適合以前VB的程式設計師,微軟也一再提倡用VB.NET進行快速開發。VC++.NET更接近底層,可以用託管和非託管兩種方式進行程式設計。
選擇了需要使用的語言後,我們需要了解語言的語法規則,包括語句、型別、表示式、運算子、函式等等,我建議一開始寫程式就要養成良好的程式設計風格,規範地進行變數的命名,在程式碼中寫好註釋。這對以後的軟體開發生涯都是很有意義的。
3.理解.NET思想並熟悉框架類庫(Framework Class Library)
首 先,我們要了解公共語言執行庫、程式集、通用型別系統的概念。在此基礎上,學習.NET框架類庫。.NET框架類庫是一個與公共語言執行庫緊密整合的可重用的型別集合。.NET 框架類庫封裝了大部分Win32 API,許多以前需要呼叫API才能實現的功能,在.NET下非常容易就實現,許多情況下只需要一句話就足夠了。所以,我們在程式設計的時候要儘量避免呼叫 Win32API。學習.NET 框架類庫的捷徑:掌握常用的類庫,其它不常用的類庫只需要瞭解,用到的時候查閱即可。
4.利用Visual Studio.NET寫程式
在. NET平臺下寫程式我們一般用微軟的開發工具Visual Studio2008或者Visual Studio2010,因為一個好的IDE,能極大地提高開發效率。我建議初學者從WindowsForms或者是WebForm開始,等有一定的基礎之後,再轉向寫類庫或是控制元件、元件方面的東西。微軟的幫助文件裡自帶許多示例,我們可以一邊看幫助,一邊進行演練。在學習其中的程式碼的同時,一定要理解和思考。多寫程式碼、從專案中鍛鍊是程式設計高手的成長之路。記住:一定要多看多寫原始碼;多上論壇(如CSDN和Dev-club)和微軟的新聞組討論技術問題。
我們一定要用好 Visual Studio這個整合開發環境,除了編寫程式碼外,我們還要了解.NET的部署原理,學習打包、部署及管理應用程式。多人開發的專案可以考慮用 VisualSource Safe進行原始碼管理,這一系列開發工具的使用都要有大量的實踐。
推薦書籍:
《C#高階程式設計》(第二版)(清華大學出版社)
《Microsoft.NET程式設計技術內幕》(清華大學出版社)
《 Visual VB.NET技術內幕》 (清華大學出版社)
《 Visual C#.NET技術內幕》 (清華大學出版社)
.NET入門教程(包括Windows Form和Web Form)
5.最好掌握大型資料庫程式設計
一 般來講,大多數軟體開發都涉及到資料庫。大部分軟體的後臺資料庫都使用如Access、SQLSERVER、Oracle等。ADO.NET提供了對關係資料、XML和應用程式資料的訪問。我們必須掌握Connection、Command、DataReader 和 DataAdapter物件的使用,正確運用DataSet資料集和DataView進行資料操作。當然,要有一定的資料庫基礎,包括表、檢視、儲存過程等的使用。必須把後臺資料庫和前臺的ADO.NET都掌握好,才能真正精通資料庫程式設計。
在 專案的開發中,建議使用資料訪問應用程式塊(Data Access ApplicationBlock)來簡化SQL查詢。微軟msdn網站有下載,我們可以利用SqlHelper類進行的資料訪問,使用起來非常簡單,很容易地構建我們的資料訪問層。
推薦書籍:
《ADO.NET技術內幕》(清華大學出版社)
《ADO.NET高階程式設計》(中國電力出版社)
《VB.NET和SQL Server 2000高階程式設計—建立高效資料層》(清華大學出版社)
6.學習XML WEB Service
XML Web services 正在開創一個分散式應用程式開發的新時代。XML Web Services 是把軟體當成服務的一種體現,通過使用 XML訊息處理啟用資料交換和應用程式邏輯遠端呼叫。XML使資料能夠通過防火牆,實現異類系統之間移動資料。雖然公共的WebServices還不是很普及,但是在一些企業中,已經涉及到了Web Services的開發。用Visual Studio.NET很容易建立Web服務,呼叫Web服務也相當簡單,只需要新增一個Web引用,然後呼叫即可。進行這方面的學習,需要了解Web 服務描述語言(WSDL)、SOAP協議等。
推薦書籍:
《構建XML WEB服務:基於Microsoft.NET平臺》(清華大學出版社)
《Building XML WEB Services for the Microsoft .NET Platform》(影印版)
.NET技術網上資源:
中國軟體網(中國最大的技術社群)
計算機世界開發者俱樂部
中國Dot Net俱樂部
微軟官方MSDN權威站點:
提升篇
1.學習.NET框架開發平臺底層原理和體系結構
.NET 框架的核心是公共語言執行時(Common LanguageRuntime,CLR)。通常情況下,我們使用一種高階語言(如C#或者VB.NET)編寫程式,這些高階語言的編譯器產生的是一個託管模組(即中間語言IL程式碼)。託管模組是一個需要CLR才能執行的標準WindowsPE檔案。執行中間語言程式碼的時候,CLR中的即時編譯器(Just-in-time,簡稱JIT)把其轉換成CPU指令。這中間有許多細節,包括怎麼初始化CLR,微軟元件執行時執行引擎MSCorEE.dll(Microsoft Component ObjectRuntime ExecutionEngine,在system32目錄下)怎麼工作等等。如果你想精通.NET技術,就必須對.NET框架原理、程式集、元資料、值型別/引用型別、型別設計、異常處理、自動垃圾回收等核心技術有一個清楚的認識。
推薦書籍:
《.NET框架程式設計》(修訂版) (清華大學出版社)
《Applied .NET Framework Programming》(影印版)Jeffrey Richter著
《.Microsoft .NET IL組合語言程式設計》
《.NET 本質論》(中國電力出版社)
2.熟練執行底層工具進行除錯和解決各種問題
瞭解.NET平臺的底層原理,我們需要學會一些工具和CLR 偵錯程式 (DbgCLR.exe)的使用。C#命令列編譯器(Csc.exe)和VB.NET編譯器(Vbc.exe)的重要性就不用再多說。
.NET 框架 SDK 提供的幾個比較重要的工具是:MSIL彙編程式(Ilasm.exe)、MSIL反彙編程式 (Ildasm.exe)、程式集連結器(Al.exe)。強烈建議大家在開發中多使用MSIL 反彙編程式 (Ildasm.exe),以加強對CLR和底層的瞭解。MSIL彙編程式(Ilasm.exe)從 MSIL 組合語言生成可移植可執行的 PE 檔案。反彙編程式(Ildasm.exe) 可對任意 .NET 框架 .exe 或.dll 程式集進行分析,並以可讀的格式顯示資訊。程式集連結器 (Al.exe)從一個或多個檔案生成一個帶有程式集清單的檔案。.NET框架SDK還提供許多其它的工具,如:PEVerify 工具 (Peverify.exe)、強名稱工具(Sn.exe)等,我們力求能用命令列的方式使用他們。
需要指出的是:VisualStudio.NET不是能完成所有命令列能做的工作,一些任務必須由命令列來完成。如:建立多檔案程式集,必須求助於csc.exe的addmodule選項。只有在對.NET框架有很深理解的基礎上,才會靈活運用這些工具。
3.進行大型軟體系統架構設計
進 行軟體系統的架構設計,需要積累相當豐富的經驗,要求我們從全域性的概念上把握軟體的總體結構。首先的一點是,我們必須參照軟體需求說明書。需求說明書是使用者和開發雙方對所開發軟體的功能、效能、使用者介面及執行環境等做出詳細的說明,所以我們設計軟體必須以此為依據。接下來,我們要做軟體的總體設計,即概要設計。一般需要根據軟體的業務需求和業務流程進行模組劃分,規劃程式的總體結構、輸入輸出以及介面設計、執行設計、資料結構設計和出錯處理設計等,為詳細設計奠定基礎。在詳細設計中需要指出每一模組是怎樣實現的,包括實現演算法、邏輯流程、資料流程圖等。以後的工作,就是程式的實現。測試是和編碼同步進行的,必須嚴格把好質量關。
在用.NET開發大型系統的時候,一般都是做成三層(或是N層)結構的形式。即將應用程式邏輯地分為3個基本層:資料訪問和儲存、業務邏輯層、表示層。三層結構的優點主要是:可擴充套件性、可伸縮性和靈活性。在做Web應用的時候,可以考慮採用MVC(模型-檢視-控制器Model-View-Controller)模式讓Web應用程式的使用者介面功能實現模組化。
順 便要說的是,大型軟體有時需要整合多種產品,來滿足企業級的應用需求。微軟提供了許多Server產品,如SQL Server 、ExchangeServer、Share Point Server、BizTalkServer等。記住:大家一定要多瞭解微軟的產品線,微軟很多技術都是相符相承的,結合起來才能發揮作用!我們可以微軟的Server級產品的基礎上整合軟體系統、實現資料共享訪問、終端裝置上的電子郵件、訊息協作。總之,通過網際網路,讓所有人一起協同工作,是未來軟體的發展趨勢。我們把握好這些方向,就等於駕馭未來。
推薦書籍:
《使用 Microsoft .NET 的企業解決方案模式》微軟出版社
《Enterprise Solution Patterns Using Microsoft .NET》 MS divss
4.帶領團隊進行軟體開發
一 個好的團隊,才能開發一個成功的產品。軟體開發主要由專案管理團隊、軟體開發團隊、軟體測試團隊組成。專案管理人員主要對專案進行控制,協調開發人員、測試人員的工作。開發人員的工作主要是負責軟體的實現。測試人員是軟體產品的質量保障。其它人員,如產品規劃方面、軟體技術支援和文件、後勤都是不可缺少 的。
大型軟體是許多人集體智慧的結晶,要求 ProjectLeader有較強的管理能力和技術背景,以及良好的溝通能力。如果你作技術的時間很長,積累了豐富的經驗,做過專案組長等管理工作,通過不斷的學習和提升,極有可能成長為Project Leader。如果你已是ProjectLeader,就到對軟體的成敗負責,你可以根據現有資源決定開發中任務分配,合理用人,決定功能模組是否值得開發,專案進度控制等許多問題。總之,帶領團隊的人必須有遠見卓識,採取正確方法引領團隊取得成功。
推薦書籍:
《人月神話》清華大學出版社
《人件》清華大學出版社