将.NET windows窗体应用程序迁移到web应用程序的指南



有没有关于这个主题的好书或网站,涵盖了以下主题:

  • 不同迁移场景(大爆炸、模块对模块、功能对功能)的优缺点
  • 该做的和不该做的
  • 工具
  • 处理客户期望

我们有一个相当大的基于winforms的产品,我们想将其迁移到网络上。在"大爆炸"的情况下迁移可能至少需要两年时间。我们正在寻找替代方案。我特别在寻找处理中间场景的方法,你有什么选择可以让客户满意。

  • 让他们在使用新网站的同时使用windows应用程序应用程序
  • 让windows应用程序使用web上的新功能通过服务接口的应用程序
  • 接受一段时间的双重维护成本以让客户满意

您可能正在进行一次完整的重写。因为web在概念上不同于windows形式,所以会有很多变化。

你最好的办法是停止windows窗体应用程序的新开发。开始为新功能编写新应用程序。然后开始一次将一个孤立的功能移动到web。

用户界面有两个选项

  1. webforms-与windows窗体模型紧密匹配。如果你是使用任何第三方控件,如devexpress,您可以找到网络表单中的等价物。

  2. mvc——它更像是重新构建整个表示层。如果您的UI层已经与业务层分离,那么将是一个很好的选择走上MVC的道路。然而开发经验与windows完全不同表格。

状态

  • 在windows中维护应用程序状态相对简单表格。在网络表单中,您可以使用viewstate来完成此操作。但当你遇到视图状态的限制时,你会遇到粗鲁的冲击,尤其是当它变得太大时
  • 在MVC中,您完全负责维护状态

新技能

您需要新技能来模拟状态完整场景

  • 对javascript、ajax有很强的理解,至少有一个javascript类似jquery的框架。第三方商业工具包可以缓解一些问题这些痛苦
  • 根据复杂性,您可能需要web应用程序框架像Backbone.js/淘汰赛

期望

实现与windows应用程序相同的响应能力将非常昂贵,因为你将使用多种技术。也许你的用户一开始会讨厌这个新应用程序。拥有熟练的网页设计师是非常重要的

根据我们自己将应用程序从桌面移动到web的经验:仔细检查您的winforms应用程序的架构,如果可能的话,请尝试提供服务或持久性级别的web界面,以便您的windows应用程序使用web服务,而不是直接与数据库对话。然后,您可以让用户使用clickonce从应用程序服务器启动桌面模块。

这样的方法使我们能够快速进入web,用户可以获得相同的GUI和访问应用程序的新方式。事实上,重新设计现有的应用程序以使用web服务大约需要3到4个月的时间。

然后,我们一个接一个地替换模块,将它们实现为web应用程序,并在短时间内维护两者(clickonce和web),以便用户能够习惯新的模块。

从clickonce到web的连续模块迁移以一种明显的方式被优先考虑——我们从大多数用户使用的模块开始。事实上,该系统的初始版本只准备了一个web表单模块,其余模块已经被逐一替换了两年多。

最新更新