Visual Studio .NET 學習之路
轉載『Visual Studio .NET 學習之路』
Posted by i-Freelancer on 2003年8月15日 (臺)
由弈飛資訊首席顧問/臺灣微軟特約資深講師 李 清 培 先生帶領大家邁向.NET學習之路。離線閱讀檔案,可至『線上資源 > 技術文章』處下載。
Visual Studio .NET 學習之路弈飛資訊首席顧問 / 臺灣微軟特約資深講師
李清培
摘要
本文將介紹.NET 的整體架構,以及Visual Studio .NET的完整學習路徑。在簡略介紹.NET應用程式架構之後,將依程式設計語言、.NET Framework
另一方面Microsoft為了建立.NET應用程式開發能力的認證標準,特別針對Visual Studio.NET推出了兩項認證,MCAD與MCSD.NET,本文將一併介紹相關認證的需求,以及參考資源。
為什麼是.NET?為什麼叫.NET?
在進入.NET學習路徑之前,我們先要了解什麼是.NET,以及為什麼叫.NET。
.NET解決新一代因特網應用程式的需求
由於全球將近有三十億的人口使用
在.NET的時代, Internet即是作業平臺
Microsoft .NET延伸了來自Internet及作業系統的概念,讓Internet本身成為新作業系統的基礎,也就是說,在.NET的時代,程式開發者的作業系統是架構在整個Internet之上,如此將使開發人員可以輕易的建構出程式,而不再受周邊裝置的侷限,並可透過應用程式充分與因特網連結。
.NET學習路徑
在教學的過程中常有學生問到學習Visual Basic必須具備什麼條件,我常以半開玩笑的語調回答,只要會小畫家就可以了。然而在10 年前,想要編寫一個視窗應用程式並不是件容易的事。直到 Visual Basic 的誕生,程式開發人員才開始體會到開發 Windows 應用程式是如此簡便,就像畫圖一樣把控制元件拖曳到窗體上就可以了,對一個像我這樣寫了幾年結構化程式的人而言,真是一大震撼。
同樣的,在.NET 的學習上,跟十年前比較起來,也不是那麼困難,但是若要能隨心所欲的發揮功能,還是必須下些功夫。首先,建議您儘快體驗 Visual Studio .NET 產品,只是看書、聽研討會,不如實際動手操作,以熟悉Visual Studio .NET的整合開發環境(IDE)。在這一方面Microsoft提供了許多的Sample Code可供練習;或是參加CTEC所舉辦各樣主題的一日體驗課程。
接下來則建議依下列四個步驟進行學習:
熟悉您要使用的程式設計語言
目前支援.NET的語言共有二十五種,內建於Visual Studio .NET的程式語言則有Visual C++、Visual Basic .NET、Visual C# .NET,其中VB.NET與C#可以說是為.NET所量身訂作的,因此在此建議以這兩種語言為主。
至於選擇那一種語言全看個人的背景,近年來,VB 的開發者希望Microsoft能推出更強大、程式架構的開發語言以符合企業的需求;而 C++ 的開發者則希望能Microsoft在整合開發環境 (IDE)裡,像VB一樣,提供新的快速應用開發(RAD)特性以提高開發效率。這也是Microsoft釋出 Visual Basic .NET 和 C# 的主要原因。
因此如果您原本學習C+ +或Java,可以選擇C#,跟C++與Java比較起來,C#除了九成以上雷同,整體的語法更是精煉而優美,C#同時也經稽核通過成為一種工業標準的語言。至於原本學習VB的朋友,建議直接使用VB.NET,雖然在臺灣,學習C++有一種強烈的優越感,但是如果使用的是”Visual”,重在快速開發,VB其實是很好的選擇,目前全球約有八百萬人使用VB開發程式。
至於語言的效能上,由於.NET 應用程式架構是採取兩階段式的編譯,第一階段先將程式語言透過專屬的編譯器編譯成中間語言,第二階段在由.NET Framework的成員Common Language Runtime將IL最佳化之後編譯成機器碼。(限於篇幅在此不多加贅述,可參考MSDN相關資料,或下載筆者在TechEd及PDC研討會資料。)也就是說,無論用什麼語言,都必須“翻譯”成IL,因此也沒有什麼效能上的分別了。
學習使用 Microsoft .NET Framework
在開發分散式應用程式時,除了快速開發工具以外,還必須有一套整合與服務這些程式元件的中介軟體,且這一套中介軟體必須能與作業系統充分整合、使用系統所提供的資源與服務。在上一代的應用程式的中介軟體包括MTS、 COM、IIS、MSMQ、以及後來的COM+,而在.NET平臺上,如前面所提到的,是以XML為基礎的,且要達到AP-to-AP與 Programmable Web的目標,因此需要一個全新的中介軟體,Microsoft提供給我們一個更強大的中介軟體.NET Framework。
.NET Framework的架構共分為五大部份,其中.NET Framework本身具有的包括共通語言執行期環境( Common Language Runtime、CLR)、廣泛的類別函式庫,以及定義.NET語言的共通語言規範(CLS),另外則為承載.NET Framework的作業系統平臺,及支援.NET語言的開發工具Visual Studio .NET。
最底層的Common Language Runtime設計上有點像Java Virtual Machine,未來開發的.NET應用程式,都必須Run在Common Language Runtime上面。Common Language Runtime提供了非常多的Service讓應用程式在開發上、或執行上更穩定、更快速。
在中間的部份為Class Library,在以前我們在開發程式的時候,我們可能會用一些API,COM Library,MFC/ATL,等等,.NET Framework整合這些Functionality提供一致的Class Library,未來無論您用什麼樣的程式語言,都可以使用一致的Class Library。
因此這一部份的學習重點在於如何引用、延伸這些類別函式庫的功能,並建立自定的類別函式庫,但是面對那麼多的類別函式庫,又面臨了以前使用API 的窘境:要用那個API?怎麼用?好在Microsoft在這一方面提供了絕佳的解決方案,Microsoft利用名稱空間(NameSpace)的架構,將這些類別分門別類,例如要使用與資料庫相關的,就引用System.Data相關名稱空間;若要使用到Web Service相關的類別,則引用System.Web.Services,依此類推。詳細的“族譜”請參閱.NET Framework SDK說明檔案。
至於Common Language Runtime的應用,則進一步提供應用程式調校的許多技術,如果不是進階使用者,維持預設值有時比自己設定要好,這一部份可參閱筆者在微軟PDC2002 Inside Common Language Runtime講次的資料。
學習如何開發Web 或 Windows 應用程式
在熟悉了程式語言與.NET Framework之後,又面臨另一項選擇:Window Based 或 Web Based。Visual Studio.NET提供兩種使用介面:ASP.NET與Windows Forms。其中ASP.NET的使用介面又稱為WebForms。顧名思義,Web Forms將擺脫以前ASP難以開發的缺點,賦與像Windows Forms一樣的開發環境,因此對於以前習慣於在互動式的環境下開發程式的朋友,現在也可以像以前開發VB應用程式那麼簡單的開發一個高效能的Web應用程式。
那麼Windows Forms呢?不用耽心,Microsoft並沒有厚此薄彼,Windows Forms具有全新的開發環境,包括以拖放方式建立資料庫的連結與設定、使用 XML Web Services 、視覺繼承、利用控制元件錨點和停駐自動建置可調整大小的窗體、以及直接以視覺方式來撰寫選單等。因此在這一部份不論您選擇那一樣都可完全享受 Visual Studio.NET強大的功能。
這一部份的學習重在操作環境的熟悉與控制元件的使用,建議先利用Microsoft所提供的Sample Code練習,再利用線上說明書,逐一練習各控制元件,並利用這些既有控制元件開發功能豐富的使用者介面。而進階使用者則必須能自行開發自訂的控制元件,包括Windows Controls 與 Web Controls。
學習建立並公佈 Web 服務
過去,開發人員在開發程式的時候,必須依賴本機系統服務來建構應用程式,即使是採用多階(n-tier)的架構,開發人員仍需要使用大量的程式資源,然而到了.NET時代,應用程式不在綁在某一作業系統上,而是將整個Internet當作應用程式的平臺。為了達到這個目標,Microsoft利用兩項特質,包括更具彈性的多階(n-tier)架構,以及網頁上訊息導向的概念,建構了稱為「網頁服務(Web Services)」的應用程式架構。就概念上而言,呼叫網頁服務(Web Service)將網頁服務(Web Service)整合於應用程式中,就像呼叫本機服務或其它元件一樣。這之間的差別在於它是透過Internet來呼叫。或者可以說Web Service就是將以前的元件網路化而已。
因此在這一部份的學習除了學習如何建立與使用Web Service外,就跟以前學習Windows DNA時候一樣,必須強調的是部署與解決方案。例如,如何利用Web Service建構分散式應用程式,或利用Web Service提供資訊服務等。
另一方面,由於.NET應用程式是架構在整個Internet上,因此安全性也是一大課題,建議在完成以上學習之後,能進一步探討.NET安全技術,這一部份Microsoft也提供了相當多的技術資源可供下載。
.NET認證
在瞭解了Visual Studio .NET的學習方向後,無論您是經驗豐富的程式設計師或只是剛起步的新鮮人,我想都應該有興趣瞭解Microsoft針對.NET程式開發所建立的認證制度。以下即就MCAD(微軟認證應用程式開發工程師)與MCSD(微軟認證解決方案開發工程師)相關認證作說明。(資料來源參考微軟網站)
核心科目
Microsoft .NET 的 MCAD (必考兩科) |
Microsoft .NET 的 MCSD (必考四科) |
Visual Basic .NET |
|
* 使用 Microsoft Visual Basic .NET 及 Microsoft Visual Studio .NET 以開發並實施 Web 應用程式或* 使用 Microsoft Visual Basic .NET 及 Microsoft Visual Studio .NET 以開發並實施基於 Windows 的應用程式 70-310 使用 Microsoft Visual Basic .NET 及 Microsoft .NET Framework 以開發 XML Web 服務及伺服器元件 |
使用 Microsoft Visual Basic .NET 及 Microsoft Visual Studio .NET 以開發並實施 Web 應用程式使用 Microsoft Visual Basic .NET 及 Microsoft Visual Studio .NET 以開發並實施基於 Windows 的應用程式 70-310 使用 Microsoft Visual Basic .NET 及 Microsoft .NET Framework 以開發 XML Web 服務及伺服器元件 70-300 分析需求及定義 .NET 解決方案架構 |
Visual C# |
|
* 使用 C# 及 Microsoft Visual Studio .NET 以開發並實施Web 應用程式或* 使用 C# 及 Microsoft Visual Studio .NET 以開發並實施基於 Windows 的應用程式 70-320 使用 Microsoft Visual C# 及 Microsoft .NET Framework 以開發 XML Web 服務及伺服器元件 |
使用 C# 及 Microsoft Visual Studio .NET 以開發並實施 Web 應用程式)使用 C# 及 Microsoft Visual Studio .NET 以開發並實施基於 Windows 的應用程式 70-320 使用 Microsoft Visual C# 及 Microsoft .NET Framework 以開發 XML Web 服務及伺服器元件 70-300 分析需求及定義 .NET 解決方案架構。 |
選考科目
Microsoft .NET 的 MCAD (選考一科) |
Microsoft .NET 的 MCSD (選考一科) |
使用 Microsoft SQL Server 2000 企業版以設計並實施資料庫使用 Microsoft BizTalk Server 2000 企業版以設計並實施解決方案使用 Microsoft Commerce Server 2000 以設計並實施解決方案* 使用 Microsoft Visual Basic .NET 及 Microsoft Visual Studio .NET 以設計並實施 Web 應用程式* 使用 Microsoft Visual Basic .NET 及 Microsoft Visual Studio .NET 以開發並實施 Windows 應用程式* 使用 C# 及 Microsoft Visual Studio .NET 以開發並實施Web 應用程式* 使用 C# 及 Microsoft Visual Studio .NET 以開發並實施基於 Windows 的應用程式 |
使用 Microsoft SQL Server 2000 企業版以設計並實施資料庫使用 Microsoft BizTalk Server 2000 企業版以設計並實施解決方案使用 Microsoft Commerce Server 2000 以設計並實施解決方案 |
建議路徑
對於「MCAD 認證」,如果核心科目選擇70-305 或 70-315,則可以選擇70-306 或 70-316作為選考,反之亦然。因此建議先以70-305、70-306、70-310取的VB的MCAD或以70-315、70-316、70- 320取得C#的MCAD。
至於MCSD,不論用那種語言,取得MCAD後,建議經過幾個月的開發經驗後,才能參加70-300的考試,同時必需加考一科選考科目,才能取得.NET的MCSD。
學習資源
Microsoft為了能儘速達成技術轉移的目的,提供了相當豐富的資源供使用者參考,同時在Visual Studio .NET所附的說明檔案全部是中文化的,這對習慣使用線上說明書的開發者而言真是一大福音。
另外不論是美國原廠的MSDN網站(msdn.microsoft.com)或是臺灣微軟msdn網站()也都提供了相當多的資源。同時自去年開始,一系列的修練研討會,其目的也是儘快達成技術轉移的目的。
對於自學者,目前除了MsPress的書籍外,各家出版社及作者,也趁這一波推出了大量相關的書籍,不怕沒有參考書,只怕不知到找那一本,不過還是建議先參考原廠所提供的參考資料及範例程式之後,再選擇適合自己的書。
如果您是屬於工作繁忙,或想加速整個學習曲線,則可選則微軟技術授權的教育中心(CTEC),由於CTEC使用原廠Microsoft Official Curriculum (MOC) 教材,因此可以學習到原廠第一手的技術,而且講師都必須通過相關的認證才可以教授該課程。
結語
學習新技術總是令人雀躍不已,然而面對一些新的名詞、新的架構,則是一種全新的挑戰,若在談到coding,很多人開始猶豫了。其實只要把握原則,學習.NET可以很快樂的,本文儘量不談到技術的東西,若有任何技術上或學習上的疑問,也歡迎來函交換意見。
本文轉自:http://blog.csdn.net/greatmumuke/archive/2005/08/07/447522.aspx