我不認爲這是可能的,但我只是跟一個說她以前做過的同事說話。她在拉我的鏈嗎?是否有可能將WinForm轉換爲.NET中的WebForm?
回答
這不是您可以自動執行的操作。
訣竅是,在這兩種WinForms和web表單一個形式是通過一個普通的舊類表示。但是,每當您在asp.net webforms中爲您的表單處理事件時,您都正在使用該類的全新實例。微軟爲儘可能多地嘗試掩蓋這個問題付出了很大的麻煩,但最終以與Winform相同的方式來考慮網絡表單並不是一個好主意。
所以你絕對可以採取WinForms應用程序,並把它改寫使用web表單,但它會是公正的:重寫。
添加到以前的答案,請注意,是簡單所以它取決於什麼是在首位的winform沒有在一個WebForm存在着一些WinForm的功能。
是的,這是可能的。如果您已經將應用程序設計得足夠好,只需將UI層交換出來並將其替換,就可以相對容易地將Win Forms應用程序轉換爲Web窗體應用程序。您正在重新使用邏輯和數據層(這是所有功能所在的地方)。
很明顯,你必須從頭開始寫一個新的UI層,但是,如果邏輯層寫入不夠好,是不會與從頭編寫整個應用程序相比,太多的工作。
然而,即使你有一個寫得很好的應用程序,也有一些問題。邏輯層可以假設一個有狀態的應用程序,在這種情況下它可能依賴於延遲加載。在Web應用程序中,您擁有一個運行於請求和響應的無狀態模型。在這種情況下,您可以確切地知道您需要什麼,並且可以只加載所需的位,而不是稍後可能需要的其他事物...因爲稍後會有不同的請求/響應週期以及所有數據現在收集將在當前響應完成後立即放棄。
我最近一直把原本是WinForms的應用程序的邏輯放到MVC中,獲得響應速度的最大障礙是這樣一個事實,即雖然編寫得相當好,但邏輯層假定了一個有狀態的環境。同樣的應用程序也被重寫爲WPF(另一個有狀態的環境),沒有太多問題。
只是一個評論更多:重寫取決於多少邏輯是在形式本身。有了恰當分離的關注點,只需將另一個UI插入到業務層即可。
的問題是,offcourse,90%的應用程序是沒有什麼更多的有點複雜CRUD UI的(沒有真正的業務邏輯)...
轉換一個桌面應用程序的Web應用程序有幾個挑戰:
- 硬件訪問
- Windows API調用的應用程序狀態的
- 管理
- 訪問文件系統
- 訪問控制
- 使用桌面特定的UI/UX /控件
有選擇桌面應用程序轉換以自動化的方式,這些可以轉換兩種用戶界面和應用程序的代碼:
- http://www.codeproject.com/Articles/9307/Converting-WinForms-Web-Forms-using-CodeDom
- http://visualwebgui.com/
- http://www.mobilize.net/webmap2
即使使用自動遷移工具,在大多數情況下,您也必須執行大量手動努力讓應用程序以與原始應用程序相同的方式工作。
其中一些工具將有助於實現不同的目標,第一個工具將幫助您僅將UI轉換爲WebForms,最後兩個工具將生成ASP.NET MVC,一個使用自定義運行時和一組庫以及其他與常用的HTML/JS/CSS庫,如Kendo MVVM,Kendo UI,AngularJS或Bootstrap等。 這些工具將提供一種解決方案,將比從頭開始在網絡上編寫應用程序更快,並將提供解決方案或至少指導方針來應對前面提到的挑戰。但是,與爲Web設計的應用程序存在一些差異,僅僅是因爲體系結構不同,通常爲桌面應用程序編寫代碼的方式假定不能爲網絡應用程序假設。
聲明:我爲構建WebMAP2的Mobilize.Net工作。
- 1. 需要將WinForm轉換爲WebForm
- 2. 是否有可能將.NET類轉換爲COM庫類?
- 3. 是否有可能將Datetime.Now轉換爲.NET中的泰米爾Unicode字符
- 4. 是否有可能將枚舉轉換爲posgresql中的文本
- 5. 是否有可能將列表轉換爲Python中的隊列?
- 6. 是否有可能將OCaml中編寫的everething轉換爲PHP?
- 7. 是否有可能將SVGPath轉換爲javafx中的網格
- 8. 是否有可能將XSD轉換爲Java中的XPath?
- 9. 是否有可能在Matlab中將結構轉換爲地圖?
- 10. 是否有可能將圖像轉換爲PDF在android中
- 11. 將asp.net webform轉換爲mvc
- 12. 是否有可能將char arrary的元素轉換爲const char?
- 13. 是否有可能將簡單的radtextbox轉換爲radnumeric-textbox
- 14. 是否有可能將dll轉換爲源代碼?
- 15. 是否有可能將cpp模型對象轉換爲NSData
- 16. 是否有可能將此JQuery代碼轉換爲JavaScript?
- 17. 是否有可能將AJAX響應轉換爲php變量?
- 18. 是否有可能將double數組轉換爲char *?
- 19. PHP是否有可能直接將html轉換爲圖像
- 20. 是否有可能使用html5將MediaStream轉換爲視頻blob
- 21. 是否有可能將Thrift代碼轉換爲異步
- 22. 是否有可能將.jasper轉換爲.jrxml?
- 23. 是否有可能將此語法轉換爲LR(1)?
- 24. 是否有可能將NSString轉換爲unichar
- 25. 是否有可能將此Python代碼轉換爲單行
- 26. 是否有可能將一個對象轉換爲System.Windows.DataObject.DataStore.DataStoreEntry?
- 27. 是否有可能將Elapsed Time函數轉換爲Integer?
- 28. 是否有可能將此asp轉換爲asp.net?
- 29. 是否有可能將Unity Standalone項目轉換爲Webplayer
- 30. 是否有可能將iframe轉換爲html?
可能嗎?是。可能不寫任何新的代碼?不(如果可以的話,我不認爲你會喜歡這個結果)。 – 2010-12-07 16:42:57