2012-09-16 70 views
1

我有一個非常古老的Visual Basic(.net 1.1)項目,我願意繼續開發,但不是在Visual Basic中,而是在C#中。 有什麼辦法將它轉換爲C#?我能想到的兩個選項:將Visual Basic(.net 1.1)項目轉換爲C#

  1. 使用源代碼轉換器可在網上(但他們失敗了大部分的時間,而該項目是大)
  2. 它和反編譯它來編譯C#(雖然我會失去評論和編注標記)

什麼是建議做這種轉換的方法?

+0

選項2,舉手。評論可以被複制和粘貼。 – 2012-09-16 18:26:05

回答

3

鑑於.NET自.NET 1.1以來發生了相當大的變化 - 特別是有更多的庫可用,這將改變你將如何處理各種任務 - 我很想重新開始。鑑於您已經在改變.NET版本和語言,即使只是爲了獲得一個直接的端口,您也會做很多工作......所以爲什麼不從您現有的項目中吸取經驗教訓並投資創造一個新的?

(我知道的Joel's blog post on rewriting,但如果你已經決定,你將它轉換成另一種語言要僞重寫,我覺得有些疼痛是不可避免的反正。)

+0

您會如何看待Joel的建議?通過引用舊的VB.NET項目來創建一個新的C#項目,並逐漸移動代碼? – phoog

+0

@phoog:說實話,這取決於項目。在某些情況下,這將是偉大的;在其他情況下,最終可能會迫使你堅持做出錯誤的決定。 –

1

井寫的VB 1.1,在線轉換器應該做一個體面的工作。我會嘗試批量轉換項目的文件,然後手動瀏覽它們以查找明顯的錯誤。

在線轉換器更傾向於扼殺.NET新版本中引入的功能(出於很好的理由 - 這些功能會導致編譯過程中出現更基本的代碼轉換,即它們會使語言更難)。編輯:但是Jon說的有好處:.NET 1.1與現代.NET差別很大,並且自動轉換不會幫助您將現代語言和CLR特性引入代碼。

0

剛剛重讀Joel Skeet提到的Joel的帖子,我會說接受他的建議。編寫一個引用舊的VB.NET項目的新C#項目,並將代碼從舊項目中逐個移動到新項目中,一次一個類。每次您需要修改某些內容時,請將相關代碼從舊項目移至新項目。

這應該有一定的優勢:

的作品,並不需要被感動可以保持不變
  1. 舊代碼。
  2. 您甚至無法在運行程序之前徹底重寫數週或數月的繁瑣代碼翻譯,從而避免所需的開銷。
+0

它規定了轉換順序,請注意,如果類型X指向Y類型,則必須先轉換類型Y *,或者同時轉換類型Y *。它也採用了現有的設計,正如我所說,這可能不合適。 –

相關問題