.NET vs Java 技術對照
部分內容由 LLM 生成,尚未經過人工驗證。
技術全覽
| 分類 | .NET 技術 | Java 對應 | Web Server |
|---|---|---|---|
| 桌面(舊) | WinForms | Swing | ❌ |
| 桌面(現代) | WPF | JavaFX | ❌ |
| Web(舊) | WebForms | JSP + Servlet | ✅ IIS / Tomcat |
| Web MVC | ASP.NET MVC | Spring MVC | ✅ IIS / Tomcat |
編譯輸出與執行方式
| 分類 | 輸出格式 | 執行方式 | 架構類型 |
|---|---|---|---|
| WinForms / WPF | .exe + .dll | 本機執行 | Client App |
| Swing / JavaFX | .jar | java -jar | Client App |
| WebForms / ASP.NET MVC | .dll + .aspx / .dll | IIS 啟動 | Server-side Web |
| JSP / Spring MVC | .war | Tomcat 啟動 | Server-side Web |
桌面應用部署對照
| 項目 | .NET (WinForms/WPF) | Java (Swing/JavaFX) |
|---|---|---|
| 執行 | app.exe | java -jar app.jar |
| 打包 | MSI / MSIX / ClickOnce | jpackage / installer |
| 單檔發佈 | ✅ 支援 | ❌ |
| 更新方式 | 重新發佈新版 | 重新發佈新版 |
| 需要 Web Server | ❌ | ❌ |
傳統 Web 部署對照
| 項目 | .NET (WebForms/MVC) | Java (JSP/Spring MVC) |
|---|---|---|
| Web Server | IIS | Tomcat / Jetty |
| 部署單位 | .dll + .aspx | .war |
| 部署指令 | Publish → Web Deploy / IIS 目錄 | cp app.war /tomcat/webapps/ |
| 請求流程 | Browser → IIS → ASP.NET → DLL | Browser → Tomcat → Servlet → Class |
舊世界架構特性
| 特性 | .NET Framework(舊) | Java 傳統 |
|---|---|---|
| Server 綁定 | IIS 綁死 | Tomcat 綁死 |
| 部署模式 | Server-based | Server-based |
| 容器化 | 困難 | 普通 |
| 微服務支援 | ❌ | ⚠️ |
Legacy 系統快速識別
| 特徵 | .NET Legacy | Java Legacy |
|---|---|---|
| 關鍵檔案 | .aspx | WEB-INF/web.xml |
| 框架 | WebForms | JSP / Servlet |
| 入口 | .aspx 頁面 | web.xml 設定 |
| 程式進入點 | Page_Load() | doGet() / doPost() |