是否可以在.NET中将WinForm转换为WebForm?

时间:2010-12-07 16:39:48

标签: .net asp.net winforms webforms

我不认为这是可能的,但我只是在和一位说她以前做过的同事交谈。她在拉链子吗?

5 个答案:

答案 0 :(得分:8)

这不是你可以自动完成的事情。

诀窍在于,在winforms和webforms中,表单由一个普通的旧类表示。但是,每次在asp.net webforms中处理表单事件时,您都在使用该类的全新实例。微软在尽可能多地尝试覆盖这个问题时遇到了很多麻烦,但最终以与winform相同的术语来考虑webform并不是一个好主意。

所以你绝对可以使用winforms应用程序并重写它以使用webforms,但它只是:重写。

答案 1 :(得分:3)

是的,有可能。如果您已经足够好地设计了应用程序,只需更换UI层并替换它,就可以相对容易地将Win Forms应用程序转换为Web表单应用程序。您正在重新使用逻辑和数据层(这是所有功能的所在)。

显然,你必须从头开始编写一个新的UI层,但是,如果逻辑层编写得足够好,那么与从头开始再次编写整个应用程序相比,这不会太多工作。

然而,即使你有一个写得很好的应用程序,也会有一些问题。逻辑层可以采用有状态应用程序,在这种情况下它可以依赖于延迟加载。在Web应用程序中,您有一个无状态模型,该模型在请求和响应上运行。在那种情况下,您可以准确地知道您需要的是什么,并且可以只加载您需要的位而不是稍后可能需要的其他东西......因为稍后会有不同的请求/响应周期和所有数据当前响应完成后,立即收集将被删除。

我最近一直把原来是WinForms的应用程序的逻辑放到MVC中,并且获得响应速度的最大障碍是,虽然编写得很好,但逻辑层假设了一个有状态的环境。同样的应用程序也正在为WPF(另一个有状态环境)重写,没有太多问题。

答案 2 :(得分:2)

除了之前的答案之外,请注意有一些winform功能在webform中根本不存在,因此它首先取决于winform中的确切内容。

答案 3 :(得分:2)

将桌面应用程序转换为Web应用程序有几个挑战:

  • 访问硬件
  • Windows API调用
  • 管理申请状态
  • 访问文件系统
  • 访问控制
  • 使用特定于桌面的UI / UX /控件

可以选择以自动方式转换桌面应用程序,这些选项可以转换UI和应用程序的代码:

即使使用自动迁移工具,在大多数情况下,您也必须执行大量手动工作才能使应用程序以与原始应用程序相同的方式工作。

其中一些工具将有助于实现不同的目标,第一个将帮助您仅转换UI和WebForms,最后两个将生成ASP.NET MVC,一个使用自定义运行时和一组库和另一个使用常见的HTML / JS / CSS库,如Kendo MVVM,Kendo UI,AngularJS或Bootstrap等。 这些工具将提供比从头开始在Web中编写应用程序更快的解决方案,并将提供解决方案或至少指导方针来应对之前提到的挑战。但是,与为Web设计的应用程序存在一些差异,仅仅因为体系结构不同,并且通常为桌面应用程序编写代码的方式假设不能用于Web应用程序。

免责声明:我为构建WebMAP2的Mobilize.Net工作。

答案 4 :(得分:1)

更多评论:重写取决于表单本身有多少逻辑。通过适当分离的关注点,只需将另一个UI插入业务层即可。

问题是,当然,90%的应用程序不是那么复杂的CRUD UI(没有真正的商业逻辑)......