将Delphi/Oracle应用程序从2层更改为3层

将Delphi/Oracle应用程序从2层更改为3层,oracle,delphi,architecture,components,3-tier,Oracle,Delphi,Architecture,Components,3 Tier,在我的公司,他们最终(大约是时候了…)考虑将我们最畅销的应用之一从2层架构转换为3层架构,包括逻辑层(表示层、业务层和数据层)和物理层。我们可能会选择Delphi Oracle或Delphi Java Oracle方法来进行更改 这是一个相对古老的大型应用程序,在我开始在那里工作之前,它已经被创建和修改了很长时间。重构,除了当某些东西必须改变时,通常从未被考虑过。此外,业务逻辑在两个实际层中都存在。。。唉 物理上的变化并不会让我太烦恼,但逻辑上的变化将是一段地狱之旅。为了尽可能地平滑它,我想研究

在我的公司,他们最终(大约是时候了…)考虑将我们最畅销的应用之一从2层架构转换为3层架构,包括逻辑层(表示层、业务层和数据层)和物理层。我们可能会选择Delphi Oracle或Delphi Java Oracle方法来进行更改

这是一个相对古老的大型应用程序,在我开始在那里工作之前,它已经被创建和修改了很长时间。重构,除了当某些东西必须改变时,通常从未被考虑过。此外,业务逻辑在两个实际层中都存在。。。唉

物理上的变化并不会让我太烦恼,但逻辑上的变化将是一段地狱之旅。为了尽可能地平滑它,我想研究一下哪些Delphi组件更适合三层模型


<>你会考虑使用哪些选项?

我发现Rebug是相当有用的。他们也在上面构建了DataAbstract,但我没有使用它。

我们最近使用RemObjects DataAbstract将我们的2层Delphi应用程序转换为3层。虽然最初的学习曲线相当陡峭,但我们对结果绝对满意


DataAbstract让您忘记了数据库和网络连接的基本细节,而专注于业务逻辑。它允许您创建一个抽象服务层,为您的服务器客户端提供一个漂亮的API。使用此API,我们使用Delphi和Delphi Prism ASP.NET客户端连接到服务器。

另一个好的n层框架库是来自components4developers的kbmMW:

您是否考虑过DataSnap XE?

此计划的驱动因素是什么?例如,支持其他数据库或其他前端(移动、web、.net)或云部署?这将给出更清晰的图片,例如在中间层中的Delphi和/或java之间的选择。我基本上问了同样的事情:@ MJSTIN,我们的客户有两个主要原因:他们希望能够在需要时部署到其他数据库,并且他们希望能够快速地扩展规模,因为它们每年增长2位数。感谢您的评论:-)在学习如何使用RemObjects DataAbstract时,您发现了哪些最困难的问题/问题?我认为最困难的部分是了解DA框架的操作方式。我想说文档并没有那么精彩,但它们确实能快速、非正式地回答大多数问题。DA允许您创建一个几乎没有编码的三层系统。只要创建一个模式,就可以了。不幸的是,我们做事的方式使我们无法做到这一点,但我们仍然发现该体系结构足够灵活,可以让我们快速、相当轻松地完成所需的工作。一想到要回到2层体系,我就充满了恐惧。。。祝你好运:)