2

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

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

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

  • 让他们在使用新的 Web 应用程序的同时使用 windows 应用程序?
  • 让 Windows 应用程序通过服务接口使用 Web 应用程序的新功能?
  • 接受一段时间的双倍维护成本以让客户满意?
4

2 回答 2

5

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

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

您有两个 UI 选项

  1. webforms - 与 windows 窗体模型紧密匹配。如果您使用任何 3rd 方控件,例如 devexpress,您可以在 webforms 中找到等效控件。

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

状态

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

新技能

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

  • 对javascript、ajax有深入了解,至少有一个像jquery这样的javascript框架。3rd 方商业工具包可以减轻其中的一些痛苦。
  • 根据复杂性,您可能需要像 Backbone.js /Knockout 这样的 Web 应用程序框架

期望

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

于 2012-01-22T12:57:02.083 回答
4

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

这种方法让我们可以快速迁移到 Web,并且用户可以获得相同的 GUI 和访问应用程序的新方式。事实上,重新设计现有应用程序以使用 Web 服务大约需要 3 或 4 个月。

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

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

于 2012-01-22T12:47:17.777 回答