问题 有关迁移到多层Delphi架构的建议


我们有一个相对较大的应用程序,它与Firebird(存储过程,视图等)紧密相关。我们现在收到很多支持其他数据库的请求,我们也想将很多功能从客户端移到服务器上。

现在似乎是转向3(4)层架构的好时机。我们已经看过DataSnap 2009和RemObjects SDK / DataAbstract。他们似乎都会做这项工作,但是我们应该注意哪些优点/缺点?是否还有其他可以推荐的框架?

干杯, 保罗


12212
2018-02-13 07:43


起源

德尔福积极开发。 - Harriv
Delphi有什么问题? - gabr
约翰,你为什么不回答问题,而是张贴一些废话? Delphi非常积极地开发,几个月前刚刚发布了一个新版本,并且计划了未来版本的路线图。为什么发布不真实的FUD? - Ken White
约翰,我觉得你对Delphi不太了解:-) - Mohammed Nasman
我们目前的应用程序是用Delphi编写的。转换为多层系统比将现有代码翻译成另一种语言要容易得多。此外,我们不想转向另一种语言。德尔福非常活跃,能够满足我们的需求。 - norgepaul


答案:


在转移到多层应用程序的过程中,您可以考虑在层之间使用传输协议,这是独立于语言/技术的(如webservices,(我认为remobjects支持)。

这可以使以后更简单地重新实现一个层(比如你以后必须在浏览器/ java / silverlight中创建另一个版本的客户端应用程序)。


3
2018-02-13 08:45





我建议使用Components4Developers中的KBM Middleware组件。有一点学习曲线,但它们非常灵活,在现实世界条件下保持良好状态。

用户评论(http://www.components4programmers.com/usercomments/commentfromapowerusertoaquestion.htm


4
2018-02-13 09:16



这是一个关于KBM中间件的精彩视频 video.codegear.com/CodeRage2007Archives/Day3/KimMadsen.zip - Charles Faiga
该视频的声音和图片质量非常差。我喜欢他讨论1层,2层和3层的优缺点的方式只有3层没有缺点:) - kjack


使用新框架(RM,DS,kbmMW,或者任何版本)将应用程序更改为Multi-Tier,将在我们的应用程序架构中进行大量更改,我建议将来再使用它,但是您可以实现对多层的支持数据库,与其他产品一样

UniDac 来自DevArt(具有直接连接的数据库的最佳组件)。 AnyDac(来自提供RemObjects的同一家公司。 SqlDirect(支持9个MajorDB和ODBC)。 ZeosDB(开源)。

使用上面的一个组件,将为大多数主要数据库提供支持,除了它不会让你做很多更改,在某些情况下,你只需用新的数据库组件替换旧的数据库组件,并可能更改一些属性。

但是,更改为多层不仅会使您只支持更多数据库,而且会将业务逻辑与表示层分开,因此您可以为Web应用程序或智能设备等应用程序提供更多表示层。

但是在Multi-Tiers体系结构中最重要的是,您将拥有一个可扩展的系统,其增长速度超过您使用的数据库可以处理的连接,除了其他好处之外,例如使用其他语言编写客户端应用程序。


4
2018-02-13 19:49



我用AnyDAC DAD投票支持DataAbstract。非常坚实的混合。 - oodesigner


您还可以调查Midware http://www.overbyte.be/frame_index.html


1
2018-04-13 19:39





对于多层体系结构,我还建议检查面向消息的中间件。

使用面向消息的中间件,可以使用对等或发布/订阅通信模型来实现跨语言和跨平台应用程序集成。消息系统松散耦合,异步且可靠。例如,它们是Java(tm)应用程序服务器(如JBoss)中的核心组件。

对于Firebird,我最近撰写了一篇关于替换Firebird数据库事件的博客文章,它们的局限性以及用基于消息代理的解决方案(可作为开源提供)替换它们的方法:

(免责声明:我是开源消息代理的Delphi和Free Pascal客户端库的开发人员)。


1
2018-03-17 15:33