1. 程式人生 > >.net應該學什麼怎麼學---初學者必看

.net應該學什麼怎麼學---初學者必看

上篇《學了.Net做什麼開發》中我講到了目前.Net開發主要方向是Web開發,因此在本篇中我將主要講解做Web開發要學哪些東西,怎麼學,由於內容比較多,我將分幾次發。下圖是我推薦的學習內容和學習順序(除了這裡列出的內容,要走向高手之路肯定還有更多技術需要學習,我這裡只是對於初學者列出的主幹學習內容,並不是全部): 開發者口中的.Net全稱是.Net Framework,在中國大陸,一般將.Net讀作“道特耐特”(中文音標比英文音標更好讀,呵呵)或者“點耐特”。.Net是微軟推出的一門技術,它是一個技術平臺,基於這個平臺進行開發可以簡化很多工作。關於到底什麼是.Net,不是一兩句話能說清楚的,而且也沒辦法讓初學者理解到底什麼是.Net,因此你只要記住.Net這個詞,隨著我們越學越深入,你就會理解.Net到底是什麼東西了。 基於.Net平臺上有很多語言,比如C#、VB.Net、IronPython、F#、Powershell等,F#、Powershell是滿足特定用途的語言,IronPython、IronRuby等並沒有廣泛應用,VB.Net是僅次於C#的第二大基於.Net的語言,不過按照微軟的戰略是把主要精力放到C#上,VB.Net只是微軟為了將VB開發人員平滑的轉移到.Net平臺下的語言。因此對於語言來說大家學習C#即可。C#在中國大陸的叫法一般是“C sharp(C煞普)”,也有少數人讀成“C井”,我不推薦這種叫法。 初學者可能會弄不清C#和.Net的關係,.Net是一個技術平臺,而C#是這個技術平臺上的一門語言,就像Windows是一個作業系統,而Word、QQ、FireFox則是在Windows上執行的一個程式。初學者不必糾結於這個概念,不是很明白也沒關係。 .Net的開發工具是VisualStudio,VisualStudio現在有VisualStudio2005、VisualStudio2008、VisualStudio2010等版本,注意不要糾結於“到底裝VisualStudio2005還是VisualStudio2008,聽說有的公司還在用VisualStudio2005”、“到底是用新版本的VisualStudio2010還是用VisualStudio2008”這樣的問題,因為這些版本並沒有本質的不同,使用方法都類似,就像你會用WindowsXP,換了Windows7以後經過短暫的熟練會用Windows7了一樣。因為VisualStudio2010比較消耗資源,如果你的計算機配置較好可以安裝VisualStudio2010,如果配置較差則推薦安裝VisualStudio2008。 要學習Web開發一定要按照正確的順序進行學習,很多人被一些《21天精通***》這樣的垃圾書的影響,不學C#、不學.Net Framework、不學Dom,直接上來就學ASP.Net,拖兩個控制元件、配兩個屬性、雙擊控制元件寫一個事件響應方法,就開始自詡“精通ASP.Net”了,照著書控制元件拖來拖去,可是連C#、.Net、ASP.Net、HTML、JavaScript之前的關係是什麼都不清楚,鬧出了很多笑話。欲速則不達,速成的結果就是以後浪費更多的時間,回想這麼多年你走過的路,有多少次為了走快點就跳著走,最後又浪費時間返工的事情,按照正確的順序才能更快、更好的掌握.Net。 有的人可能認為“我不想成為高手,有一口飯吃就行了,會拖控制元件就行了唄”,千萬不要以為會“不拖控制元件的開發”就是高手了,高手沒有那麼好當的。我沒有奢求學程式設計的人個個都是以“成為世界頂尖級程式設計師”、“國內.Net開發者中的知名開發者”為目標,這個也不現實,大部分人學程式設計只是看做軟體開發工資不低,想賺幾年錢娶媳婦生娃,這種想法並不是多沒出息的想法,畢竟“老婆孩子熱炕頭”是最樸實的幸福,你不需要揹負“振興中國軟體產業”這種的重任,但是最起碼應該找到一份不錯的工作,工作幾年以後能有錢交得起房子首付(對於大部分人來講,能夠交得起首付成為房奴都是很奢侈的事情)、每月供月供吧,如果只會拖控制元件的話就不是能不能成為高手的問題,而是能不能養家餬口的問題了。 下面來詳細講解學習的各個步驟: 一、C#面向過程程式設計。 學習C#語言分為C#面向過程程式設計和C#面向物件基礎兩部分。聽到“C#面向過程程式設計”有人會問了“C#不是一門面向物件的語言嗎,哪兒來的面向過程程式設計?”,其實面向物件不是代替面向過程的,面向物件是面向過程的一個補充和發展,面向過程就是程式碼逐行執行,面向過程就是if/else,面向過程就是for迴圈,面向過程就是變數、函式,C#中最基礎的也是if、for、變數、函式等這些東西,這些東西就是C#的面向過程部分。對於程式設計的初學者來說,最難的不是類、繼承、控制元件、ASP.Net、AJAX之類神乎其神的東西,而是“程式化的思維方式”,也就是怎麼把一個問題的解決方式用計算機的思維方式進行描述。 我接到過很多想深入學習.Net學生的諮詢,當我問到“你的.Net基礎怎麼樣”的時候,很多人都回答“學過C#、.Net、ASP.Net,感覺基礎還行”,但是我給了他一個很簡單的題,比如“用for迴圈累加的方式計算1到100之間整數的和”、“提示使用者輸入兩個數字,然後程式列印兩個數字的和”,很多人都做不出來。 對於初學者來說先不用管面向物件、ASP.Net之類的東西迷惑,先學習用最樸實的for、if來編寫程式,通過親手編寫練習題程式碼來逐漸形成程式化的思維方式,這個階段也不要使用“看起來很酷”的WinForm或者ASP.Net頁面來做,因為那樣就會涉及到這個階段不需要去了解的問題,先編寫最簡單的控制檯程式就可以。推薦大家看我錄製的視訊教程《【傳智播客.Net視訊】第1季C#程式設計基礎》,這個教程針對C#零基礎的同學進行講解,並且在課程中給出了非常多的練習,一定要自己親手把程式碼熟練的寫出來,記住是親手寫出來,而不是照著我的程式碼抄,更不能是看懂了我的程式碼就以為自己掌握了,要知道“看懂了”和“會寫了”之間差著十萬八千里呢。對於初學者來說一開始寫那些練習可能有點困難,先理解我寫的程式碼,然後自己總結成“先***後***,再***,如果***則***”這樣的用語言描述的演算法,然後照著演算法描述自己寫程式碼,發現有地方寫起來遇到問題的話再參考我的程式碼,最後做到不用看我的程式碼、不用看演算法描述也能把程式碼寫出來,這樣第一階段的任務就完成了。下面列出我視訊教程中的一些練習題,大家可以自測看這個階段自己是否合格: 練習1:提示使用者輸入使用者名稱,然後再提示輸入密碼,如果使用者名稱是“admin”並且密碼是“888888”,則提示正確,否則提示錯誤,如果使用者名稱不是admin還提示使用者使用者名稱不存在。 練習2:提示使用者輸入年齡,如果大於等於18,則告知使用者可以檢視,如果小於10歲,則告知不允許檢視,如果大於等於10歲,則提示使用者是否繼續檢視(yes、no),如果輸入的是yes則提示使用者可以檢視,否則提示不可以檢視。(給出測試用例。) 練習3:從一個整數陣列中取出最大的整數 練習4:計算一個整數陣列的所有元素的和。 練習5:將一個字串陣列輸出為|分割的形式,比如{“浮雲”,”神馬”,”穿梭”}陣列輸出為“浮雲|神馬|穿梭”。不要使用String.Join等.Net內建方法。 練習6:有一個整數陣列,請宣告一個字串陣列,將整數陣列中的每一個元素的值轉換為字串儲存到字串陣列中。 練習7:將一個字串陣列的元素的順序進行反轉。{"3","a","8","haha"} 轉換為{"haha","8","a","3"}。提示:第i個和第length-i-1個進行交換。 學C#基礎的時候的參考書推薦如下兩本: (1)《C#圖解教程》,這本書講的清晰易懂,不過部分內容安排順序不合理,大家按照我視訊中的順序進行學習就可以。  

