可以将庞大的现有应用程序移植到Web上吗?怎么样?

时间:2009-06-21 23:44:18

标签: web-applications

我们有一个集成系统(至少就是我们所说的),它包含一个前端到后端巨大的C ++ / VB / MSSQL软件,可以处理每个方面的问题。组织。

我们现有的几位客户一直在询问是否可以通过性感的Web 2.0方式将其移植到网络上,当然它也对我们有很大的价值,因为我们会有一个更好,更新,更现代的产品我们采用SaaS模式,我们认为这种模式在商业上很有用,并且肯定会开启许多新的大门,因此我们并不是要让客户相信这不是一个好主意。

但是,网络是否适合此类应用?

如果我们应该使用Webtop(模仿桌面)UI,还是应该选择标准的Web 2.0 37Signals,如UI?

在您的体验中,哪种方式会更好地展示此类应用,以及您在设计所选模型时我们将从您的体验中推荐哪些工具/语言/技术(如果有)。

请记住,当前的桌面软件非常庞大,有超过200个SQL表,250个表单以及大约400种不同报告。

非常感谢任何见解,提示或建议。

我提前感谢你们所有的时间,并为一篇很长篇文章中的许多部分问题道歉。

7 个答案:

答案 0 :(得分:9)

Geez,我不想在这里“迷恋”粉丝......但你的应用程序目的

希望能够让支持贵公司业务的人员更轻松地开展工作。

这些目的都不是由您使用的语言/平台决定的。零。压缩。没有。

您可以在几乎任何可用的语言/平台上完成您的业务所需的任何功能。真。有些事情在一种语言或另一种语言中更容易,但你对一种语言与另一种语言的熟悉程度不仅仅能弥补“技术”差异。

任何改变支持贵公司业务的现有应用程序的架构/平台的决定都需要比当前模型具有一些主要的业务优势甚至可以考虑 - 然后你需要选择您和公司中其他开发人员最熟悉的平台/语言 - 这样您就可以快速增加业务价值,而不是花费大量时间“加速”熟悉不熟悉的技术。 / p>

答案 1 :(得分:6)

我建议您尽可能地为网页设计提供典型的Web 2.0照明方法。

首先,我将创建一个基于Web的界面,以便在您的应用程序中执行最简单但最常用的工作流程。让生产版本共享您当前系统的数据库,以便它可以作为替代品,用于日常使用。

请记住,高级用户将打开几个浏览器窗口,以便模拟应用程序是多余的。一组引导您完成工作流程(添加客户端说明)和状态页面(查看客户端详细信息)的向导将是一个很好的起点。尽可能多地模仿Web 2.0海报儿童(即推特),并将他们的设计作为一个免费的起点。

不要试图一次性完成所有操作,只需在现有系统中添加一个漂亮的Web前端,然后逐渐获得组织内的支持/使用。

如果您决定使用Django(即在python中开发网站),它可能会开箱即用,支持您的数据库。配置您的设置以连接到数据库(按照教程)然后运行"inspectdb" manager command以创建描述您拥有的200个表的python文件。然后,您可以非常轻松地在数据库上运行SQL查询,而无需使用Django模型系统编写任何SQL,所有这些都在python命令行中完成。

答案 2 :(得分:4)

设计精良的设计部分与工具(语言,框架工作)以及以简单,高效和无差错的方式呈现和使用系统中的信息的能力有关。

旧的may系统可能已经陈旧,但它经过多年的调整和强化,所以它可以工作。

您考虑在其上构建的任何内容都不应包括重写业务逻辑。创建一个新的前端,以某种方式调用当前存在的所有业务逻辑。

然后随着时间的推移重新考虑后端更合适,但这可能是面向对象或功能设计。

在设计某些东西时,很少有技术可以让你的生活更轻松。但是,需要考虑的一些关键因素是ASP.NET MVC,ColdFusion的双重.NET / J2EE容量,以及Adobe FLEX / AIR之类的东西。 Django和我听到的一样棒,但我从来没有深入使用它。

答案 3 :(得分:4)

您是否考虑使用终端服务器?当很多人说网络时,他们的意思是:

  

不必在每台PC上安装

Microsoft Application Virtualization(是SoftGrid)也是一些客户的选择。 (如果您使用.NET ClickOnce也是一个可以正常运行的选项)

