【问题标题】:Guidance on migrating a .NET windows forms application to a web application将 .NET Windows 窗体应用程序迁移到 Web 应用程序的指南
【发布时间】:2012-01-22 11:58:03
【问题描述】:

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

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

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

  • 让他们在新网页的同时使用windows应用 申请?
  • 让 Windows 应用程序使用来自 Web 的新功能 通过服务接口应用程序?
  • 为了让客户满意而接受暂时的双倍维护成本?

【问题讨论】:

  • 实际上不是迁移,而是一个新项目,您从一个程序逻辑到另一个程序逻辑。一个程序上的每个对话框都必须是另一个程序的网页。但是这里的 web 并没有像程序那样保持参数,所以必须重新设计和重新设计 ui。 (对于您多年构建的大型产品,2 年非常乐观)。更好的思考是作为一个新产品,从基础做起。
  • 完全取决于表单应用程序的编写方式。无论哪种方式,我认为都不是编码问题,更适合“程序员”

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


【解决方案1】:

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

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

用户界面有两种选择

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

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

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

新技能

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

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

期望

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

【讨论】:

  • 我同意可能需要重写应用程序的大部分内容。我正在寻找一种方法来跨越时间。
  • 你还需要考虑,如果转换项目中途放弃了怎么办?以“让我们在第 1 阶段在网络上提供这些 x 数量的功能”的思路来考虑该项目是一种务实的方法。
【解决方案2】:

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

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

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

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

【讨论】:

  • wiktor- +1。但是,根据我的经验,您必须非常小心如何实现 Web 服务层(即身份验证/持久性),因为仅检查每个请求的有效性就会造成巨大的瓶颈。仔细检查您认为的“公共” api 与经过身份验证的 api - 方法和回报非常不同
  • 完全同意。由于可能的性能和安全问题,必须小心地为 Windows 窗体应用程序添加第三层。但是,很可能它仍然比从头开始完全重写整个内容要快得多。时间就是金钱。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-17
  • 1970-01-01
  • 2011-02-19
  • 2013-10-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多