2008-11-05 68 views
3

我有一個非常大的VB6代碼庫,擁有大量的第三方控件。想要將其移至.NET。重寫它是毫無疑問的 - 客戶認爲花錢獲得同樣的東西沒有任何價值。使用內置的升級嚮導轉移到.NET基本上是非啓動器。將大型VB6應用程序升級到.NET。關於VB遷移合作伙伴的意見

有沒有人試過VB遷移合作伙伴http://www.vbmigration.com/ 如果是這樣,有什麼經驗?

+0

你有沒有使用遷移合作伙伴?我們對這個新問題的任何經驗感興趣。 http://stackoverflow.com/questions/718780/conversion-tool-comparisons-for-visual-basic-6-0/719379#719379 – MarkJ 2009-04-06 08:50:00

回答

4

我是VB遷移合作伙伴工具的主要作者(在www.vbmigration.com功能)。總的來說,我們很快就會迴應來自現有或潛在客戶的所有請求。如果發現很難與我們聯繫,我很抱歉。請再試一次​​

我們相信我們的工具能夠處理非常大的VB6應用程序。實際上,我們的大多數客戶正在使用它來遷移範圍在200-500K行代碼中的應用程序。目前,我們正在研究一個超過1300萬個LOC的「怪物應用程序」,這些應用程序分爲1200多個項目。

正如RSConley所建議的,如果您的應用程序可以部分遷移和測試,那麼任何轉換工具都可以發揮最佳效果。我們支持VB6項目組(在單一操作中進行轉換),批量轉換,並且我們支持與源代碼控制工具的集成。 (例如,我們保留上一代的解決方案/項目指導,以便您的SC工具知道如何處理新生成的代碼。)

最後,我們即將發佈1.11版本,該版本可以生成.NET DLL與原始的COM DLL是二進制兼容的,這樣你就可以在你的應用的所有其他部分使用最基本的組件的時候遷移一個組件,而不必重新編譯它們。 (據我們所知,VB遷移合作伙伴是具有此功能的唯一工具。)

弗朗切斯科Balena - VB遷移合作伙伴團隊

5

我從來沒有與VB的移植傢伙合作過,但是我強烈建議不要將代碼遷移到.NET。它確實沒有增加價值。

我曾經很成功的做法是在.NET中添加新的功能,並通過VB6應用程序的COM互操作獲取它。這非常輕鬆,是在傳統應用程序中使用.NET的好方法。

...我的2美分

4

簡短的回答是,VB6和VB.NET(因而C#)是分開的,但相關的語言。這兩個平臺之間有許多微妙的(整數是Int32,而不是Int16)和總體差異(圖形,表單和打印引擎)。您需要將此視爲轉換爲完全不同的平臺。

我發現各種遷移工具除了某些特定情況外不值得付出努力。例如一個使用水晶報表的數據庫前端。

至於遷移的價值。只有你和你的公司可以做出這樣的決定。在PC上保持足夠長的應用程序,最終你必須認真考慮它。主要是利用一種全新的技術(例如從DOS切換到Windows)。我的應用程序始於1985年,20年的歷史中有三次轉換(工作站到DOS,DOS到Windows 3.X,Windows 3.X到32位Windows和麪向對象的框架)。

而我們正在考慮.NET有幾個原因。 VB.NET是一種相關語言,泛型和繼承允許我們的許多樣板代碼壓縮成幾行。一個更豐富的圖形API,等等。當然,轉換總是令人頭疼,對一切都有所貶低。然而,當我們切換到面向對象框架時,我們的應用程序變成了一個通過COM鏈接到多個DLL的小EXE。由於我們的應用程序結構,我們具有轉換和測試零碎的奢侈。

我強烈建議,如果您打算將您在VB6中的應用程序重構爲可轉換和部分測試的結構。您將可以使用Active DLL來完成此操作。如果你試圖一次性做到這一點,那麼你會發現80%的項目會很快,而最後的20%將是純粹的地獄。通過零碎轉換,您將在每一步都留下可用的軟件。

的問題進行了探索更全面這裏

How to Switch a Large App from VB6 to VB.NET

相關問題