我不认为这是可能的,但我只是跟一个说她以前做过的同事说话。她在拉我的链吗?是否有可能将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