【我來解惑】.Net應該學什麼怎麼學(二)

接上篇《【我來解惑】.Net應該學什麼怎麼學(一)》html

2、C#面向對象基礎jquery

       初學者學面向對象的時候不必(也作不到)把面向對象學的很是透、很是深,由於若是想深入的理解面向對象,必需要有大量的編程經驗才能真正體會面向對象究竟是怎麼回事、有什麼好處。之前聽到過有人建議初學者學習設計模式,我認爲純屬誤人子弟,對於初學者來講沒有大量的編程經驗,根本看不懂設計模式在說什麼。這個階段只要弄明白怎麼聲明類、什麼是訪問級別(主要是public、private)、什麼是屬性、字段、方法、什麼是繼承、什麼是override就能夠。面向對象有三個特性:封裝、繼承、多態。對於初學者來講理解多態是很是困難的也是沒太大必要的,這個階段只要能掌握封裝和繼承就能夠。程序員

 

3、簡單的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基礎》。編程

4、經常使用.Net Framework類設計模式

       .Net Framework中的類是.Net中最豐富、最有價值的內容,.Net Framework中的類是和表現層無關的,也就是不管是在控制檯中、WinForm中仍是ASP.Net中均可以調用這些類,好比把一個字符串轉換爲整數都是使用Convert.ToInt32()這個方法,所以千萬不能由於你是在控制檯程序中寫這些類就認爲本身在「編寫DOS程序」。ide

       .Net Framework是很是龐大的,擁有上萬個類,不必把這幾萬個類掌握,在這個階段把經常使用的.Net Framework類掌握了,會對後續階段的學習很是有幫助。這些類包括:String類經常使用方法、StringBuilder類、IO類(FileStream、File、Path)、XML操做類、集合類(ArrayList、List<T>、Dictionary<K,V>)等。佈局

 

5、SQL語句學習

       這個階段主要學習SQL語法,可以掌握常見的SQL語法。數據庫管理系統有MSSQLServer、Oracle、MySQL、DB二、Access等,這些不一樣的系統對於數據庫管理員來講使用方法各異,可是對於開發人員來講差很少,由於都是用的統一的操做語言「SQL」,經過SQL這門通用的語言,你能夠和不一樣的數據庫進行溝通,因此只要掌握了.Net開發最經常使用的MSSQLServer,之後根據工做的須要使用其餘的數據庫管理系統會很是簡單。ui

       如今企業招聘.Net開發人員的時候對於數據庫考查很是多,甚至不少公司的筆試題中有1/3都是關於SQL語句、存儲過程的,所以對於準備學習後找工做的同窗來講必須把這部份內容學好。

       這部份內容主要學習:MSSQLServer的簡單管理,Select、Insert、Update、Delete語句,學完了這些內容就能夠繼續學習後續的ADO.Net了。學有餘力的同窗能夠學習Join、Union、子查詢、存儲過程等高級的內容。

       這部份內容學習時你們能夠參考個人《程序員的SQL金典》這本書(我將近期發佈這本書的所有免費電子版)和《 【傳智播客.Net視頻】第4季SQL從入門到提升》。這套視頻教程。

6、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的接口編程,會對你理解設計模式有很大的幫助。

 

 注:以上謹表明我的觀點,我誓死捍衛你反對我觀點的權利,但請評論時保持文明用語。

相關文章
相關標籤/搜索