從1.0開始,.NET這幾年發展的速度異常驚人,全新平台的.NET1.0、改良的.NET1.1,邁向成熟的.NET2.0,大躍進的.NET 3.0,2008年將正式站上舞台的.Net3.5,每一次的改版,都帶來了不同程度的驚喜,然而,更好的功能,更具生產力的工具,一切的一切,帶給開發人員的不是喜悅,而是追趕新技術的疲累與茫然,今天當紅的技術,轉眼成為明日的黃花,不如歸去,或許已經成為開發人員的共同心情寫照。
如果你有這樣的無奈,這篇文章,或許可以給你不同的想法,即便無法讓你在一波波技術浪潮的沖擊下,重拾對技術的熱情,至少也能讓你未來的.Net學習之路,走得比較順遂。
.NET 從1.0發表之後,它的框架便已固定,與微軟之前的技術最大的不同點,在於它的發展以漸進式的演化取代了破壞性的革命,仔細檢視.NET的架構,你會發現每一次的改版都只是在舊的框架上,堆疊新的軟體元件,而非如.Net1.0創造一個全新的技術平台,這樣的好處在於,開發人員既使面對新版本,使用的依然是熟悉的技術,想要新的功能,只要針對新版釋出的部份,進一步作學習即可。
.NET1.X 跳到 .NET 2.0 的時候,BCL新增了一些類別,語言本身作了一些改良,ASP.NET則嵌入了一些新的機制,除此之外,所有的東西都是舊的,觀念亦沒有改變,.NET 3.0則單純的加入了四個新的軟體框架,.NET 3.5則比較復雜,但是基本上,還是在.NET 2.0與.Net3.0上面,堆了一些新的功能上去。
是的,你在.Net 1.0開始所作的投資,不會被浪費掉,幾乎所有的東西都能夠延用,某些功能,新版本或許有更好的作法,但是並不代表你就必須丟掉舊版本,相反的,在原來的基礎上,你可以更快速的學好新的東西。
有了概念,我們現在知道改版不是件壞事,但這是一回事,.NET究終是只技術巨獸,如何馴服它,又是另外一回事,如何找到正確的學習方向,將是你的.Net之路是否能夠順利的關鍵。
學習.NET沒有密訣,務實、不求速成是重點,.NET的開發工具,包裝了很多好用的東西,導致開發人員(尤其是入門的程式員)天真的以為,開發.NET應用程式,無論WinForm或是WebForm,都可以輕易的用工具搞定,忽略了語言與API才是關鍵,導致.Net的學習之路愈走愈窄,本來可以愉快的學習經驗,最後成為可怕的惡夢。
無論是初學者或是已經有一般基礎的程式員,接下來我們列舉一連串的步驟,作為你學習.Net的參考。
1. 了解.NET語言:在你開始學習.NET之前,選擇一個語言,C#或是vb.net,學習相關語法,例如迴圈,宣告等等,了解類別設計,OOP的基礎概念,在你熟悉這些東西之前,不要去碰所謂的WinForm或是ASP.Net,當然,這是建議,如果你不覺得這會模煳學習焦點,如果你打算就語言本身下去學習,從Console模式作練習。
2.探索基礎的.Net Framework類別庫:了解何謂命名空間,類別如何被組織歸納,如何引用現有的類別庫實作所需的應用程式功能,學習一些基礎的核心類,例如Math、Exception等等。
3.選擇所使用的UI:傳統的視窗應用程式(WinForm),或是Web應用程式(WebForm),也就是ASP.Net。
4.深入類別庫:學習特定領域的技術,例如資料庫的ADO.Net,繪圖技術的GDI+,網路與串流技術,甚至大型應用程式的發展等等。
.NET 程式設計師一旦過了初學的門檻,有一大部份的時間,都會在類別庫的類別功能上打轉,無論你所開發的是ASP.Net的Web應用程式員,還是傳統視窗應用程式,都脫離不了類別庫的應用,強化類別庫的知識將是最主要的課題。
.NET 的架構設計得非常出色,因此很容易學習,按步就班很快的就會成為一個堪用的.NET應用程式開發人員,有了好的基礎,無論是目前的.NET3.0,或是明年蓄勢待發的.Net3.5,對你都不再會是困擾,因為它們都只是堆疊了一些新的東西上去,只要在需要的時候,針對這些新增功能繼續下功夫即可,至於那些新功能,我們用一些簡單的數學式來說明。
.NET 2.0 = CLR +BCL+ C#(vb.Net) + Win Form + Web Form
.NET 3.0 = .Net 2.0 + WCF + WPF + WF + WCS
.NET 3.5 = .NET 3.0 + ASP.Net AJax +Silverlight+LINQ
如何,是不是比較好受了,從這幾條數學公式當中,我們得到了一個很重要的結論,如果沒有.NET2.0的基礎,你是不可能學好所謂的.NET 3.0,甚至迎接明年即將到來的.NET3.5,也因此,除非你已經准備好了,否則學好你的.Net 2.0 逺比關注目前的新技術來得重要。