簡體   English   中英

遷移VB6應用程序

[英]Migration of a VB6 application

VB6應用程序與.NET平台的結合幾乎就像重寫一樣,無論是VB.NET還是C#。 與.NET平台相比,您是否認為在Java平台上進行此操作需要更多的努力,因為它無論如何都是重寫? 請分享你的想法!

沒有冒犯,但你錯了。 移植到.NET是通常遠比重寫容易。

以下是Microsoft UK的官方建議:

對.NET執行完全重寫要花費更多,並且難以做好[轉換] ...我們只會在少數情況下推薦這種方法。

來自微軟咨詢重寫的人的博客文章

我在.NET早期工作的許多公司首先考慮的是重寫,部分原因是他們在遷移到.NET的同時強烈希望改進底層架構和代碼結構。 不幸的是,許多項目遇到了困難,有些項目從未完成。 他們試圖解決的問題太大了

我按此順序推薦以下兩個步驟。

  1. 寫下遷移或重寫的原因。 它會帶來什么好處? 好處可能只是為了讓開發團隊滿意 - 這可能是一個足夠好的理由,我不知道。 確保您知道,並且您的經理/用戶同意。
  2. 通過截屏視頻查看Microsoft UK 建議 ,解釋.Net遷移的5個基本選項。 決定哪個是最好的。 它可能是重寫,但睜着眼睛進入它。

回答你的實際問題:在.Net或Java中,完全重寫會更容易嗎? 主要取決於你的團隊最了解哪一個。 它還取決於應用程序是否與COM交互,就像SLaks所說的那樣。

重寫VB6應用程序的努力不僅僅是您要針對哪種語言的問題。 VB應用程序通常依賴於COM對象和某些特定於VB的庫方法,這些方法可能沒有Java中的等價物 - 但可能在.NET中具有一些可移植性。

除非您願意放棄項目的所有依賴性,否則您可能會發現.NET更容易重寫 ,特別是如果您需要保留現有應用程序的某些行為,這些行為源自庫或其他依賴項。

另一個考慮因素是您的團隊最熟悉的平台 - 如果您擁有大量的Java專業知識但很少或沒有.NET專業知識,那么Java可能是您的不錯選擇。

有些工具可以從VB6遷移到VB .Net,包括Visual Studio內置的工具。 此工具將VB6遷移到C#。 無論使用什么工具,您仍然需要對工具輸出的代碼進行大量手動工作,但這可能比完整的Java重寫工作少。

根據您現有應用程序的體系結構以及代碼的結構,您可能認為最好完全重新設計和重寫代碼,在這種情況下,.Net和java之間可能沒有太多選擇。

重要的是不僅要減少遷移過程中的總工作量,還要減少遷移后的維護成本。 許多因素推動了TCO,但在所有條件相同的情況下,我認為.NET工具,社區,框架和C#語言在開發人員生產力,操作可管理性和性能方面達到或超過Java - 假設您的目標是Windows操作系統。

我不認為保持COM的容易性也應該是決定因素。 事實上,我認為將VB6遷移到.NET,但是當你不必首先打破VB6遷移的關鍵目的時就保持COM:通過轉移到一個支持良好且可行的平台來降低開發成本和風險。 我會告訴你為什么:

  • 與VB6一起使用的大多數流行的COM庫和控件多年來都沒有發展過。 許多較小的供應商已經消失,或者如果他們仍在支持他們的產品,他們現在也提供新的和改進的.NET版本。

  • 遷移后使用舊COM意味着在調試,構建和部署方面更加復雜。 還要注意COM組件並不真正“說”.NET(即它們不使用.NET類型和約定),因此它們與.NET的使用通常會導致編碼和設計的復雜性增加。

  • 這個規則仍有一些缺陷和例外,.NET替換並不總是最好的選擇,但一般來說,遷移團隊將能夠為他們使用的幾乎每個COM組件找到至少一個.NET替換選項。 花時間仔細評估,選擇並升級到其中一個選項將在遷移后獲得回報。

  • 您不希望互換任何您計划遷移的VB6。 干預您自己的代碼將導致更長,更復雜的轉換,並且通常需要對已遷移的代碼進行反向跟蹤和重新測試/重新測試。 顯然,這不是最有效和可理解的升級途徑。

還有一點就是必須“對輸出進行大量的手工操作”。 Great Migrations產品是一種新的可編程遷移工具。 它旨在幫助遷移團隊逐步提高生成代碼的質量,從而減少完成遷移項目所需的手動工作。 這包括使翻譯更正確,處理復雜的多VBP遷移,以及自動重構VB6 / COM代碼以使用.NET組件。 如果VB6代碼庫非常大,頻繁更改,並且在遷移期間進行了重新設計和清理,則這些功能特別有用。 這是一種敏捷的遷移方法,我們稱之為工具輔助重寫。

免責聲明:我為Great Migrations工作。

如果應用程序使用COM,那么在.Net中重寫它比在Java中更容易。 否則,移植到.Net可能會更容易一些。

有關更具體的答案,請提供有關您的申請的更多詳細信息。

您也可以使用Jabaco它是一個Java字節碼編譯器,它有自己的IDE和語法非常類似於VB6(幾乎相同)。
您可以在以下位置找到更多信息
http://www.jabaco.org/
http://www.jabaco.org/board/

使用像ArtInSoft這樣的遷移工具將其遷移到.NET。

您可以使用內置的VS遷移將VB 6應用程序遷移到VB.Net。 試着看看這對你有幫助嗎。 如果您正在考慮將VB 6遷移到C#,那么我還會推薦ScaleOvenStove用戶推薦的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM