可能重复:
What Web Application Framework for Delphi is recommended?
我们有一个使用Citrix托管的Delphi 2007桌面应用程序。现在我们想要摆脱Citrix并以某种方式通过网络启用它。
我做了一些研究,发现可以使用uniGUI。
结论:可以完成,但需要重写,并且只支持一部分组件。严肃的问题仍然是网络环境中的整体应用程序结构。
还有两个选项 morfik 和 atozed ,它们还需要重新编写。
我想知道是否还有其他选项需要更少的重写工作以及它有多脆弱?
请有人帮助我。
答案 0 :(得分:6)
它有多脆弱,取决于代码的质量。如果你有一个结构良好的应用程序,业务逻辑和数据访问与GUI完全分离,那么它将非常安全,尽管你仍然需要重写所有的GUI。 如果表单中存在逻辑,并且与GUI组件对话的代码与检查输入并存储数据的代码交织在一起,那么您就会遇到大问题。
在这种情况下,这是一个很好的机会来重构你的应用程序的大部分,并且这次做得更好。 ;)
答案 1 :(得分:2)
由于此处没有“银弹”,因此您使用哪种产品并不重要。你遇到同样的挑战。我建议花几天时间重新编写2-3个典型屏幕的概念验证(PoC)。为每个“入围”产品实施POC,看看它是如何运作的。跟踪每一个人花了多长时间,更容易/更难的事情,以及最终结果对最终用户的影响(性能,好看/有趣,坚固,“感觉”)。
至于实际的重写,我建议如下:
哎呀 - 我离开了一步。第0步:冻结所有功能/修复。如果当前生产需要修复,则需要在单独的分支中完成,然后再汇总到此项目中。
请注意,这种类型的工作非常适合外包,因为工作很简单,而且要求很简单。特别是如果它可以一次传递一种形式,那么进度,时间线和$$$可以用小块来测量。
另一个初步步骤是开发一个“烹饪书”,用于从现有GUI层剥离业务逻辑。它应该识别命名约定,公共库(对于应该一直共享但不是共享的代码),并且应该描述转换方法。
答案 2 :(得分:1)
AFAIK,没有工具可以将您的桌面应用程序转换为Web应用程序,而无需重写大多数GUI部件。
Golez说,你必须重构你的应用程序,尝试将你的业务逻辑与GUI分开,然后你可以使用像Intraweb这样的工具来开发GUI作为web并重用现有的业务逻辑它另一种选择是将您的应用程序转换为n层技术,并将您的业务逻辑作为Web服务或任何开放技术进行扭曲,并通过任何Web语言(如ASP.Net或PHP)使您的Web部署。
答案 3 :(得分:0)
取决于您希望应用程序如何“启用Web”。我使用Cybele Software(https://www.cybelesoft.com/)Thinfinity UI将应用程序扩展到Web,包括数据库应用程序。 它只需要安装他们的ThinFinity Server并向Proj源代码中添加一行代码,您便可以开展业务。 这些应用程序均在您的PC上运行。 好吧,也许我简化了一下,但是值得一看。 HTH。 问候, 伊恩