国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

將 Java 應(yīng)用程序遷移到 .NET(1)

2019-11-18 12:12:42
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  摘要:發(fā)現(xiàn) Microsoft .NET 比 java 優(yōu)越的地方,學(xué)習(xí)如何將 Java 應(yīng)用程序轉(zhuǎn)換到 .NET。
  什么是 .NET?
  Microsoft? .NET(讀作“dot net”)既是軟件編寫方法,又是一套開(kāi)發(fā)實(shí)現(xiàn)這些方法的軟件的工具。我們來(lái)看一些有關(guān)連接性和互操作性的常見(jiàn)業(yè)務(wù)問(wèn)題,以說(shuō)明促使 .NET 方法的發(fā)展的原因:大多數(shù)企業(yè)都與其他企業(yè)合作,但是它們的信息系統(tǒng)運(yùn)作卻是孤立的。沒(méi)有建立起貫穿供給商的產(chǎn)品供給鏈;供給商與買方之間的聯(lián)系經(jīng)常只局限于傳真或簡(jiǎn)單的文本文件交換。人們通常將這一點(diǎn)看作提高生產(chǎn)率的障礙。更好地溝通可以使企業(yè)實(shí)現(xiàn)更高的效率。當(dāng)供給鏈中的所有供給商都彼此連接起來(lái)時(shí),每個(gè)供給商都能夠?qū)?kù)存降低到最低水平、根據(jù)需求生產(chǎn)和更有效地協(xié)調(diào)。
  與此相關(guān)的是互操作性問(wèn)題。當(dāng)企業(yè)承諾互相連接起來(lái)時(shí),假如他們的操作系統(tǒng)處于不同的再開(kāi)發(fā)狀態(tài)或處于不斷變化中,他們就會(huì)面臨艱難的設(shè)計(jì)及實(shí)現(xiàn)連接的策劃工作。此外數(shù)據(jù)安全也是個(gè)復(fù)雜問(wèn)題,因?yàn)橥ㄟ^(guò)企業(yè)防火墻與其交換數(shù)據(jù)的既是合作伙伴又是競(jìng)爭(zhēng)對(duì)手。
  .NET 方法能更好地啟用這種能力,它使得編寫能夠在任意時(shí)間、任意地點(diǎn)和任意設(shè)備上安全地彼此連接和互操作的系統(tǒng)變得非常簡(jiǎn)單。實(shí)現(xiàn)這一點(diǎn)的核心技術(shù)是 xml Web Service。這項(xiàng)技術(shù)既是一種方法,也是在不同機(jī)器、不同網(wǎng)絡(luò)及不同操作系統(tǒng)的組件之間傳遞信息的傳輸層。
  XML Web Service 得到了廣泛的支持。許多公司已經(jīng)使用 XML Web Service 與合作伙伴連接。Microsoft 正在所有產(chǎn)品上加大對(duì) XML Web Service 的支持。從開(kāi)發(fā)人員的角度看,.NET 使得利用 Microsoft Visual Studio .NET、.NET Framework 以及 XML Web Service 編寫彼此連接的系統(tǒng)變得非常簡(jiǎn)單。
  .NET Framework
  .NET 絕不僅僅是 XML Web Service。.NET 的核心是 .NET Framework,它由公共語(yǔ)言運(yùn)行庫(kù)和類庫(kù)組成。這兩個(gè)組件為構(gòu)建 .NET 應(yīng)用程序提供了執(zhí)行引擎和編程 API。
  為 .NET 編譯的應(yīng)用程序不是被直接編譯成本機(jī)代碼,而是被編譯成一種稱為 Microsoft 中間語(yǔ)言 (MSIL) 的中間語(yǔ)言。當(dāng)首次運(yùn)行一個(gè)應(yīng)用程序時(shí),公共語(yǔ)言運(yùn)行庫(kù)實(shí)時(shí)編譯器在程序執(zhí)行前將 MSIL 代碼編譯成本機(jī)代碼。公共語(yǔ)言運(yùn)行庫(kù)不是一個(gè)簡(jiǎn)單的 JIT 編譯器,它還負(fù)責(zé)提供內(nèi)存回收、異常處理、安全服務(wù)、運(yùn)行時(shí)類型安全檢查等底層執(zhí)行服務(wù)。由于公共語(yǔ)言運(yùn)行庫(kù)在治理執(zhí)行方面的作用,因此有時(shí)將以 .NET Framework 為目標(biāo)的程序稱為“托管”應(yīng)用程序。
  .NET Framework 是一組類,它們用于構(gòu)建在公共語(yǔ)言運(yùn)行庫(kù)上運(yùn)行的應(yīng)用程序。這些類庫(kù)為包括數(shù)據(jù)訪問(wèn)、安全性、文件 IO、XML 操作、消息傳送、類反射、XML Web Service、asp.net 和 Microsoft Windows 服務(wù)在內(nèi)的各種任務(wù)提供強(qiáng)大的支持。
  也許 .NET 最獨(dú)特的屬性是它的多語(yǔ)言支持。Microsoft 已經(jīng)為 .NET Framework 發(fā)布了四種商業(yè)語(yǔ)言:Visual C#? .NET、Visual Basic? .NET、C++ 托管擴(kuò)展及 Visual J# .NET。許多其他兼容 .NET 的語(yǔ)言也正在開(kāi)發(fā)中,其中包括 Perl、Python 及 COBOL。
  為了幫助創(chuàng)建兼容 .NET Framework 的語(yǔ)言,Microsoft 設(shè)計(jì)了公共語(yǔ)言規(guī)范 (CLS)。每種語(yǔ)言要使用 .NET Framework 和公共語(yǔ)言運(yùn)行庫(kù),以及與用其他語(yǔ)言編寫的組件進(jìn)行互操作,就必須提供 CLS 所描述的功能。假如一種語(yǔ)言實(shí)現(xiàn)了必需的功能,那么它就被稱為兼容 .NET。每種兼容 .NET 的語(yǔ)言都支持相同的數(shù)據(jù)類型,使用相同的 .NET Framework 類,編譯為相同的 MSIL,并且使用相同的公共語(yǔ)言運(yùn)行庫(kù)治理執(zhí)行過(guò)程。因此,各種兼容 .NET 的語(yǔ)言之間沒(méi)有優(yōu)劣之別。開(kāi)發(fā)人員可以自由地為特定的組件選擇最好的語(yǔ)言同時(shí)又不損失該平臺(tái)的能力和自由度。另外,使用一種語(yǔ)言編寫的組件也能夠很輕易地與用另外一種語(yǔ)言編寫的組件進(jìn)行互操作。例如,您可以用 C# 編寫一個(gè)從用 Visual Basic 編寫的基類繼續(xù)而來(lái)的類。CLS 已經(jīng)被提交給 ECMA 進(jìn)行標(biāo)準(zhǔn)化,這鼓勵(lì)許多語(yǔ)言開(kāi)發(fā)人員為許多語(yǔ)言創(chuàng)建兼容 .NET 的版本。在撰寫本文時(shí)有 20 多種兼容 .NET 的語(yǔ)言正在開(kāi)發(fā)中。
  圖 1 展示了在操作系統(tǒng)之上的各種 .NET 組件。.NET Framework 由四個(gè)藍(lán)框組成,這些藍(lán)框分別代表 ASP.Net、Windows 窗體、ADO.NET 和 XML 以及子組件。
   將 Java 應(yīng)用程序遷移到 .NET(1)
  Visual Studio .NET
  為了能夠進(jìn)行 .NET 開(kāi)發(fā),Microsoft 重新編寫了其開(kāi)發(fā)工具并重新將其組合為 Visual Studio .NET。Visual Studio .NET 支持使用一種或多種語(yǔ)言開(kāi)發(fā)應(yīng)用程序。設(shè)計(jì)、開(kāi)發(fā)、調(diào)試和部署 .NET 組件均使用同一個(gè)集成開(kāi)發(fā)環(huán)境 (IDE)。
  這個(gè)開(kāi)發(fā)環(huán)境支持控制臺(tái)應(yīng)用程序、Windows 應(yīng)用程序、DLL、Web 應(yīng)用程序、XML Web Service 以及手持設(shè)備應(yīng)用程序的開(kāi)發(fā)。該開(kāi)發(fā)環(huán)境提供了一些獨(dú)特的高生產(chǎn)率功能:智能感知;針對(duì) Web 窗體、Windows 窗體、XML 架構(gòu)及數(shù)據(jù)的可視化設(shè)計(jì)器;可以無(wú)縫地從用一種語(yǔ)言編寫的代碼轉(zhuǎn)到用另一種語(yǔ)言編寫的代碼的跨語(yǔ)言調(diào)試器;與 .NET Framework 的緊密集成;能在鍵入時(shí)持續(xù)提供上下文相關(guān)幫助的動(dòng)態(tài)幫助;顯示編譯器錯(cuò)誤以及任務(wù)的任務(wù)列表;體系結(jié)構(gòu)設(shè)計(jì)功能,例如 Visio 集成,以及用于可視化訪問(wèn)數(shù)據(jù)庫(kù)的服務(wù)器資源治理器、Windows 服務(wù)、性能計(jì)數(shù)器和服務(wù)器端應(yīng)用程序組件。
  Microsoft Visual Studio .NET 是一個(gè)獲獎(jiǎng)的開(kāi)發(fā)工具。到撰寫本文時(shí),Visual Studio .NET 已經(jīng)獲得了多種獎(jiǎng)項(xiàng),其中包括兩次 2002 SD Magazine 效率獎(jiǎng)和 PC Magazine 的 2001 年度卓越技術(shù)獎(jiǎng)(盡管該產(chǎn)品當(dāng)時(shí)仍處于 Beta 階段)。
  比較 .NET 和 Java
  在經(jīng)驗(yàn)豐富的 Java 開(kāi)發(fā)人員看來(lái),.NET 可能與 Java 平臺(tái)很相似,它們都提供了一種創(chuàng)建應(yīng)用程序的結(jié)構(gòu)化方法,都有編譯為中間代碼的語(yǔ)言,都為應(yīng)用程序開(kāi)發(fā)提供了一個(gè)大型 API 庫(kù)。但實(shí)際上,.NET 的核心有一套與 Java 平臺(tái)不同的目標(biāo)。
  從概念上講,Java 是兩樣?xùn)|西:Java 平臺(tái)(運(yùn)行時(shí)和 API)和 Java 語(yǔ)言。Java 平臺(tái)的用途是支持用 Java 語(yǔ)言編寫并被編譯為 Java 字節(jié)碼的應(yīng)用程序。盡管進(jìn)行了許多試圖將其他語(yǔ)言編譯為 Java 字節(jié)碼的工作,但是這些工作大部分都是學(xué)術(shù)活動(dòng)。Java 的理想目標(biāo)一直是“在多種平臺(tái)上使用一種語(yǔ)言”。
  .NET 也是兩樣?xùn)|西:.NET Framework(運(yùn)行時(shí)和 API)和大量支持它的編程語(yǔ)言。.NET Framework 的用途是支持用任一種語(yǔ)言編寫并被編譯為 MSIL 的應(yīng)用程序。.NET 的目標(biāo)是“多種語(yǔ)言共享一種平臺(tái)”。
  .NET 與 Java 相比的優(yōu)點(diǎn)
  與 Java 相比,除了語(yǔ)言自由度之外,.NET 還有許多其他優(yōu)點(diǎn)。下面總結(jié)了一些最重要的優(yōu)點(diǎn):
  框架類
  由于 Java 是多平臺(tái)的,因此傳統(tǒng)上其框架類被局限于那些所有平臺(tái)都提供的類。這影響了類的范圍和豐富度:類的范圍被局限于可用計(jì)算機(jī)和操作系統(tǒng)最通用的類。另外還影響了類本身的豐富度。內(nèi)建 Java 類一般都非常簡(jiǎn)單,開(kāi)發(fā)人員經(jīng)常在它們上面構(gòu)建自己的框架或不得不尋找 XML 文件語(yǔ)法分析等第三方框架。在發(fā)行 JDK 1.4 之前必須使用第三方庫(kù)或編寫自己的語(yǔ)法分析程序來(lái)對(duì) Java 中的 XML 文件進(jìn)行語(yǔ)法分析。編寫自己的語(yǔ)法分析程序通常需要 100 多行代碼。
  
  .NET Framework 構(gòu)建于 Windows 平臺(tái)之上。還有一個(gè)用于 FreeBSD 的公共語(yǔ)言運(yùn)行庫(kù)和 .NET Framework 類庫(kù)版本。這些類包括了該平臺(tái)上的所有框架類。另外,這些類也比 Java 所能提供的類更豐富。.NET 提供了一個(gè)編程框架而不是一個(gè)構(gòu)建編程框架的基礎(chǔ)。
  
  下面的 C# 例子說(shuō)明在 .NET 中如何對(duì) XML 文件進(jìn)行語(yǔ)法分析。注重,.NET Framework 中已經(jīng)提供了輔助類。這使得代碼編寫非常簡(jiǎn)單:
  
  XmlTextReader myXmlTextReader = new XmlTextReader ("textToValidate.xml");
  XmlValidatingReader myReader = new XmlValidatingReader(myXmlTextReader);
  myReader.Schemas.Add(myXmlSchemaCollection);
  myReader.ValidationEventHandler += new ValidationEventHandler (this.ValidationFailureHandler);
  // 讀取 XML 數(shù)據(jù)。
  while (myReader.Read()){}
   .NET Framework 的保真度比 Java 平臺(tái)高。.NET 程序可以使用 Windows 的所有功能,而不象 Java 那樣只能使用 Windows 最通用的功能。
  “……真正的底線是:.NET 方法意味著 Microsoft 提供了 90% 以上開(kāi)發(fā)人員都可能需要的符合標(biāo)準(zhǔn)的工具,而 Java 方法仍然意味著從各種來(lái)源搜集而來(lái)的各種碎片組合成的一個(gè)解決方案。”
  一次編寫,到處調(diào)試
  盡管 Java 的“一次編寫,到處運(yùn)行”的理想很有吸引力,但是現(xiàn)在編寫的大多數(shù)應(yīng)用程序都僅針對(duì)一個(gè)操作系統(tǒng)。造成這種情況的技術(shù)原因有兩個(gè):由于 Java 框架在范圍和豐富度上受到局限,因此開(kāi)發(fā)人員經(jīng)常使用專有類來(lái)訪問(wèn)目標(biāo)平臺(tái)的可用功能。第二,由于各種 Java 執(zhí)行程序之間無(wú)法消除的不兼容性繼續(xù)給真正的跨平臺(tái)工作帶來(lái)困難,因此開(kāi)發(fā)人員必須在想要支持的所有平臺(tái)上測(cè)試代碼。因此,有些開(kāi)發(fā)人員半開(kāi)玩笑地將 Java 稱為“一次編寫,到處調(diào)試”的平臺(tái)。
  安全性
  .NET 的安全功能更豐富。除了加密 API、安全 cookie 和身份驗(yàn)證之外,.NET 還是一個(gè)能夠根據(jù)代碼來(lái)源給不同用戶群分配不同權(quán)限等級(jí)的豐富的可擴(kuò)展機(jī)制。例如,所有來(lái)自 Microsoft 的代碼都被看作是安全的。可以答應(yīng)或禁止所有來(lái)自特定 URL 的代碼讀/寫臨時(shí)目錄或屏幕等特定資源。另外,應(yīng)用程序可以被標(biāo)志為需要某種權(quán)限(例如需要訪問(wèn)文件系統(tǒng))。假如沒(méi)有這些權(quán)限,那么該應(yīng)用程序就不會(huì)被加載。由于安全檢查是在加載時(shí)進(jìn)行的,因此開(kāi)發(fā)人員不必在整個(gè)應(yīng)用程序中編寫安全失敗檢查邏輯。這一點(diǎn)是通過(guò)一項(xiàng)稱為“代碼訪問(wèn)安全”的新技術(shù)治理的,這種技術(shù)對(duì)從 Internet 或本地機(jī)器加載的代碼都有效。
  版本控制
  .NET Framework 有一個(gè)比 Java 更強(qiáng)大的版本控制系統(tǒng)。在 Java 中

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 芦溪县| 准格尔旗| 南陵县| 民和| 阜康市| 福海县| 望都县| 天峨县| 南雄市| 烟台市| 柳河县| 余江县| 门源| 宝清县| 大英县| 衡东县| 乌恰县| 逊克县| 永川市| 从江县| 鄄城县| 洞口县| 广平县| 永胜县| 兴安县| 安宁市| 雷波县| 惠东县| 伊春市| 和田市| 广汉市| 武义县| 桦南县| 德庆县| 永靖县| 响水县| 尉氏县| 通化县| 阿拉善右旗| 两当县| 开平市|