標籤:
ASP.net 學習路線(詳細)
- 瀏覽:5632
- |
- 更新:2013-12-13 16:33
- |
- 標籤: asp.net
百度經驗:jingyan.baidu.com
.net學習路線
入門篇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 組合語言產生可移植可執行檔 可攜式執行檔。反組譯工具(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. 帶領團隊進行軟體開發
一 個好的團隊,才能開發一個成功的產品。軟體開發主要由專案管理團隊、軟體Team Dev、軟體測試團隊組成。專案管理人員主要對項目進行控制,協調開發人員、測試人員的工作。開發人員的工作主要是負責軟體的實現。測試人員是軟體產品的品質保障。其它人員,如產品規劃方面、軟體支援人員和文檔、後勤都是不可缺少 的。
大型軟體是許多人集體智慧的結晶,要求 ProjectLeader有較強的管理能力和技術背景,以及良好的溝通能力。如果你作技術的時間很長,積累了豐富的經驗,做過項目組長等管理工作,通過不斷的學習和提升,極有可能成長為Project Leader。如果你已是ProjectLeader,就到對軟體的成敗負責,你可以根據現有資源決定開發中任務分配,合理用人,決定功能模組是否值得開發,項目進度控制等許多問題。總之,帶領團隊的人必須有遠見卓識,採取正確方法引領團隊取得成功。
推薦書籍:
《人月神話》清華大學出版社
《人件》清華大學出版社
========================================================
ASP.NET學習路線圖
如果你已經有較多的物件導向開發經驗,跳過以下這兩步:
第一步 掌握一門.NET物件導向語言,C#或VB.NET 我強烈反對在沒系統學過一門物件導向(OO)語言的前提下去學ASP.NET。 ASP.NET是一個全物件導向的技術,不懂OO,那絕對學不下去!
第二步 對.NET Framework類庫有一定的瞭解 可以通過開發Windows Form應用程式來學習NET Framework。ASP.NET是建構在.NET Framework之上的技術,你對.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是當前主流的網頁布局模型。 學習這部分時,關鍵在於理解概念,而不需要將精力花在美化頁面的許多技巧上,那是網站美工的工作,不是程式員的工作。
第二步:學習JavaScript.JavaScript不是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) 學會使用SQLServer2005:不要求精通它的各種工具與管理配置技術,但至少知道如何串連,如何建表,如何建立預存程序
(2) 學習ADO.NET,掌握使用代碼人工訪問資料庫(別用VS2005的嚮導)的方法
(3) 學習資料繫結控制項的使用
第六步 理解多層架構
這時,先前在OO學習階段涉及到的程式集與應用程式定義域等就派上用場了,現在,網站架構大多採用多層架構:展示層、商務邏輯層、資料存取層以及資料庫本身。可以先上網找一此多層架構的資料看,再找一個現成的比較複雜的開源ASP.NET項目分析一下其架構就差不多了。基本上都是一個套路,到處應用。有的朋友問:學習架構是不是必須學習設計模式。
我的看法是:不必!當然,你如果學習過設計模式,那當然更好。但在實際開發中,如果只想著機械地套用某種模式,反而起不到好的結果。我的觀點:在學習設計模式時要多思多悟,其思想就會漸漸地融入你的大腦,在真實的設計實踐中,忘掉所有的寫在書上的模式,一切從實際出發,相信你的直覺,只要達到設計要求的方案就是可行的方案,事實上,你這樣做了之後,回過頭來再看,會發現你的設計往往暗合設計模式的理論。
第七步 學習XML與Web
先瞭解XML的基礎知識,找本講XML的書看一下就差不多了,然後,再學習Web Service。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的機器去年才開始大賣。
=======================================================
新手如何學習編程? 2012-12-29 11:38:32
分類: Hadoop
新手如何學習編程?這個對於初入行的程式員來說比較困惑的問題就讓傳智播客老師來幫你解答吧。首先能不能學會,跟是不是電腦專業沒有太大的關係,只能說電腦專業的因為以前學過,上手快一點,所以最主要的還是你感不感興趣,或者說你急需要掌握一門技能來養活自己。 新手程式員在學習編程之前首先要考慮清楚你是否適合這個行業,是否喜歡編寫代碼,如果是肯定,那麼你就可以開始求學之路了。
一開始,先不要管演算法和資料結構。大多數簡單的程式不需要用到演算法和資料結構,所以當你真正需要時再去學習。編程一段時間以後,你就會知道在哪些地方用到他們。這時知道演算法的名字並瞭解它們的功能,然後找一些相關的論文去理解演算法並動手編程實踐。如果沒有現成的函數庫(其他程式員提供的可重用代碼),你用自己喜歡的程式設計語言來實現它。
1. 選擇一門好的程式設計語言,一門你喜歡的語言,不管是.net還是java。
選擇一種你覺得文法(文檔)讓你使用起來更舒服的編程。為此,你可能需要花費一些時間來在幾種不同的語言之間進行比較。這麼做目的不是為了讓你感覺更好或者讓編程更容易。而是讓你更快的入門,運用自己學習的知識實現一個效果,才是激勵你編程的源動力。
2. 如果你選擇了.net。
下面給大家展示一下國內最權威的.net訓練營學習路線圖:
課程深:因為微軟的高度封裝,開發人員不需要學太多即可在幾分鐘內通過拖控制項的方式開發出一個“某某管理系統”,因此社會上充斥著大量這種“只會拖控制項”的開發人員,他們不懂Http協議!不懂JavaScript!不懂ASP.Net工作原理!只會拖控制項!這種“不不不”開發人員能找到兩千多的工作就已經非常值得慶幸了。企業中最需要的是對“Http協議、Javascript、ASP.Net工作機制、.Net程式調優、反射、委託事件”等技術熟悉的人,而這樣的人是非常難招的。傳智播客課程有深度,比如講ASP.Net培訓課程的時候就按照“自己動手寫Web伺服器→Http協議→原生方式開發CRUD程式→ASP.Net工作原理→WebForm控制項一天通→基於JQuery的原生AJAX”這樣的思路進行講解,學生從根本上掌握了ASP.Net的精髓,非常受企業歡迎。
課程廣:招聘.Net軟體工程師的公司都要求掌握AJAX、大型互連網調優、SEO、JQuery、SQL進階技術,因此傳智播客在培訓課程中加入了這些內容,讓求職者在面試時就一拔頭籌,遙遙領先於其他競爭者。未來是移動手機開發的天下,目前市場上Windows Phone開發人員奇缺,應屆生的薪水都是5K以上,傳智播客率先推出了Windows Phone開發的課程,使用獨創的Windows Phone Simulator平台進行教學,讓學生不錯過移動手機開發的創富浪潮。
課程新:傳智播客與時俱進,將.Net 4.0、ASP.Net MVC、Linq、WCF等最新技術融入到課程中(不少企業中已經開始在職位要求中加入“掌握Linq優先考慮”、“掌握ASP.Net MVC、Silverlight優先考慮”等),保證我們的學員掌握的知識都是領先於他人的。和那些“連續N年課表不變”的培訓機構不一樣,傳智播客時刻緊跟最新的技術動向、研究就業市場目前的最新動向,對課程進行及時的調整,保證我們講授的內容永遠都是對學員來說最有用的,“講最有用的,不講已經淘汰的舊技術”,傳智播客最多六個月就對課程進行一次升級。
項目真:現在不少.Net培訓機構為了招生,都打上論壇系統、通訊錄系統、線上商城等項目,但很多都只是隨便開發出來的demo。那些所謂的“某某系統”離真實的項目還遠著呢。看他們的課程安排竟然在一周的時間內安排了“售票系統”、“教學管理系統”、“線上諮詢系統”等五六個所謂的項目,也就是一個項目一天就講完了,這樣的所謂的項目能有什麼含量呢?當今在到處都是大忽悠的環境下,傳智播客拒絕忽悠,傳智播客項目課程中講解的都是最核心的、最有代表性的項目,比如如鵬網項目中的全文檢索搜尋引擎、日誌、定時任務架構、UrlRewrite、頁面靜態化、分布式緩衝、三層架構、全站AJAX、第三方支付、大並發處理等技術是門戶網站中的核心技術。
ASP.net 學習路線(詳細)