不使用自動遷移功能的技術
Visual J#
NET 和 Java Language Conversion Assistant(Java 語言轉換助手)的目標都是 Java 語言
JDK
庫以及 Visual J++
附帶的 Microsoft 庫
有些應用程序還使用 J
EE
J
SE 等新 Java 版本的技術
這些應用程序在遷移到
NET 時常常需要進行一些額外修改
這些修改通常非常簡單
遷移後
應用程序的大部分(業務邏輯和 JDK
類)都會得到完美的遷移
在遷移後的代碼中
不支持的技術將保留不變
您必須使用類似的
NET 技術替換未遷移的 Java 技術以完成遷移
由於
NET 提供了一套比 Java 更豐富的類
因此在進行技術替換時您常常可以進行一些重大改進
Swing 窗體軟件包的遷移是一個很好的例子
遷移 Swing
Java 包含兩個競爭的窗體軟件包
Abstract Windowing Toolkit (AWT) 和 Swing
JDK
提供 AWT
Visual J#
NET 支持 AWT
可以通過 Java Language Conversion Assistant(Java 語言轉換助手)將 AWT 轉換為 Windows 窗體
JDK
可以使用一個附加的 Swing 庫
這個庫是 J
SE 和 J
EE 類庫的一部分
Swing 窗體布局不能自動遷移到
NET
在遷移過程中
代碼中的 Javax
Swing 類保留不變
您必須用 Windows 窗體類來替換它
為此
請在被遷移的應用程序中對各 Swing 窗體執行以下步驟
向被遷移應用程序中添加一個新的 Windows 窗體
向窗體中添加控件以獲得與原有 Swing 窗體相同的布局
將事件邏輯代碼從被遷移的 Swing 窗體復制到新的 Windows 窗體中的事件處理程序
從應用程序中刪除被遷移的 Swing 窗體
圖
在 Visual Studio 中重畫 Swing 窗體
Windows 窗體提供了比 AWT 或 Swing 更豐富的環境
並且幾乎在所有方面都包含 Java 平台中所能找到的功能的超集
例如
Windows 窗體使得控制窗體布局更加容易
Java 中的布局管理器常常會帶來困難
獲得所需的窗體布局需要了解布局管理器
並且即使是最基本的布局都需要編寫許多代碼
Windows 窗體通過為所有控件提供絕對定位而簡化了窗體管理
另外
Windows 窗體可以通過靠接和錨定輕易地調整窗體大小
靠接規定一個控件應該始終占據屏幕的特定區域
錨定將窗體控件的一個或多個角
釘住
調整窗體大小時使用這些
釘
確定控件的位置
使用靠接和錨定通常可以徹底消除復雜的窗體大小調整代碼
將 Swing 窗體遷移到
NET 不僅非常簡單
而且還可以利用
NET Framework 更豐富的類改善應用程序
遷移 Java Server Page
Java Server Page (JSP) 和 Servlet 都是創建支持 Java 的 Web 頁的技術
JSP 提供了與 ASP 相似的腳本嵌入式 HTML 體系結構
Servlet 為沒有 HTML 代碼的編譯後 JSP 頁提供了一個機制
兩項技術都使用 Java 代碼
都為 Web 頁提供基於事件的編程
JSP 和 Servlet 可以遷移到 ASP
NET
這麼做有很多好處
ASP
NET 是一種更加強大的技術
它比 JSP
PHP(PHP 超文本預處理器)
ASP 及其他解釋型腳本嵌入式 HTML 體系結構具有更高的可伸縮性和性能
但是
在撰寫本文時還沒有將 JSP 遷移到 ASP
NET 的自動系統
Microsoft 已經宣布在
年下半年推出將 JSP 轉換為 C# ASP
NET 的 Java Language Conversion Assistant(Java 語言轉換助手)擴展
同時也在考慮今後推出 JSP 到 Visual J#
NET ASP
NET 的轉換
演練
本節演練從 Visual J++
到 Visual J#
NET 的升級和從 Java 到 C# 的轉換
兩個演練的目的都是介紹遷移技術
顯然
兩種遷移都遠遠不止這裡介紹的內容
另外
可以使用任意一種遷移技術很好地遷移這兩個應用程序示例
如何將 Visual J++
項目升級到 Visual J#
NET
本節將一步步演練 Visual J++
應用程序升級到 Visual J#
NET 和
NET 的過程
要升級的應用程序是 MDIWordPad 項目
這是 Visual J++
附帶的 MSDN 示例
可以作為 Visual J++
產品示例的一部分下載
此應用程序的功能與 WordPad 相似
它提供打開和編輯多個文本文件的功能
它還提供簡單的格式化功能
這些功能是通過菜單或工具欄提供的
圖
是 MDIWordpad 應用程序的 Visual J++ 版本
圖
用 J++ 編寫的應用程序 MDIWordPad
為了得到最佳結果
應該使用 Visual J#
NET Upgrade Wizard(Visual J#
NET 升級向導)將 Visual J++
項目升級到 Visual J#
NET
請按以下步驟進行升級
在 Visual Studio
NET 中
從菜單中選擇 File(文件)
再選擇 Open(打開)
然後選擇 Project(項目)
找到 MDIWordPad
vjp 項目文件的位置並單擊 Open(打開)
Visual Studio
NET 檢測到您要打開的文件是 Visual J++
項目並打開 Visual J#
NET Upgrade Wizard(Visual J#
NET 升級向導)
閱讀完介紹文字後
單擊下一步進入向導的第二頁
此頁面要求提供您正在升級的項目的類型信息
MDIWordPad 示例是一個 Windows 應用程序
因此默認值是正確的
如果您要升級的項目是一個控制台應用程序或類庫
您就應該選擇一個選項
確認選定了 Windows 應用程序後
單擊下一步進入升級向導的下一頁
圖
Visual J#
NET Upgrade Wizard(Visual J#
NET 升級向導)提示選擇項目目標類型
對於使用 Active X 控件或其他 COM 引用的應用程序
您可以在這一頁上明確添加對這些組件的引用
添加這些引用可以幫助升級向導找到項目中使用的附加類型
雖然即使您不在這裡指定它們
升級向導也可以找到並將這些引用添加到項目中
但是現在添加它們可以加快升級速度
MDIWordPad 沒有使用任何外部組件
因此請單擊 Next(下一步)而不需要做任何改動
現在
升級向導開始評估項目並將項目文件和引用升級到 Visual J#
NET
會顯示一個狀態條和變化的文本
提示向導目前的進度
處理結束之後
升級向導將自動進入最後一頁
在向導的最後一頁中
您可以使用一個復選框選擇是否查看項目升級報告
單擊 Finish(完成)顯示升級報告
升級報告列出了有關應用程序及升級進程的信息
如果在項目轉換中發現了問題或丟失的引用
它們將在這裡列出
該報告中還包括有關升級向導向新解決方案中添加的文件的信息
在 Solution Explorer(解決方案資源管理器)中雙擊文件 MDIWordPad
java 以便在 Code Editor(代碼編輯器)中將其打開
通過浏覽該文件
您會發現源代碼看起來與原先完全相同
事實上
將一個項目升級到 Visual J#
NET 並不要求任何形式的源代碼修改
所要求修改的只是解決方案
項目和資源文件
源代碼文件本身的內容保持不變
按 F
運行升級後的應用程序
用程序的表現沒有變化
您可以通過編輯一些文本來驗證這一點
應用程序的操作與升級前完全相同
只是它現在是運行在
NET 上
圖
MDIWordPad 的升級版本
運行在 Visual Studio
NET 上
使用
NET
將應用程序升級到 Visual J#
NET 是一個非常簡單的過程
升級向導會幫助您提供順利升級所需的信息
並且升級後項目的源代碼沒有任何變化
通過 Visual J#
NET 提供的工具升級到
NET 是一個極其快速和簡單的過程
由於二者有相似的語言和類庫
因此升級到 Visual J#
NET 是將 J++ 項目遷移到
NET 的最快方法
如何將 Java 項目轉換到 C#
本節將一步步演練將一個 Visual J++
應用程序轉換到 C# 和
NET 的過程
要轉換的應用程序是一個稱為 Island Book Sales 的簡單的最終用戶購買程序
該應用程序演示轉換的各個方面(AWT 到 Windows 窗體
JDBC 到 ADO
NET
Java 到 C#)
它還演示轉換後需要解決的一些問題
Island Book Sales 有兩個窗體
第一個窗體向用戶展示可供出售的書的列表
所提供的書包含在一個 Access 數據庫中
可使用 JDBC 讀取該數據庫
用戶可以選擇要購買的物品並將它放入購物車中
用戶的購物車顯示在第二個窗體中
該窗體使用戶能夠取消或購買購物車中的物品
圖
是運行中的應用程序
注意
您必須將數據庫 bookstore
mdb 注冊為 ODBC DSN 才能運行 Bookstore 應用程序
圖
Island Book Sales 應用程序
以下是將應用程序轉換到 C# 和
NET 所需的步驟
在 Visual Studio 中的 File(文件)菜單上單擊 Open(打開)
然後單擊 Convert(轉換)
這將啟動 Conversion(轉換)對話框
選定 Java Language Conversion Assistant(Java 語言轉換助手)圖標後單擊 OK(確定)
啟動 Java Language Conversion Assistant(Java 語言轉換助手)
雖然原應用程序是使用 Visual J++ 編寫的
但本例中將它視作一個基於目錄的轉換
在向導的第二頁中選擇進行基於目錄的轉換選項
然後單擊 Next(下一步)
在 Java Language Conversion Assistant(Java 語言轉換助手)的第三頁中
選擇包含應用程序源代碼的目錄
然後單擊 Next(下一步)
向導的第四頁要求您輸入一些有關應用程序的信息
鍵入
Bookstore
作為項目名
其他兩個選項使用默認值
然後單擊 Next(下一步)
圖
提供有關您的項目的信息
現在
Java Language Conversion Assistant(Java 語言轉換助手)詢問將轉換後的項目文件寫到哪裡
選擇要使用的目錄後單擊 Next(下一步)
必要時讓 Java Language Conversion Assistant(Java
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26715.html