Why not just use DataSnap / DBExpress / BDE ? (2/2)
The BDE:
The BDE has a number of weakness, which is a big reason so my many BDE
Alternatives exist and this Guide is useful:
- Deployment of the BDE is large and often painful. If a user
has another BDE-based app it can conflict with your app. Deployment
the BDE is a multi-megabyte install, adding to the size of your software
distribution. The rapidly increasing size of hard drives
and use of CD-ROM has made this nearly a non-issue, except in software
to be downloaded by consumers. Deployment and support costs continue
to be high.
- Its underlying architecture is oriented toward Paradox and dBASE file
server based table - to me, it never quite "feels right" with
database servers, in the sense that it seems as though the BDE is trying
to pretend that a DB server is really just a big Paradox table.
- BLOB problems: several of the SQL Links drivers do not work well with
BLOB data types.
- As with any middleware, the BDE is a layer in between your application
and the underlying database; such layers always have some kind of performance
penalty. The is particulary annoying when your are using the BDE
to use another layer of middleware, such as ODBC; in that case,
the ODBC layer is necessary, but the BDE layer is "extra".
- Also as with any middleware, there will be some underlying features
that the BDE does not expose; for example, when using Interbase, the
BDE cannot access Interbase array types. The BDE does not yet
support Oracle8. (BDE 5, part of the just announced Delphi 4,
now supports Oracle8 with all of its new daratypes).
- Cost: the Enterprise version of Delphi, which includes the BDE SQL
Links, costs $3000+. For any given database server, you can find
a solution here that will likely be faster, smaller, simpler, easier
to develop with, and cost much less than that... although, as pointed
out in the pricing page, the SQL Links would be well worth $2000 if
they were small, fast (some of them are fast, by the way), easy to deploy,
and were bug / "issue"-free.
- Specific Problems: The BDE has specific "issues" with some
databases, which will affect you if you use those databases. For example,
its handling of mutliple queries at the same time with MS SQL Server
is weak compared with some of the BDE alternative products.
DataSnap / DBExpress
Many of the above downsides have been addressed effectively by DataSnap
/ DBExpress, but reason still remain to consider third party alternatives:
- The DBMS you are using may not be well-supported by DBExpress. For
example, as I write this, The Borland DBExpress drivers have a significant
problem with transaction support in MySQL.
- You may need zero-DLL deployment, while DBExpress requires driver
DLLs.
- You may benefit from access to special features of your DBMS, which
DBExpress does not expose, such as various data types etc. This issue
is frequently relevant to Oracle users, for example.
ADOExpress
Another tempting and very worthwhile option to consider, including
in the Delphi / C++B box, is ADOExpress. I'll add more thoughts here
later on this topic.
|
|
kylecordes.com Headlines:
My First Emacs (plus Slime, Swank, Clojure) on Mac OSX Mobile Workforce Management, a Five Year Mission Completed SaaS: The Business Model ? Slides, Audio, Transcript Upcoming Talk: How to SaaS, Revisited Books, shirt, free to whoever wants them at STL JUG tonight Amazon S3: Now Much Safer for Important Data To the Clouds and Back (Cloud User Group talk) iPad: Yet Another Opinion Upcoming talk: Cloud Computing User Group StartupToDo scholarships ? 6 down, 4 to go
|