Search code examples
oracledelphifirebirdibm-midrangedata-aware

Using Delphi data-aware components - pros and cons


I want to know your opinion about using data-aware components in projects. Which are the 'strength' and 'weak' points of developing applications(win32 and web), by using Delphi and data-aware components(from Delphi's standard suite or third-party)?

Using FireBird I've worked a lot with IBObjects, which are a mature suite of components and worked very well.

But there are also a lot of other RDBMS (MySQL, MSSQL, DB2, Oracle, SQLite, Nexus, Paradox, Interbase, FireBird etc). If you have developed big projects, on which you've used a lot data-aware components please answer with the database type and data-aware components suite name.

I'm also interested on DB2 (AS400). What components have you used with success, or which components are really a pain to work with?


Solution

  • I've found that using the data-aware components results in an application with no clear distinction between business and UI logic.

    This is fine for small projects but as they grow larger the code becomes less and less maintainable.

    All the various bits of event code (and their interactions) can become a real nightmare to understand!

    Invariably in such cases I've ditched data-aware components and have switched to a (hand-coded) MVC design.

    This does require a lot of up-front coding effort but results (IMHO) in a project that is maintainable, extensible and debuggable.