1. 程式人生 > >Visual Studio .NET 學習之路

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

.NET應用程式、Web 服務四大主題介紹.NET完整的學習路徑,不論是資深的程式設計師或程式的初學者都能快速的掌握Visual Studio .NET的核心技術。

另一方面Microsoft為了建立.NET應用程式開發能力的認證標準,特別針對Visual Studio.NET推出了兩項認證,MCADMCSD.NET,本文將一併介紹相關認證的需求,以及參考資源。

為什麼是.NET?為什麼叫.NET

在進入.NET學習路徑之前,我們先要了解什麼是.NET,以及為什麼叫.NET

.NET解決新一代因特網應用程式的需求

由於全球將近有三十億的人口使用

Web,企業與企業間的互動日趨頻繁,使用者對網站的要求不單單隻有瀏覽資訊而已,更希望能夠編輯、分析與交換資料等,企業開始期待一個嶄新的程式架構,希望能夠讓應用程式、裝置、與企業流程能夠充份的協同合作。Microsoft 為了解決以上的問題,便提出了一套以Web Service 為核心的解決方案Microsoft .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 .NETVisual C# .NET,其中VB.NETC#可以說是為.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 RuntimeIL最佳化之後編譯成機器碼。(限於篇幅在此不多加贅述,可參考MSDN相關資料,或下載筆者在TechEdPDC研討會資料。)也就是說,無論用什麼語言,都必須“翻譯”成IL,因此也沒有什麼效能上的分別了。

學習使用 Microsoft .NET Framework

在開發分散式應用程式時,除了快速開發工具以外,還必須有一套整合與服務這些程式元件的中介軟體,且這一套中介軟體必須能與作業系統充分整合、使用系統所提供的資源與服務。在上一代的應用程式的中介軟體包括MTS COMIISMSMQ、以及後來的COM+,而在.NET平臺上,如前面所提到的,是以XML為基礎的,且要達到AP-to-AP Programmable Web的目標,因此需要一個全新的中介軟體,Microsoft提供給我們一個更強大的中介軟體.NET Framework

.NET Framework的架構共分為五大部份,其中.NET Framework本身具有的包括共通語言執行期環境( Common Language RuntimeCLR)、廣泛的類別函式庫,以及定義.NET語言的共通語言規範(CLS),另外則為承載.NET Framework的作業系統平臺,及支援.NET語言的開發工具Visual Studio .NET

最底層的Common Language Runtime設計上有點像Java Virtual Machine,未來開發的.NET應用程式,都必須RunCommon Language Runtime上面。Common Language Runtime提供了非常多的Service讓應用程式在開發上、或執行上更穩定、更快速。

在中間的部份為Class Library,在以前我們在開發程式的時候,我們可能會用一些APICOM LibraryMFC/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 BasedVisual Studio.NET提供兩種使用介面:ASP.NETWindows 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-30570-30670-310取的VBMCAD或以70-31570-31670- 320取得C#MCAD

至於MCSD,不論用那種語言,取得MCAD後,建議經過幾個月的開發經驗後,才能參加70-300的考試,同時必需加考一科選考科目,才能取得.NETMCSD

學習資源

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