将 Delphi/Oracle 应用程序从 2 层更改为 3 层
Posted
技术标签:
【中文标题】将 Delphi/Oracle 应用程序从 2 层更改为 3 层【英文标题】:Changing a Delphi/Oracle application from 2-tier to 3-tier 【发布时间】:2011-03-29 18:55:28 【问题描述】:在我的公司,他们终于(大约是时候......)考虑将我们最畅销的应用程序之一从 2 层架构转换为 3 层架构,无论是在逻辑层(表示层、业务层和数据层)还是物理层面。可能我们会选择 Delphi-Delphi-Oracle 或 Delphi-Java-Oracle 方法来进行更改。
这是一个相对较旧的大型应用程序,在我开始在那里工作之前已经创建和修改了很长时间。除非必须更改某些内容,否则通常不会考虑重构。此外,业务逻辑存在于两个实际层中......叹息。
物理变化并没有给我带来太多困扰,但逻辑变化将是一种穿越地狱的通道。为了尽可能地平滑它,我想调查一下哪些 Delphi 组件更适合 3 层模型。
¿您会考虑使用哪些替代方案?
【问题讨论】:
这个计划的驱动因素是什么?例如,是否支持其他数据库或其他前端(移动、Web、.net)或云部署?这将给出一个更清晰的画面,例如在 Delphi 和/或 Java 之间的中间层中进行选择。 我问的基本一样:***.com/questions/3431149/… @mjustin,我们的客户有两个主要原因:如果需要,他们希望能够部署到其他数据库,并且他们还希望能够快速扩展,因为他们每年增长 2 位数.谢谢你的评论:-) 【参考方案1】:您是否考虑过 DataSnap XE?
【讨论】:
【参考方案2】:我们最近使用 RemObjects DataAbstract 将我们的 2 层 Delphi 应用程序转换为 3 层。虽然最初的学习曲线相当陡峭,但我们对结果非常满意。
DataAbstract 让您忘记数据库和网络连接的基本细节,专注于业务逻辑。它允许您创建一个抽象服务层,为您的服务器客户端提供一个很好的 API。使用这个 API,我们使用 Delphi 和 Delphi Prism ASP.NET 客户端连接到服务器。
【讨论】:
在学习如何使用 RemObjects DataAbstract 时,您发现的最困难的问题/问题是什么? 我认为最难的部分是了解 DA 框架的运行方式。我会说文档不够出色,但它们确实快速且信息丰富地回答了大多数问题。 DA 允许您创建一个几乎无需编码的 3 层系统。只需创建一个模式,就是这样。不幸的是,我们做事的方式阻止了我们这样做,但我们仍然发现架构足够灵活,可以让我们快速且相当容易地完成我们需要的事情。回到 2 层系统的想法现在让我充满恐惧......祝你好运:)【参考方案3】:另一个不错的 n 层框架库是来自 components4developers 的 kbmMW:http://components4developers.com/
【讨论】:
【参考方案4】:我发现 RemObjects 非常有用。他们还在其上构建了 DataAbstract,但我没有使用它。
【讨论】:
以上是关于将 Delphi/Oracle 应用程序从 2 层更改为 3 层的主要内容,如果未能解决你的问题,请参考以下文章
如何将错误从服务层传递到 vanilla Java Servlet? [复制]