用.NET設計一個新的課程

發表于:2007-05-25來源:作者:點擊數: 標簽:設計.NET下載課程新的
下載本文代碼 下載本期雜志代碼 .NET提供了frameworks、新的runtime和集合、組件技術、開發工具和在空前規模上交互的編程語言。 By Juval Lowy 微軟的.NET是新的組件技術革命,它和下一版本的Visual Studio一起提供新的應用程序框架如Web Services、ASP.NET
下載本文代碼
下載本期雜志代碼
.NET提供了frameworks、新的runtime和集合、組件技術、開發工具和在空前規模上交互的編程語言。
By Juval Lowy

微軟的.NET是新的組件技術革命,它和下一版本的Visual Studio一起提供新的應用程序框架如Web Services、ASP.NET、 Windows Forms、 和ADO.NET。作為微軟的下一代組件技術,.NET設計范圍從底層一直到簡化組件開發和發布,同時它提供空前規模交互性的編程語言。

這篇綜述文章描述了.NET的關鍵概念,比如runtime和集合(assemblies),同時,它也簡單介紹了.NET 的framework的各個方面。它也把.NET描繪成組件技術,把COM當作參考模式。我的目的是給你提供.NET的精髓信息,而不是教你如何使用它。我將會向你介紹足夠的信息,這樣你就知道它到底是什么和哪兒能夠找到更多的信息。從而可以做出正確的決定和開始使用新技術規劃你的產品。我將不會涉及所有的.NET技術,因為有些知識涉及到細節問題已經在本期的其它文章中做了詳細介紹。

.NET Common Language Runtime
.NET基于Common Language Runtime (CLR)環境,這個環境管理你的代碼運行時的每個方面?!癱ommon”意思是所有.NET組件,不論它是何種開發語言,都在同一個runtime運行。CLR就象一個溫暖的毛毯包圍著你的代碼,它提供了內存管理、安全的運行環境、對象位置透明、并行管理和訪問底層的操作系統服務。因為CLR管理項目行為的這些方面,所以在CLR上運行的代碼叫“受管制代碼”。

CLR提供了空前規模的語言交互性,允許組件重用,用COM技術是不可能實現這點的。COM也提供了語言獨立性,允許兩個二進位的組件用兩種不同的語言開發,比如Visual Basic 和 C++,然后他們可以相互調用。但是COM的交互性僅在運行時存在。在開發時,.NET可以在一種語言開發中得到用另一種語言開發的組件。.NET可以做到是因為CLR是基于嚴格類型的系統。為了符合.NET規范,語言中的所有結構,比如class、struct,和原始類型,都必須編譯成與CLR一致的類型。

這種語言的交互性是以犧牲現有的語言和編輯器為代價的?,F有的編輯器生成CLR不認識的代碼,這些代碼不遵從CLR類型系統,不能被CLR所管理。為了解決這個問題,Visual Studio .NET包含了四種遵從CLR的語言:: C#, Visual Basic .NET, JScript .NET, 和受管制的C++。第三方編輯器的出售者也將建立針對CLR開發出超過20種語言的編輯器,從COBOL到Eiffel。

學習.NET編程語言
所有的.NET變成語言使用相同的基類、開發環境、CLR設計限制和CLR類型。在.NET中編譯代碼分為兩個過程。首先,高級語言被編譯成一般的語言叫做微軟中間語言(IL),它和機器碼有點相似。當運行時,第一次調用中間語言代碼,.NET CLR編譯中間語言成為本地語言,然后作為本地代碼執行它。一旦編譯后,本地代碼就被使用直到程序終結。另一種選擇是,你可以在安裝時把它編譯成本地語言。

IL是所有的.NET語言的共同部分,所以理論上,兩種不同的語言等價構造體在編譯成IL時應該是相同的。這樣,所有的.NET語言在實現和開發難易度上是相同的。語言之間的不同在于美學和個人愛好。例如,為了使C++順從CLR,你必須使用大量的編譯指令和擴展,這叫C++的管制擴展,其結果是很少可讀的代碼。

與此類似的,Visual Basic .NET和以前的Visual Studio 6.0僅有一點相似。這就要求你忘記VB6的一些習慣。只有C#,它是新的.NET語言,沒有遺留問題。C#源自C++,它組合了C++功能的強大性和VB6的易用性,提供了可讀的,遵從CLR的類似C++的語言。實際上,C#更像標準的C++語言。C#也是純粹的面向對象的語言,可以用來寫可理解的和可重復使用的面向對象的代碼。

我將在我的例子中使用C#,但記住你也可以用VB.NET和C++來做同樣的事情。

.NET語言的其它特征包括基于異常的公共錯誤處理,把每個實體看作一個對象,實體包括原始類型,其結果得到一個完整的編程模式。CLR有豐富的、預定義的異常處理類,你可以照現在的樣子使用它們,或者你可以為了特定的需求繼承并擴展他們。一種語言拋出的異??梢栽诹硪环N語言中捕捉并處理。

開發.NET組件
.NET使得開發二進位的組件更加容易了。你不需要一個象ATL一樣的框架,簡單地聲明一個類,它就可以變成一個組件(從.NET Magazine網站上下載列表1)。

基于接口的編程
面向組件開發的最重要的原則是分離接口和實現。COM強制把接口定義從實現他們的類中分離出來。.NET并不強迫你讓類的公共方法成為接口的一部分,但是強制同一接口的不同實現是多態的。

列表1中的接口定義是程序的一部分。你不需要IDL文件。C#保留字“接口”允許你定義一個完全虛擬的,沒有實現的,不能被客戶端實例化的類型,和C++中純粹的虛擬或者抽象類相似。接口方法不必返回HRESULT或者其它的錯誤處理類型。在出錯的情況下,實現方法應該拋出一個異常。

原文轉自:http://www.anti-gravitydesign.com

評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97