【发布时间】:2012-01-19 09:29:06
【问题描述】:
我会说服朋友,在开发数据库应用程序时,在 Delphi 中使用数据库组件(DB 感知控件)是迄今为止最好的选择。
这个争论始于多年前的他:直到今天,他仍然相信使用 TEdit、TStringGrid 等简单的控件以及一组 getter 和 setter 方法来填充它们,在灵活性和灵活性方面都是最好的解决方案。整个项目的可维护性。
至少对我来说这听起来违反直觉。
我认为在开发数据库应用程序时使用 DB Aware Controls,如 TDBEdit、TDBGrid 等是正确的做法。
所以:请帮助我用合理的建议说服他使用 DB Aware Controls!
提前感谢你们所有人,他们至少会发表他自己的建议,无论是支持哪种解决方案。
-- 法比奥维莱
【问题讨论】:
-
+1 因为我喜欢这个问题,但我属于从不使用 Db-aware-controls 阵营,所以我不打算回答。
-
这取决于哪个控件、dbedit 等都很好,但有时像 dbgrid 这样的东西还有很多不足之处
-
+1 对于小型数据库应用程序(我需要快速解决方案),我会使用 DB Aware Controls,特别是如果数据库是本地的(如 MS-Access)。对于大规模和完整的数据库应用程序,我更喜欢使用我自己的非感知控件。对于 DBGrid 的示例,我使用未绑定 DataSet 的虚拟树。这是更多的工作,但至少我不受限制。
-
我支持@Cosmin,尽管我有时认为 DBAware 控件本身不是问题,而是您使用它们的方式。它们往往会导致所有业务逻辑都以事件形式编码。如果您避免这种情况,请将您的数据集分组到数据模块上,并将您的业务逻辑放在您已经做得更好的查询事件中。将您的业务逻辑放在实例化数据模块时实例化的类中,并从数据集/模块事件调用业务类方法,这样您就可以在应用程序发展时更轻松地切换到正确分离的层。
-
当我第一次阅读你的问题的标题时,我和@CosminPrund 的意见相同......因为就个人而言,我喜欢客观的比较。但是,在阅读了您的问题后,我意识到您真正想要的只是一些弹药来“证明您的朋友是错误的”。你已经下定了决心,你对客观的比较不感兴趣。这实在不利于学习。你不妨问问你的宗教为什么是对的,而他的宗教是错的。
标签: delphi