直播中
.NET框架可以縮短開發(fā)周期(代碼重用,減少編程難度,支持多語言),也可以更容易的配置(配置的移植通過簡單的
XCOPY即可完成),而且真正的垃圾收集器的出現(xiàn)使得錯誤減少,并且使得應(yīng)用程序更靈活,更可靠?,F(xiàn)在讓我們仔細考察
一下.NET框架的各個模塊。
公共語言運行時(CLR)
CLR 將.NET應(yīng)用軟件被編譯MSIL代碼,并調(diào)用JIT將其編譯成相應(yīng)的機器代碼,使運行過程具備以下幾個優(yōu)點:
更少的涉及內(nèi)部管理
廣泛的工具支持
更簡單系統(tǒng)的配置(“DLL Hell”結(jié)束)
更好的穩(wěn)定性
支持多種編程語言
擁有一個公共數(shù)據(jù)類型系統(tǒng)
有關(guān)CLR的特點詳見下圖:
當然,這些概念并不是真正意義上的革命,象碎片收集已經(jīng)提出了幾十年。CLR看起來像Java虛擬機,而IL類似于Java字節(jié)
代碼。盡管如此,但是對于習(xí)慣于開發(fā)Microsoft平臺的程序員來說變化是根本的,其受益也是菲淺的。
多語言支持
CLR允許開發(fā)組在一個項目中運用多種語言,而且這些語言都能在一起工作。因為元數(shù)據(jù)額外的處理了所有的翻譯,所以不
需要接口定義語言。(原數(shù)據(jù)包括各類信息:運用軟件的描述(名稱、版本、共眾關(guān)鍵字、輸出類型、從屬物等);基類和
已用的界面;自定義屬性(用戶定義的和編輯者定義的)。)現(xiàn)在用Cobol, Fortran, C++, C# 和 PERL 完成一個單一項
目是好是壞已是另外一個問題,但對于舊系統(tǒng)集成,多語言支持則是雪中送炭。(第三方已經(jīng)著手于COBOL (Fujitsu),
PERL, 和Python (ActiveState)語言支持。實際上計劃中有50多個項目。)另外,Microsoft進一步改善了兩大核心編程語
言:C# 推動 C++進入21世紀,它拋棄了很多語言的失敗之處(支持指針和”select case”語句,但是,您認為Java呢?)
VB.NET被大面積的修補,現(xiàn)在是一種真正的支持多態(tài)性、繼承性等的面向?qū)ο笳Z言。
公共類型系統(tǒng)(CTS)
.NET公共類型系統(tǒng) (CTS) 是一套新型的公共數(shù)據(jù)類型,該公共數(shù)據(jù)類型在CLR中已被定義。包括所有的原始類型,int,
float, double等;然而,CTS能使得程序員在較低的水平更好的完成數(shù)據(jù)類型轉(zhuǎn)換。另外,從一種語言調(diào)用另外一種語言
再也不需要依據(jù)規(guī)范進行特殊類型的轉(zhuǎn)換。
.NET框架類
結(jié)合CLR,Microsoft也開發(fā)了一套全面的類框架,部分如下:
這個類框架最大的優(yōu)點是無論你用何種語言工作都能達到同樣的效果,像平方根操作調(diào)用。另外,各種語言都能達到同樣
的功能。類框架里的功能包括用戶界面(Windows Forms(傳統(tǒng)的Win32應(yīng)用程序);Web Forms(ASP.NET的窗體引擎);
Server controls(服務(wù)器端的可重用用戶界面);控制臺應(yīng)用軟件及程序界面--互聯(lián)網(wǎng)上可用的第三方應(yīng)用程序的Web
Services)。
WinForms和ASP.NET
WinForms僅僅是一個用來描繪標準Win32應(yīng)用程序產(chǎn)生的名詞?,F(xiàn)在開發(fā)者擁有單一協(xié)調(diào)的類框架,而不再依靠三大不同的
API:COM組件(ADO,MSXML等)、平臺相關(guān)API(Win32,Win16等)和語言相關(guān)API(VBRUN,MFC等)。
在.NET下ASP網(wǎng)絡(luò)應(yīng)用程序開發(fā)架構(gòu)經(jīng)歷了重大變化。例如,現(xiàn)在成熟的VB或C#(或任何被支持的.NET語言)是編程語言的
選擇,VBscript和JScript支持僅僅是對舊應(yīng)用程序的兼容。其它重大變化包括:
對服務(wù)端HTML控件的新支持(服務(wù)器支持會話狀態(tài))
服務(wù)器能處理客戶事件
新型控制系列包括增強的Intrinsics、Rich控件、List控件、DataGrid控件,Repeater控件、Data list控件和Validation
控件。
對新型的Web Service開發(fā)的支持—包裝應(yīng)用程序邏輯使其可在Internet上通過SOAP整合到.NET應(yīng)用程序中。
為什么要用Java來實現(xiàn).NET?
兩個本質(zhì)原因:
--JAVA語言直接地支持跨平臺
--與成熟的Java技術(shù)集成
從上述描述看,Microsoft涵蓋了各個技術(shù)的底層支持。從一個.NET應(yīng)用程序開發(fā)者的觀點看,這是很好的;但對希望.NET
跨平臺支持的人,則設(shè)置了障礙。
Microsoft的.NET體系機構(gòu)類似于Java,CLR對應(yīng)于Java虛擬機,至少在理論上能運行于多個平臺。像Java虛擬機的跨平臺
一樣,CLR和.NET類框架需要被轉(zhuǎn)換到目標平臺,這一動作相當重要。例如,廣為傳言Corel正在致力用這種方式進行
Linux .NET的移植,但最近財政上受挫,任何具體的計劃僅是如意算盤。本著這一目標,Halcyon開始了運用多平臺支持
的Java語言來開發(fā).NET框架。Halcyon的Instance.NET項目的優(yōu)點是.NET應(yīng)用軟件一旦轉(zhuǎn)換完成,將能在任何支持Java的平
臺運行,從S/390主機到IBM基于Linux的手表。
跨平臺支持對于.NET Web Service部署變得越來越重要。.NET Web Service是可以通過互聯(lián)網(wǎng)整合到其它應(yīng)用軟件的.NET
應(yīng)用軟件,本質(zhì)上其需要配置到一個有最大正常運行時間 ,功能強大的運行環(huán)境。例如,當網(wǎng)絡(luò)服務(wù)主平臺重新啟動而導(dǎo)
致交易周期性中斷,如果你購買了前面所提到的包括在公司購物車軟件里的稅收表應(yīng)用程序,情況會樂觀一些。Web
Service賣主的確有必要在一定的服務(wù)合同下對系統(tǒng)停機時間負責(希望有此合同)。就此移植執(zhí)行關(guān)鍵任務(wù)的Web
Service到像Solaris或OS/400等良好的平臺對于雙方都具有重大意義。實際上像IBM的S/390這種重負荷機能被用作網(wǎng)絡(luò)服
務(wù)伺服器,作為成千上萬臺Linux虛擬機的主機。
還有額外的好處是 Instant..NET應(yīng)用軟件也能捆綁像JavaBeans, EJB,及CORBA組件等基于Java的技術(shù)。這些.應(yīng)用軟件也
同樣能和來自O(shè)racle, BEA, IBM和Sybase的大型應(yīng)用服務(wù)器相互作用。
Halcyonsoft的Java.NET如何工作的?
盡管用Java復(fù)制.NET框架所需的開發(fā)努力是巨大的,但從開發(fā)者角度看實際操作應(yīng)該是簡單的。運用一個“il2java”的命
令行實用程序,開發(fā)者能直接將他們的.NET應(yīng)用軟件的中間語言代碼轉(zhuǎn)換為Java字節(jié)代碼或Java源代碼(可根據(jù)情況轉(zhuǎn)換
為這兩種代碼中一種)。然后由被轉(zhuǎn)換生成的Java.NET應(yīng)用程序和必要的支持庫組成的運行時軟件包即可被配置運行在
Java的平臺上。
當在Java平臺上找不到一種特定的服務(wù)時,像Microsoft Office,我們將利用和更新我們的Java Bridge--RJAX。RJAX是一
種高性能的橋服務(wù)器,它設(shè)置在Windows機器上,可以使Java應(yīng)用程序訪問.NET應(yīng)用程序及舊的COM/COM+/ActiveX對象和
DLLs。(現(xiàn)在2.1版本的RJAX是一個良好的、高速度的、易升級的解決方案,能使我們尋找到任何無法預(yù)料的依靠Windows特
殊的應(yīng)用軟件)
下列圖表表示了與Microsoft的.NET體系相聯(lián)系的Halcyonsoft的.NET體系結(jié)構(gòu):
在Java.NET引擎和Microsoft后臺服務(wù)之間的箭頭表示上面討論過的RJAX Bridge。
其它服務(wù),像MSMQ和MTS 分別對 應(yīng)到Java的JMS和JTS。Web Service 很明顯是通過SOAP通信協(xié)議進行處理。 這一點將在
Java.NET和原始.NET兩個版本中保持一致。
下圖更詳細的描述了Halcyon的.NET的執(zhí)行體系結(jié)構(gòu):
目前,Halcyonsoft正致力于開發(fā)Java.NET,并將于今年10月份正式推出其中的一部分-ASP.NET Beta版。為了獲得更多的
有關(guān)的應(yīng)用實例,Halcyonsoft邀請其原有的iASP(Microsoft ASP的Java構(gòu)架,可跨平臺)用戶及更多的開發(fā)者作為其測試
者,Halcyonsoft將免費為其Beta版測試者作ASP.NET的案例研究.。
Halcyonsoft目前在中國東莞、長沙設(shè)有兩個分公司。如果你想成為iNET的測試者,請訪問http://www.halcyonsoft.com獲
取更多消息。國內(nèi)測試者可聯(lián)系 Henry@halcyonsoft.com 或 Jacky@halcyonsoft.com。