【正文】
Web頁面上使用腳本語言了,但 VBA仍用作 Office文檔和 Visual Studio宏語言。這說明,與 C和 一樣,可以使用 J創(chuàng)建 Web應用程序、 Windows窗體、 XML Web服務和其他應用程序?,F在 J語言內置于 .NET Framework中。 因為 C++允許低 級指針操作, C++編譯器不能生成可以通過 CLR 內存類型安全測試的代碼。這表示在 C++代碼中可以把托管類型和非托管類型合 并起來,因此托管 C++ 代碼: class MyClass { 定義了一個普通的 C++類,而代碼: __gc class MyClass { 生成了一個托管類,就好像使用 C或 。通過 Visual C++ .NET, 又加入了更多的擴展內容,來支持 .NET Framework。 這種語言升級的一個副作用是不能再把 編譯為內部可執(zhí)行代碼了。 Visual Basic 6已經升級為 Visual Basic .NET,對 VB 進行的改變非常大,完全可以把 Visual Basic .NET當作是一種新語言。 (1) Visual Basic 6在升級到 Visual Basic .NET時,經歷了一番脫胎換骨的變化。相反, JIT 編譯器不僅可以進行 Visual Studio 6所能完成的優(yōu)化工作,還可以優(yōu)化代碼所運行的特定處理器。 傳統的編譯器會優(yōu)化代碼,但它們的優(yōu)化過程是獨立于代碼所運行的特定處理器的。 Microsoft認為這個過程要比一開始就編譯整個應用程序代碼的效率高得多,因為任何應用程序的大部分代碼實際上并不是在每次運行過程中都執(zhí)行。 注意 .NET的平臺無關性目前只是一種可能,因為在編寫本書時, .NET 只能用于 Windows平臺,但人們正在積極準備,使它可以用于其他平臺 (參見 Mono 項目,它用于創(chuàng)建 .NET 的開放源代碼的實現,參見 2. 提高性能 實際上, IL比 Java字節(jié)代碼的作用還要大。托管代碼的優(yōu)點 Microsoft中間語言與 Java字節(jié)代碼共享一種理念:它們都是一種低級語言,語法很簡單 (使用數字代碼,而不是文本代碼 ),可以非??焖俚剞D換為內部機器碼。 也就是說 編譯為中間語言就可以獲得 .NET 平臺無關性,這與編譯為 Java字節(jié)代碼就會得到 Java平臺無關性是一樣的。代碼編譯過一次后,得到的內部可執(zhí)行代碼就存儲起來,直到退出該應用程序為止,這樣在下次運行這部分代碼時,就不需要重新編譯了。其原因是編譯過程的最后一部分是在運行時進行的, JIT 編譯器確切地知道程序運行在什么類型的處理器上,利用該處理器提供的任何特性或特定的機器代碼指令來優(yōu)化最后的可執(zhí)行代碼。例如 Visual Studio 6優(yōu)化了一臺 一般的 Pentium機器,所以它生成的代碼就不能利用 Pentium III處理器的硬件特性。 那么除了 C之外,還有什么語言可以通過 .NET 進行交互操作呢?下面就簡要討論其他常見語言如何與 .NET 交互操作。另外,它不支持繼承, Visual Basic使用的標準數據類型也與 .NET不兼容。雖然這意味著其中的工作已大大減輕,但用戶仍需要檢查新的 代碼,以確 保項目仍可正確工作,因為這種轉換并不十分完美。 (2) Visual C++ .NET Visual C++ 6有許多 Microsoft對 Windows的特定擴展。C++的一個有趣的問題是在編譯托管代碼時,編譯器可以生成包含內嵌本機可執(zhí)行代碼的 IL。另外,在使用托管類時,還需要使用非標準的 C++特性 (例如上述代碼中的 __gc關鍵字 )。在 .NET Framework ,用戶必須下載相應的軟件,才能使用J。 J不使用 Java運行庫,而是使用與其他 .NET兼容語言一樣的基類庫。 頁面可以用 編寫,現在可以把 ,而不是解釋性的語言,也可以 編寫輸入量比較大的 。另外, COM組件仍可以使用 — — .NET 組合了 COM的互操作性,從而使托管代碼可以調用 COM 組件, COM 組件也可以調用托管代碼 (見第 29 章 )。 it also facilitates language interoperability. Simply put, you can pile to IL from one language, and this piled code should then be interoperable with code that has been piled to IL from another language. You’re probably now wondering which languages aside from C are interoperable with .NET, so let’s briefly discuss how some of the other mon languages fit into .NET. Visual Basic .NET Visual Basic .NET has undergone a plete revamp from Visual Basic 6 to bring it uptodate with .NET. The way that Visual Basic has evolved over the last few years means that in its previous version, Visual Basic 6, it was not a suitable language for running .NET programs. For example, it is heavily integrated into COM and works by exposing only event handlers as source code to the developer— most of the background code is not available as source code. Not only that, it does not support implementation inheri