.net學習路線html
入門篇1. 學習面向對象(OOP)的編程思想程序員
許多高級語言都是面向對象的編程,.NET也不例外。若是您第一次接觸面向對象的編程,就必須理解類、對象、字段、屬性、方法和事件、封裝、繼承和多態性、重載、重寫等概念。須要說明的是,微軟的產品幫助文檔作得很是完善,並且查詢至關方便,入門者不得不看。安裝完Visual Studio.NET2003(或者Visual Studio.NET2002)後,在「程序」組裏有一個Visual Studio 組合幫助集合。初學者從幫助文檔就會得到許多知識。算法
2. 選擇一門語言,學習語法及相關基礎知識數據庫
選 擇語言的標準:根據你本身的需求和我的的技術背景。在.NET平臺下,C#、VB.NET都是調用Framework的類庫,效率基本同樣,C#的語法嚴謹,適合之前C++、VC的程序員。VB.NET不區分大小寫,寫法隨意一些.,自動縮進,適合之前VB的程序員,微軟也一再提倡用VB.NET進行快速開發。VC++.NET更接近底層,能夠用託管和非託管兩種方式進行編程。編程
選擇了須要使用的語言後,咱們須要瞭解語言的語法規則,包括語句、類型、表達式、運算符、函數等等,我建議一開始寫程序就要養成良好的編程風格,規範地進行變量的命名,在代碼中寫好註釋。這對之後的軟件開發生涯都是頗有意義的。設計模式
3. 理解.NET思想並熟悉框架類庫(Framework Class Library)瀏覽器
咱們借用一幅圖來講明一下公共語言運行庫(CLR)、框架類庫(FCL)與應用程序之間以及與整個系統之間的關係。安全
首 先,咱們要了解公共語言運行庫、程序集、通用類型系統的概念。在此基礎上,學習.NET框架類庫。.NET框架類庫是一個與公共語言運行庫緊密集成的可重用的類型集合。.NET 框架類庫封裝了大部分Win32 API,許多之前須要調用API才能實現的功能,在.NET下很是容易就實現,許多狀況下只須要一句話就足夠了。因此,咱們在程序設計的時候要儘可能避免調用 Win32API。學習.NET 框架類庫的捷徑:掌握經常使用的類庫,其它不經常使用的類庫只須要了解,用到的時候查閱便可。網絡
4. 利用Visual Studio.NET寫程序數據結構
在. NET平臺下寫程序咱們通常用微軟的開發工具Visual Studio.NET,由於一個好的IDE,能極大地提升開發效率。我建議初學者從WindowsForms或者是WebForm開始,等有必定的基礎以後,再轉向寫類庫或是控件、組件方面的東西。微軟的幫助文檔裏自帶許多示例,咱們能夠一邊看幫助,一邊進行演練。在學習其中的代碼的同時,必定要理解和思考。多寫代碼、從項目中鍛鍊是編程高手的成長之路。記住:必定要多看多寫源代碼;多上論壇(如CSDN和Dev-club)和微軟的新聞組討論技術問題。
咱們必定要用好 VisualStudio.NET這個集成開發環境,除了編寫代碼外,咱們還要了解.NET的部署原理,學習打包、部署及管理應用程序。多人開發的項目能夠考慮用 VisualSource Safe進行源代碼管理,這一系列開發工具的使用都要有大量的實踐。
推薦書籍:
《C#高級編程》(第二版)(清華大學出版社)
《Microsoft.NET程序設計技術內幕》(清華大學出版社)
《 Visual VB.NET技術內幕》 (清華大學出版社)
《 Visual C#.NET技術內幕》 (清華大學出版社)
.NET入門教程(包括Windows Form和Web Form):
http://chs.gotdotnet.com/quickstart
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,就到對軟件的成敗負責,你能夠根據現有資源決定開發中任務分配,合理用人,決定功能模塊是否值得開發,項目進度控制等許多問題。總之,帶領團隊的人必須有遠見卓識,採起正確方法引領團隊取得成功。
推薦書籍:
《人月神話》清華大學出版社
《人件》清華大學出版社
來源:http://jingyan.baidu.com/article/ff42efa96667b5c19e2202d3.html
第一步
掌握一門.NET面嚮對象語言,C#或VB.NET我強烈反對在沒系統學過一門面向對象(OO語言的前提下去學ASP.NET。ASP.NET是一個全面向對象的技術,
不懂OO,那絕對學不下去!第二步對.NET Framewo類庫有必定的瞭解能夠經過開發Windows Form應用程序來學習.NET Framework。
ASP.NET是建構在.NETFramework之上的技術,你對.NET Framework瞭解得越深,學習ASP.NET就越快。
舉個例子:
下面簡單列出幾個對掌握ASP.NET很是重要的概念:
對象的內存模型,委託,事件,多線程,程序集和應用程序域,安全模型.NET Framework固然還有許多其它的東西
,但不理解與把握清楚上述這些東西,是很難真正把握ASP.NET的。出於急迫的心情與現實的考慮,
很多人沒有紮實的面向對象基礎就想直接學習ASP.NET,其結果只能是欲速則不達。在具有了OO基礎以後,如下是具體的學習ASP.NET技術步驟。
第一步:學習HTML與CSS這並不須要去學一大堆的諸如Dreamweaver,Firework之類的各類網頁設計工具,關鍵是理解HTML網頁嵌套的block結構與CSS的box模型。
許多ASP.NET控件最後都必須轉化爲HTML。並且,div+CSS是當前主流的網頁佈局模型。學習這部分時,關鍵在於理解概念,而不須要將精力花在美化頁面的許多技巧上,
那是網站美工的工做,不是程序員的工做。
第二步:學習JavaScriptJavaScript不是Java,它主要運行於瀏覽器端。能夠完成許多工做,功能也很強大:好比它將客戶端網頁中的HTML元素當作一棵樹,
能夠編寫代碼訪問並修改樹節點,動態生成新的HTML代碼,從而達到動態修改網頁顯示特性的目的。JavaScript在目前的網站開發中用得不少,
很是重要。另外,它也是目前很是流行的AJAX技術的基礎。
第三步:學習計算機網絡原理找一本大學<計算機網絡>教材,重點看看它的有關互聯網的部分,瞭解一些域名解析和HTTP協議等知識。這是進行互聯網開發的理論基礎。
第四步:學習ASP.NET表示層技術,會設計Web頁面須要結合先前打好的面向對象技術的基礎,至少掌握如下內容:
(1)各類Web控件的使用方法,
(2)理解信息在網頁中的傳送方式,好比Cookie,ViewState,Session等的使用。
(3)ASP.NET應用程序與網頁的生命週期,以及相關對象(好比httpcontext,response,request)的用途。
(4)ASP.NET實現事件驅動的內幕
(5)自定義用戶控件再次強調一下,沒有OO基礎,很難掌握上述技術,就只能被這些東東牽着鼻子走了,會很被動。
第五步掌握數據庫技術具體地說,要學習如下內容:
(1)學會使用SQLServer 2005:不要求精通它的各類工具與管理配置技術,但至少知道如何鏈接,如何建表,如何建立存儲過程
(2)學習ADO.NET,掌握使用代碼人工訪問數據庫(別用VS2005的嚮導)的方法(3)學習數據綁定控件的使用
第六步理解多層架構這時,先前在OO學習階段涉及到的程序集與應用程序域等就派上用場了,如今,網站架構大多采用多層架構:
表示層、業務邏輯層、數據存取層以及數據庫自己。能夠先上網找一此多層架構的資料看,再找一個現成的比較複雜的開源ASP.NET項目分析一下其架構就差很少了。
基本上都是一個套路,處處應用。有的朋友問:學習架構是否是必須學習設計模式。個人見解是:沒必要!固然,你若是學習過設計模式,那固然更好。但在實際開發中,
若是隻想着機械地套用某種模式,反而起不到好的結果。個人觀點:在學習設計模式時要多思多悟,其思想就會漸漸地融入你的大腦,在真實的設計實踐中,
忘掉全部的寫在書上的模式,一切從實際出發,相信你的直覺,只要達到設計要求的方案就是可行的方案,事實上,你這樣作了以後,回過頭來再看,會發現你的設計每每暗合設計模式的理論。
第七步學習XML與Web Service先了解XML的基礎知識,找本講XML的書看一下就差很少了,
而後,再學習WebService。Web Service其實可類比爲遠程方法調用(以XML格式表達的調用信息)。學到了這裏,若是你還有興趣,不妨再去看看SOA
,不過SOA的資料都是理論與概念,看起來比較鬱悶,並且離實際開發可能比較遠。因此,這是可選項。第八步學習AJAX學習AJAX的主要目的是建立具備更豐富特性的Web表示層,
而通過前面七步的學習,到此再學習AJAX已水到渠成,全部的基礎都已具有,不會有太大的問題了。在基礎未具有的前提下直接學AJAX,就象「浮沙之上築高臺」,
因此,將AJAX的學習次序安排在這裏。
第九步學習RIA技術RIA:Rich internet application,可當作是將C/S與B/S優勢合二爲一的嘗試。就具體技術來講,主要指微軟的Silverlight(WPF_E),畢竟前頭一路行來都是微軟路線。
不過目前學習它主要是爲了技術儲備。估計此技術的普及須要2到3年的時間,由於預裝Vista的機器今年纔開始大賣。
用這個方向來指引本身所學的路。使本身在學習技術時不會感到迷茫,
在加油。