我们正在开发/维护一个企业应用程序,由于历史原因和开发速度,它以WinForms为目标。
现在我们认为应用程序迟早需要基于Web,迟早会(早得多)。
思考“网上”运动。哪些是我们必须考虑的最重要的事情?类似于MVP游行(或其他)的东西,现在决定你将要使用的平台/框架,...
从winforms迁移到网络的任何经验?有任何建议要小心吗?
Aclaration :在我们的场景中,应用程序现在很好,基于Web,但我们是现实的。我同意并非所有应用程序都必须基于Web(这是我们使用WinForms开发的主要原因!)。但有时需求会发生变化,在我们的场景中,我们希望将该应用程序提供为SaaS。
答案 0 :(得分:4)
主要是将用户界面与其他所有内容完全分开。完成后,您将不会重写应用程序以便移植它 - 您只需在顶部创建Web UI。
答案 1 :(得分:1)
NESBAWA (并非一切都应该是网络应用)。
答案 2 :(得分:1)
我曾在一家公司工作过,他们的单片WinForms应用程序经历了类似的情况。根据这一经验,有两件事需要考虑:
1]从现有的WinForms UI中解耦所有数据访问逻辑(DAL)。您可以在开始任何Web开发之前启动此过程。
我们在每周6次冲刺中进行了这次重构。应用程序的某些部分很容易更改 - 其他部分是由完全地狱般的意大利面条代码组成,它们在WinForm背后的代码中交织DAL,内联SQL和UI代码。
一旦实现了这种分离,支持两种不同的UI就更容易了。
2]忽略ASP.Net MVC和目标WebForms。 WebForms旨在使编写一个Web应用程序接近编写传统WinForms UI代码(事件驱动,基于组件)的体验。
你需要了解页面生命周期,并且围绕动态生成的控件有一些概念性的问题,这些控件往往会惹恼很多新人 - 但是否则这是让WinForms开发团队做网络工作的最无痛的方法。 MVC目前在网络圈子中可能非常流行,它提供了更好的关注点分离(尽管你可以通过WebForms获得类似的结果,如果勤奋和强大的设计领导力) - 但它需要更高程度的知识。使用MVC,您正在更接近HTTP请求/响应周期的金属。 WebForms为你提取了大量的内容。
祝你好运!
答案 3 :(得分:0)
约翰是对的。 但是,您听说过“空客户”方法吗?这是开发.NET WinForms应用程序的一种相当新的方法,它也可以在普通浏览器上作为Web应用程序运行。这种方法可以让您开发WInForms应用程序,并在需要时将其放在网络上,无需额外的开发或调整。 执行此操作的一个框架是Visual WebGui