| 1 |
''' Dabo: A Framework for developing data-driven business applications |
|---|
| 2 |
by Paul McNett (p@ulmcnett.com) |
|---|
| 3 |
|
|---|
| 4 |
Dabo is for developing multi-platform database business applications - |
|---|
| 5 |
you know, applications that need to connect to a database server (MySQL, |
|---|
| 6 |
Oracle, MS-SQL, whatever), get recordsets of data based on criteria |
|---|
| 7 |
set by the user, provide easy ways to edit and commit changes to the |
|---|
| 8 |
data, and to report on the data. |
|---|
| 9 |
|
|---|
| 10 |
For basic, easy use that hopefully satisfies 80% of your needs, you |
|---|
| 11 |
simply create/edit data definition files that Dabo uses to dynamically |
|---|
| 12 |
create things like menus, edit forms, data browsing grids, etc. |
|---|
| 13 |
|
|---|
| 14 |
So, the basic idea is that you have a functional, working, albeit basic |
|---|
| 15 |
application up and running very quickly, and you can then spend time |
|---|
| 16 |
getting all the fancy bells and whistles implemented. Keep things as |
|---|
| 17 |
simple as possible though, while still fulfilling your customer's |
|---|
| 18 |
specifications. Simplicity is the better part of elegance. |
|---|
| 19 |
|
|---|
| 20 |
Dabo is fun to say, which is enough justification for its name, but |
|---|
| 21 |
perhaps it could stand for: |
|---|
| 22 |
Database Application Business Objects |
|---|
| 23 |
Database Application Builder O (Just think, it could have been ActiveO... <g>) |
|---|
| 24 |
Object oriented Business Application Development (but OBAD sounds so bad) |
|---|
| 25 |
|
|---|
| 26 |
Dabo has a few parts. First, there is this package, the Dabo framework. Your |
|---|
| 27 |
applications will be based on the classes and modules herein. There are several |
|---|
| 28 |
Dabo packages available: |
|---|
| 29 |
|
|---|
| 30 |
Dabo: This package, the base framework. Other packages require this |
|---|
| 31 |
to be installed, but Dabo doesn't care whether the other packages |
|---|
| 32 |
are installed. |
|---|
| 33 |
|
|---|
| 34 |
DaboWiz: Wizards for common tasks, such as setting up directories for a |
|---|
| 35 |
new project based on Dabo, and for setting up dynamic view |
|---|
| 36 |
definitions, dynamic menu items, etc. The wizards take the |
|---|
| 37 |
drudgery out of setting up your data definitions: they pretty |
|---|
| 38 |
much do it for you! |
|---|
| 39 |
|
|---|
| 40 |
DaboDemo: A demonstration application that you can run on your machine |
|---|
| 41 |
to get a feel for Dabo's capabilities. You can then take a |
|---|
| 42 |
look at the DaboDemo's source code, which is mostly made up |
|---|
| 43 |
of data definition scripts instead of actual source code, to |
|---|
| 44 |
see what makes it tick. You can experiment with a change here |
|---|
| 45 |
or there, learning how to use Dabo in a hands-on way. |
|---|
| 46 |
|
|---|
| 47 |
The Dabo framework will have to be distributed to your client's machine(s), |
|---|
| 48 |
along with your project-specific data definitions and (if applicable), your |
|---|
| 49 |
subclasses of the Dabo classes and additional Python scripts, if any. There |
|---|
| 50 |
are ways to do runtime deployment via installers that take the complexity |
|---|
| 51 |
out of this, but that is outside the scope of Dabo itself, and you'll use |
|---|
| 52 |
a different method for each target platform. |
|---|
| 53 |
|
|---|
| 54 |
To run Dabo, and apps based on Dabo, you need: |
|---|
| 55 |
+ Python 2.3 or higher |
|---|
| 56 |
|
|---|
| 57 |
+ wxPython 2.4.2.4 or higher, which has a dependency on: |
|---|
| 58 |
+ wxWindows 2.4.2.4 or higher |
|---|
| 59 |
|
|---|
| 60 |
+ Windows 98SE or higher |
|---|
| 61 |
+ Macintosh OSX 10.2 or higher |
|---|
| 62 |
+ Linux 2.4 with X11 running |
|---|
| 63 |
|
|---|
| 64 |
+ Access to some sort of database server, along with the |
|---|
| 65 |
appropriate Python driver(s) installed. For example, for |
|---|
| 66 |
MySQL you'll need to have the MySQL client libraries |
|---|
| 67 |
installed, as well as the MySQLDb Python module. (Dabo |
|---|
| 68 |
does not use ODBC: it connects directly using the Python |
|---|
| 69 |
DB API coupled with the individual database drivers. This |
|---|
| 70 |
is, at the same time, less flexible, tougher to get started |
|---|
| 71 |
with, but more capable, more multi-platform, and better |
|---|
| 72 |
performing, than ODBC is.) |
|---|
| 73 |
|
|---|
| 74 |
How you get started is pretty much up to you. Look at the demo. |
|---|
| 75 |
Run a wizard. Hand-edit the data definition files. |
|---|
| 76 |
|
|---|
| 77 |
ToDo: pointers to get started. |
|---|
| 78 |
|
|---|
| 79 |
''' |
|---|