(2)《C#入門經典》適合零基礎的大部頭,不過非常厚,採用的是老外的描述方式,中國人讀起來有點彆扭,而且中文版翻譯的不是太好。

二、C#面向物件基礎 初學者學面向物件的時候沒必要(也做不到)把面向物件學的非常透、非常深,因為如果想深刻的理解面向物件,必須要有大量的程式設計經驗才能真正體會面向物件到底是怎麼回事、有什麼好處。以前聽到過有人建議初學者學習設計模式,我認為純屬誤人子弟,對於初學者來說沒有大量的程式設計經驗,根本看不懂設計模式在說什麼。這個階段只要弄明白怎麼宣告類、什麼是訪問級別(主要是public、private)、什麼是屬性、欄位、方法、什麼是繼承、什麼是override就可以。面向物件有三個特性:封裝、繼承、多型。對於初學者來說理解多型是非常困難的也是沒太大必要的,這個階段只要能掌握封裝和繼承就可以。 三、簡單的WinForm程式設計 WinForm是.Net中用來構建Windows窗體應用程式的技術,對於目前國內市場來講一般也就是用來桌面版管理系統等的技術。有人會問“我們不是學B/S的ASP.Net開發嗎?為什麼還要學C/S的WinForm?”,一定要注意我在這段的標題寫的是“簡單的”WinForm。和ASP.Net比較起來,學WinForm需要學習的前置知識非常少,可以非常快的入手開發,而學習ASP.Net則需要先學習HTML、JavaScript、Dom等知識。這個階段的學習重點不是WinForm本身,而是通過WinForm在案例中理解類、物件、屬性、方法、事件、索引器等概念,我們是“借殼學習”,因此不用對WinForm的深入技術(比如控制元件美化、佈局、PInvoke、托盤程式設計、高階控制元件、ActiveX等)浪費時間去研究。初學者很難把握WinForm學習的度,還是推薦大家參考看我錄製的視訊教程《【傳智播客.Net視訊】第3季WinForm基礎》。 四、常用.Net Framework類 .Net Framework中的類是.Net中最豐富、最有價值的內容,.Net Framework中的類是和表現層無關的,也就是無論是在控制檯中、WinForm中還是ASP.Net中都可以呼叫這些類,比如把一個字串轉換為整數都是使用Convert.ToInt32()這個方法,因此千萬不能因為你是在控制檯程式中寫這些類就認為自己在“編寫DOS程式”。 .Net Framework是非常龐大的,擁有上萬個類,沒必要把這幾萬個類掌握,在這個階段把常用的.Net Framework類掌握了,會對後續階段的學習非常有幫助。這些類包括:String類常用方法、StringBuilder類、IO類(FileStream、File、Path)、XML操作類、集合類(ArrayList、List<T>、Dictionary<K,V>)等。 五、SQL語句 這個階段主要學習SQL語法,能夠掌握常見的SQL語法。資料庫管理系統有MSSQLServer、Oracle、MySQL、DB2、Access等,這些不同的系統對於資料庫管理員來說使用方法各異,但是對於開發人員來說差不多,因為都是用的統一的操作語言“SQL”,通過SQL這門通用的語言,你可以和不同的資料庫進行溝通,所以只要掌握了.Net開發最常用的MSSQLServer,以後根據工作的需要使用其他的資料庫管理系統會非常簡單。 現在企業招聘.Net開發人員的時候對於資料庫考查非常多,甚至很多公司的筆試題中有1/3都是關於SQL語句、儲存過程的,因此對於準備學習後找工作的同學來說必須把這部分內容學好。 這部分內容主要學習:MSSQLServer的簡單管理,Select、Insert、Update、Delete語句,學完了這些內容就可以繼續學習後續的ADO.Net了。學有餘力的同學可以學習Join、Union、子查詢、儲存過程等高階的內容。 這部分內容學習時大家可以參考我的《程式設計師的SQL金典》這本書(我將近期釋出這本書的全部免費電子版)和《 【傳智播客.Net視訊】第4季SQL從入門到提高》。這套視訊教程。 六、ADO.Net ADO.Net是.Net中用來訪問資料庫的技術,通過ADO.Net我們就能通過程式告訴資料庫“請把年齡大於20歲的人員返回給我”。在學習ADO.Net之前一定要把常用的SQL語句掌握了,千萬不能學了一句Select * from Persons就來學ADO.Net,否則可能會出現下面這個真實的故事中的笑話了: 我以前碰到過一個人寫一個“查詢學號為S001的學生的姓名”的功能,他這麼寫程式(示例性程式碼,不嚴謹): SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = “Select * from Persons”; SqlDataReader reader = cmd.ExecuteReader(); while(reader.Read()) { String no = (string)reader[ “No”]; if(no==” S001”) { string name = (string)reader[ “Name”]; MessageBox.Show(name); } } 看到這種寫法相信所有人都要崩潰了,因為好像從來沒學過where語句一樣。因此必須在把常用的SQL語句掌握以後再來學ADO.Net。 這階段的學習主要學習使用SqlConnection、SqlCommand(ExecuteNonQuery、ExecuteReader、ExecuteScalar)等類的使用、引數化查詢等,掌握DataSet方式使用離線資料集,能夠自己從頭寫一個SqlHelper類出來即可。 (注:這段我描述的是ADO.Net基於介面的程式設計,屬於深入一點的知識,對於初學者來說如果看不懂也沒關係,不用糾結於此)SqlConnection、SqlCommand等類是ADO.Net中用來連線MSSQLServer的類,連線Oracle等資料庫則使用OracleConnection、OracleCommand等類,雖然看似不同的類,但是由於ADO.Net通過IDbConnection、IDbCommand等介面統一了類的方法,所以OracleConnection、OracleCommand等類的用法和SqlConnection、SqlCommand基本一樣,而且如果通過DbProviderFactories進行基於介面的ADO.Net程式設計,那麼程式設計的時候就是使用IDbConnection、IDbCommand介面,完全不用管SqlConnection、OracleConnection等這些不同的類。學有餘力的同學可以深入研究一下ADO.Net的介面程式設計,會對你理解設計模式有很大的幫助。 七、HTML、JavaScript、Dom HTML是對網頁長什麼樣子的一個描述,也就是“這裡顯示一個超連結、那裡顯示一個按鈕”都是通過HTML來進行描述的。HTML做出來的頁面是靜態、不變化,如果要實現“點選【計算】按鈕的時候讓表格放大顯示”這樣的動態效果,則要通過程式操作Dom,一般使用JavaScript這種指令碼語言來操作Dom。 如果不想成為只會拖控制元件的開發人員的話,需要在學習ASP.Net之前把HTML、JavaScript、Dom這些好好學習。提到這一點有同學可能會提出異議“不是這樣的呀,ASP.Net已經封裝的很好了,拖幾個控制元件上來就可以了,ASP.Net都幫我們生成HTML了,也不用學JavaScript,動態效果寫C#程式碼就可以了”。 ASP.Net中這種拖ASP.Net控制元件的開發技術就叫做WebForm,微軟的WebForm封裝是非常偉大的技術,能夠將複雜的Web開發簡化到可以像開發WinForm程式一樣點選,不得不佩服微軟技術的強悍。使用WebForm我們就可以進行傻瓜化的開發,要是每天的工作、做每個專案的時候都能一直這樣“傻瓜”下去也是很美好的,但是很不幸有一些場合中是不能使用這種傻瓜化的開發方式的,舉幾個例子: 例子1:在網站的註冊頁面中讓使用者所在的省、市,提供兩個下拉列表框(DropDownList),一個為省的列表框,一個為市的列表框,當用戶選擇不同的省的時候,市列表框中就列出這個省下的所有市供使用者選擇。 對於這樣一個功能點,如果只會拖控制元件的人很可能會這麼寫(假設省列表框id為ddlProvince,市列表框id為ddlCity),在Page_Load中載入省列表到ddlProvince,然後在ddlProvince的SelectedIndexChanged事件中響應ddlProvince的選擇變化,當ddlProvince選擇變化後根據選中項來填充ddlCity。用這種方法實現最大的缺點就是頁面會頻繁的重新整理,每次選擇省以後頁面都會唰一下的重新整理一次,這在網速比較慢或者伺服器壓力比較大的時候是很慢的,而且使用者體驗很差。這種情況用JavaScript操作Dom的方法來操作才會比較好。 例子2:ASP.Net WebForm中可以使用UpdatePanel控制元件很輕鬆的實現AJAX效果,不用懂JavaScript、Dom、Json,把控制元件用UpdatePanel包裹起來AJAX效果就出來了。但是用UpdatePanel實現AJAX只能在對效能要求不高的場合使用,如果要開發網際網路應用等對效能要求非常高的場合,UpdatePanel控制元件是沒法使用的。這時候就需要手寫實現AJAX,而手寫AJAX則需要對JavaScript、Dom非常熟悉。 即使全部使用ASP.Net WebForm控制元件實現,也是需要對HTML熟悉才可以的,比如不可能專案中使用ListView控制元件預設生成的程式碼,都需要手動調整ListView的模板,而調整模板就需要手寫HTML,不是什麼都“拖一拖”就行的。微軟現在還推出了一個WebForm的兄弟產品:ASP.Net MVC,ASP.Net MVC並不是替代WebForm的,各有所長,但是因為ASP.Net MVC的優點,以後肯定會有越來越多的專案使用ASP.Net MVC。在ASP.Net MVC中就沒有WebForm中這麼傻瓜化了,很多地方需要手寫HTML程式碼,這就對HTML等要求更高。 上面講了HTML、JavaScript、Dom的重要性,下面來講一下具體要學哪些東西、怎麼學。需要提前說明:Web開發中一個非常麻煩的一點就是HTML、Dom在不同瀏覽器有少量的差異性,也就是一段程式碼可能在IE中和FireFox中的效果不一樣,對於初學者來說暫時不需要管那些差異性,降低學習中不必要的難度,學習的時候以一個瀏覽器為主就可以了。 剛接觸HTML的人可能感覺比較難,但是一旦熟悉了這種標籤式的用法,HTML就變得非常簡單了,HTML中標籤比較多,標籤的可用屬性更多,做為一個初學者沒必要把所有標籤、屬性都學習了,而且也不可能都掌握,把最常用的標籤以及它們的常用屬性掌握了即可,主要的標籤有:p、br、div、font、a、input、img、li、table、select、textarea、span。學習HTML的時候一定要堅持手寫HTML,千萬不要用VisualStudio、Dreamweaver等中的視覺化的拖放方式來編寫HTML頁面,如果只會在設計器視覺化拖出HTML頁面的話,後面的學習會困難重重。HTML學習的一個目標就是能夠完全手寫一個很多網站都有的那種靜態註冊頁面出來。 HTML中還有一個知識點:CSS,CSS是用來對頁面進行美化的描述語言,通過CSS我們能夠將按鈕設定為紅色或者給一個圖片加上金色邊框。CSS中有非常多的樣式名,不需要掌握這麼多樣式名,學習的時候只要過一遍,大概知道每個樣式名是做什麼的就可以;也不需要學習怎麼將頁面做的看好,不需要研究那些好看的CSS效果到底是什麼做出來的,因為那些工作是美工做的事情,即使是沒有美工的小公司開發人員只要學會怎麼“偷”別的網站做好的特效就可以了。初學者只要掌握幾種CSS選擇器和Div+CSS佈局就可以。 和ASP.Net後臺用C#寫程式碼不一樣,對於Web前臺頁面的動態效果一般使用JavaScript(不用學已經在Web前端中被淘汰的VBScript)來編寫,因此需要首先掌握JavaScript語言,JavaScript和C#的語法一樣都是C語言發展過來,很多語法都和C#差不多,因此不用再從頭學JavaScript語法,只要學習JavaScript和C#相位元有的語法就可以。JavaScript語言也有很多可以很深入研究的東西,比如閉包、面向物件的實現等,但是除非做Web遊戲開發、開發JavaScript庫等對JavaScript要求非常高的領域,如果是開發網際網路站、業務系統等(這佔到公司專案中的大部分)對JavaScript並沒有太高的要求,只要熟悉一下JavaScript的語法就可以,然後在後面的Dom中通過練習逐步熟悉JavaScript。對於初學者來說JavaScript到底學到什麼程度是夠用了是很難界定了,大家可以參考《【傳智播客.Net視訊】第7季JavaScript》這套視訊教程,然後學Dom的時候參考《【傳智播客.Net視訊】第8季Dom》進一步練習就可以。 很多初學者剛接觸Dom的時候總是想弄明白“到底什麼是Dom”,勸大家沒必要糾結於這些概念,只要知道它是幹什麼的就可以,“通過JavaScript呼叫Dom中的屬性、方法就可以動態的操作HTML頁面”、“getElementById就是Dom、btn1.value=’abc’就是dom、btn1.onclick=myclick就是dom”,通過練習你就會明白這一點就可以了,咱們不是編教科書的,不用搞那些無聊的概念定義。 Dom的東西非常多,還是那個原則,不用什麼都記住,主要掌握下面幾點:事件、動態設定事件、setInterval定時器、event物件、getElementById、動態建立Dom元素(createElement、innerHTML、innerText)。掌握這些東西還是要通過大量的練習來掌握的,只要能把第8季Dom這套視訊中的練習熟練寫出來這幾個階段的目標就達到了。 JQuery目前是最火的一個JavaScript的庫,千萬不要以為是一個新的語言,聽到過很多“Jquery是JavaScript的終結者,Jquery取代了JavaScript”的說法,殊不知,Jquery只是個JavaScript的一個封裝庫,儘快Jquery語法看起來非常奇怪,但是Jquery確實是完全符合JavaScript語法的一個封裝庫。Jquery只是對Dom操作的一個封裝,學之前需要Dom基礎,否則學起來會很暈。我不建議初學者學完了Dom以後立即學Jquery,還是用Dom多寫一些程式以後再來學Jquery才會掌握的又牢靠又快速,我講課的時候就在講完了Dom以後隔了8天的.Net高階技術才講Jquery也是基於這個考慮。參考書可以看《鋒利的JQuery》。 八、ASP.Net ASP.Net是.Net中用來開發動態Web應用程式的技術,ASP.Net主要分ASP.Net WebForm(以後簡稱WebForm)和ASP.Net MVC兩種技術,大部分人說ASP.Net都是指的ASP.Net WebForm,而ASP.Net MVC則是微軟最近推出的一門技術,前面已經提到過了ASP.Net MVC並不是用來代替ASP.Net WebForm的,因此不要認為“ASP.Net MVC淘汰了WebForm,學WebForm過時了”,對於初學者來說還是先學習WebForm,等WebForm掌握的比較好以後根據自己的情況學習ASP.Net MVC,現在很多公司招聘的時候都提出了“掌握ASP.Net MVC優先考慮”。下面我們還是主要來談WebForm的學習。 很多人被那些“短平快”ASP.Net的書誤導了,開始學習就從Button控制元件、TextBox控制元件、Repeater控制元件、GridView控制元件開始學習,為龐大的ASP.Net體系所折服,看著千八百頁的書感嘆“暈呢,這麼多控制元件、什麼多方法、這麼多屬性哪輩子學完呀”。當然也有人會拖幾個控制元件以後就自詡“精通ASP.Net”,“拖控制元件、設屬性、寫事件”靠此三招走天下,但是一旦遇到稍微複雜一點問題就懵了。 WebForm是微軟的一個偉大的創造,能夠將複雜的Web開發進行了遮蔽,能夠讓我們進行傻瓜化的開發,但是微軟再怎麼封裝也不可能讓我們一直“快樂的傻下去”,不瞭解Http、不瞭解“請求—處理—響應”的模型、不瞭解ASP.Net的內部原理,那麼遇到一些稍微複雜一點的問題的話就會感覺很茫然。一旦瞭解了Http、 ASP.Net的原理以後再去學ASP.Net你就能知道那些控制元件到底幫我們做了什麼,這樣就可以輕鬆的掌握那些控制元件,不是成為控制元件的奴隸,而是成為控制元件的主人,讓控制元件為我們所用。正是基於這樣的原則,我在傳智播客.net班講ASP.Net基礎的時候,我沒有立即講解那些控制元件怎麼用,而是使用了4天的時間來講Http協議、Web開發基本原則、“請求—處理—響應”模型、基於HttpHandler開發Web應用、ViewState原理、IsPostBack原理、XSS漏洞等基礎的東西,前4天的內容是難度非常高的東西,一旦把這4天的內容掌握了,後面用幾天時間學員們就能掌握ASP.Net的基礎的東西,而且掌握的非常深入、牢固,如果對這個感興趣可以參考我的《【傳智播客.Net視訊】ASP.Net》上中下三季內容。 特別是以後會在ASP.Net開發中佔有一席之地的ASP.Net MVC更是摒棄了ASP.Net WebForm中複雜的事件驅動、屬性等非Web本源的東西,ASP.Net MVC迴歸了Web開發的本質,把Web開發重新用“請求→處理→響應”這樣一個最簡單的模型進行描述,其實是比ASP.Net WebForm更簡單,但是如果只會用ASP.net WebForm進行拖控制元件開發,那麼如果需要用到ASP.Net MVC就會非常不適應。 學習WebForm的時候一定要先掌握不使用WebForm進行Web開發的技術,因為有的專案中如果完全使用WebForm中的服務端進行開發就會有效能等問題,因此這些專案中會不允許使用服務端控制元件或者不允許使用服務端控制元件的某些特性。服務端控制元件必須學,因為很多功能點中用服務端控制元件會“多快好省”,但是不要離了服務端控制元件就活不了。 WebForm中並不是所有控制元件都是常用的,初學者的目的是用最短的時間學最有用的內容。工具箱中“標準”中常用的控制元件如下:Label、Button、LinkButton、ImageButton、HyperLink、DropDownList、ListBox、CheckBox、RadioButton、Literal、FileUpload。很多書上講WebForm的時候講把大量的篇幅放到GridView、DataList、DetailsView、Repeater、ListView等這些資料繫結控制元件上,其實這些控制元件大同小異,只要掌握了一個控制元件另外一個控制元件很容易掌握,推薦大家學習ListView和Repeater就夠了。 上面我談了學習.Net Web開發的的八步,這八步看似漫長,其實如果能把所有精力投入上面的話大約兩個月就能學下來。當然學完了這些只是掌握了.Net開發的基礎知識,還需要在專案開發中將這些基礎知識進一步綜合應用。