关于将.NET Windows窗体应用程序迁移到Web应用程序的指南

时间:2012-01-22 11:58:04

标签: asp.net .net asp.net-mvc migration winforms-to-web

是否有关于此主题的好书或网站涵盖以下主题:

  • 不同的迁移场景(大爆炸,模块模块,功能功能)优缺点
  • do's en dont's
  • 模具
  • 处理客户期望

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

  • 让他们在新网站的同时使用Windows应用程序 应用
  • 让Windows应用程序使用网络上的新功能 通过服务接口申请?
  • 一段时间接受双重保养费用以保持顾客满意?

2 个答案:

答案 0 :(得分:5)

您更有可能进行完全重写。因为web在概念上与windows窗体不同,所以会有很多变化。

您最好的选择是停止Windows窗体应用程序的新开发。开始为新功能编写新应用。然后开始一次将一个独立的功能移动到Web。

您有两种选择

  1. webforms - 与windows表单模型紧密匹配。如果你是 使用像devexpress这样的第三方控件,你可以找到 webforms中的等价物。

  2. mvc - 更像是重新构建整个表示层。     如果您的UI层已经与业务层分离,那么它     沿着MVC的道路前进将是一个不错的选择。然而     开发经验与做窗户完全不同     形式。

  3. <强>国家

    • 在Windows中维护应用程序状态相对简单    形式。在webforms中,您有viewstate为您执行此操作。但是当你遇到viewstate的限制时,你会遇到粗暴的冲击,特别是当它变得太大时。
    • 在MVC中,您完全有责任维持状态。

    新技能

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

    • 对javascript,ajax,至少一个javascript的深刻理解 像jquery这样的框架。第三方商业工具包可以轻松一些 这些痛苦。
    • 根据复杂程度,您可能需要Web应用程序框架 像Backbone.js / Knockout

    <强>期望

    实现与Windows应用程序相同的响应能力会非常昂贵,因为您将使用多种技术。可能你的用户最初会讨厌新的应用程序。拥有熟练的网页设计师是非常重要的

答案 1 :(得分:4)

根据我们将应用程序从桌面移动到Web的经验:仔细检查winforms应用程序的体系结构,并 if 尽可能 - 尝试在服务或持久性级别提供Web界面,以便Windows应用程序使用Web服务而不是直接与数据库通信。然后,您可以让用户使用clickonce从应用程序服务器启动桌面模块。

这种方法让我们快速转向网络,用户可以获得相同的GUI和访问应用程序的新方法。事实上,重新设计现有应用程序需要3到4个月才能使用Web服务。

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

将连续模块从clickonce迁移到Web的优先顺序是显而易见的 - 我们从大多数用户使用的模块开始。实际上,系统的初始版本只有一个Web表单模块准备就绪,剩下的模块现在已经被替换了两年多,一个接一个。