首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用VCL for the web (intraweb)作为将web界面添加到遗留的非分层(2层) Delphi win32应用程序的技巧有意义吗?

使用VCL for the web (intraweb)作为将web界面添加到遗留的非分层(2层) Delphi win32应用程序的技巧有意义吗?
EN

Stack Overflow用户
提问于 2010-05-11 22:55:13
回答 2查看 2.4K关注 0票数 4

我的团队正在维护一个巨大的客户端服务器win32 Delphi应用程序。它是使用DevArt (SDAC)组件连接到SQL Server的客户端/服务器应用程序(胖客户端)。

业务逻辑通常“被困”在组件的事件处理程序中,无论如何,通过某种程度的重构,可以在公共单元中移动业务逻辑(这项工作的很大一部分已经在重构过程中完成了……维护别人编写的遗留应用程序非常令人沮丧,但这是一项非常常见的工作)。

现在有一个web界面的请求,我有几个选项,当然,在这个问题中,我想重点介绍web (intraweb)选项的VCL。

其思想是将公共代码(相同的pas文件)用于客户端/服务器应用程序和web应用程序。我听说许多人将遗留应用程序从delphi迁移到intraweb,但在这里我也试图保留胖客户端。

这个想法是使用通用代码,可以用一些编译器指令来编写特定的代码:

代码语言:javascript
运行
复制
{$IFDEF CLIENTSERVER}
  {here goes the thick client specific code}
{$ELSE}
  {here goes the Intraweb specific code}
{$ENDIF}

另一个问题是“迁移计划”,假设我有300个特性,在第一个版本中,web应用程序中只有50个特性可用。如何跟踪它?我正在考虑(Ab)使用Delphi接口来处理这个问题。例如,对于用户身份验证,我可以移动过程中的所有相关代码,并声明一个接口,如下所示:

代码语言:javascript
运行
复制
type
  IUserAuthentication= interface['{0D57624C-CDDE-458B-A36C-436AE465B477}']
    procedure UserAuthentication;
  end;

通过这种方式,当我在两个应用程序(胖客户端和Intraweb)中实现IUserAuthentication接口时,我知道该功能已经“移植”到了web上。无论如何,我不知道这种方法是否有意义。我做了一个原型来模拟整个过程。它适用于"Hello world“应用程序,但我想知道它在大型应用程序中是否有意义,或者这种接口思想只会适得其反,可能适得其反。

我的问题是:这种方法有意义吗?(接口的想法只是一个额外的想法,它不像上面描述的公共代码部分那么重要)它是一个可行的选择吗?

我知道这取决于很多应用程序的类型,不管怎样,我的应用程序是在CRM/Accounting域中的,单个安装上的并发用户数量通常不到20个,峰值为50个。

额外的评论(更新):我之所以问这个问题,是因为我没有n层应用程序,我认为Intraweb是拥有与胖客户端具有公共代码的web应用程序的唯一选择。从Delphi代码开发web服务在我的特定情况下没有任何意义,所以我的替代方案是使用ASP.NET编写web界面(复制业务逻辑),但在这种情况下,我不能以一种简单的方式利用公共代码。是的,也许我可以使用dll,但我的代码不适合这样做。

EN

Stack Overflow用户

发布于 2010-05-12 05:13:27

我认为如果你把你的应用程序移到n层会是一个更好的解决方案,之后桌面和web应用程序会更容易使用。

通过将业务逻辑与演示文稿解耦,您已经完成了第一部分,您可以使用与RemObject捆绑在一起的Delphi或DataSnap。

在此之后,您将拥有可工作的桌面应用程序,您可以使用Intrawebm Asp.net或任何web部件,这样您就不必再次复制web部件的业务逻辑。

通常将桌面应用程序转换为web应用程序并不像你想象的那样容易,因为它们在不同的环境中工作,并且你需要按照它们的性质来构建每个应用程序。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2811748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档