在这两种情况下,最终用户都可以在互联网门户网站上看到一个链接,只需点击它即可为您的应用程序提供午餐。但是,在这两种情况下,您都需要客户IT部门将支持纳入其标准PC构建中。

将应用转换为网络的问题包括。

  • 您现在的客户会希望您 继续更新当前 在你这样做的时候申请。
  • 您当前的客户希望Web应用程序与当前应用程序相同。
  • 您的新客户希望网络应用程序“像网络一样”
  • 在这样做的过程中,您不会为现有客户创造价值,那么他们为什么还要继续支持他们呢?
  • 让您当前的客户迁移到网络版本可能需要数年时间,因此您可能需要在未来几年内支持这两种版本。
  • 很多人认为“web = free”所以你不太可能为网络版收取更多费用
  • 有限数量的优秀网站开发人员都是网络和大型应用程序开发方面的专家。
  • 没有人知道开发Web应用程序的最佳方式,因此您雇用的每个程序员都必须学习如何做到这一点。

同时,一个没有历史记录的初创公司可以创建一个Web应用程序,它可以使你的一半锁定更快,更便宜。他们可能会接受新客户,因为他们只是网络。

很难应对second system problem。你可能只是更好地阻止大多数新开发并尽可能地从当前软件中获取收入。

有一半的房子,通常你有两组用户。

  1. 使用您的高级用户 每天申请和喜欢 目前的用户界面。
  2. 偶尔用户 - 偶尔只使用一小部分应用程序。
  3. 在人力资源应用程序中,Power Users将成为人力资源部门,偶尔用户将是希望申请假期的员工。或偶尔的用户可能是希望查看报告的经理。

    您可以考虑仅为偶尔的用户提供网络界面

答案 4 :(得分:2)

  

我实际上有几个客户   使用该系统,最近一些   那些客户一直在问   它可以将其移植到网络中   性感的web 2.0时尚。

嗯,它是否已损坏,难以使用,是否难以部署更新?是否还有其他理由将其转换为“客户一直在询问”以外的网络应用程序?如果没有,为什么不把这些资源用于更新你拥有的东西或创建所需的新系统而不是把它全部抛到窗外。

  

您认为哪种方式   更好地供我们使用,以及什么   你会发现工具/语言/技术吗?   建议完成它?

这一切都取决于业务的需求。技术/框架应符合业务要求,而不是定义它们。就像我说的那样,首先要确定你现在拥有的东西是否足以满足投资建设新的东西。

答案 5 :(得分:2)

首要的决定应该是商业性的,因为我确信将所有内容移植到新框架中需要花费大量时间和精力。换句话说,只要看看所有的利弊,例如

优点:

  • 旧技术更难以支持(难以招募对其感兴趣的开发人员)
  • 客户将产品视为“累”
  • Web可能会将产品作为SaaS提供

...

缺点:

  • 巨额投资 - 谁为此付出代价,客户是否真的愿意支付一个漂亮的新UI?
  • 为现有开发人员提供投资和培训
  • 一开始会遇到很多错误,这需要时间来解决问题
  • 在您进行迁移时,所有更改请求会发生什么?如果您决定不对现有系统进行任何更改,您的客户将不会满意。另一方面,如果你陷入困境,你最终可能会加倍所有这些工作(在两个系统上实施/测试)。
  • 长期生产力 - 在我的(有限)经验中,大多数Web框架的开发效率仍低于90年代的Delphis / MS Accessess。它看起来像Ruby / Django,这样就缩小了差距,但我认为它仍然不存在。
  • 整个项目失败的风险。如果你没有准确估计这个项目的最终努力/持续时间,你发现在1年之后你还没有完成50%,那就不会很好了。

祝你好运,不要让其他多次被烧伤的脾气暴躁的开发者破坏你的热情;)

答案 6 :(得分:1)

我的建议是咨询贵公司的业务部门并制定风险/回报,以及成本/收益分析,并根据这一点进行调整。

技术“便宜”。 Ruby,.NET,Python,每个都可以很容易地配置成不同的用途。在找出要使用的技术(即,根据您的特定需求进行最少配置)之前,您想要弄清楚您正在做什么。