root/tags/dabo-0.1.1/__init__.py

Revision 288, 3.2 kB (checked in by paul, 5 years ago)

Introduce dSecurityManager, which handles validating a user login and caching
group membership information. Introduce property SecurityManager? to dApp
object, allowing users to subclass dSecurityManager to do what they need it
to do, and then attach an instance of their subclass to dApp.

Make dApp check with the SecurityManager? if available, before starting the
main application event loop.

Introduce new UI class dDialog, which is a very simple frame usually meant
to be shown modally and to return a value. Introduce new UI class dLogin,
which is a basic login form.

Wrap some property docstrings in _().

Start experimenting with Accelerator Tables, which can be used to workaround
the lack of Cancel and Default properties in command buttons.

  • Property svn:eol-style set to native
Line 
1 """ Dabo: A Framework for developing data-driven business applications
2
3 Dabo is for developing multi-platform database business applications -
4 you know, applications that need to connect to a database server (MySQL,
5 Oracle, MS-SQL, whatever), get recordsets of data based on criteria
6 set by the user, provide easy ways to edit and commit changes to the
7 data, and to report on the data.
8
9 For basic, easy use that hopefully satisfies 80% of your needs, you
10 simply create/edit data definition files that Dabo uses to dynamically
11 create things like menus, edit forms, data browsing grids, etc.
12
13 So, the basic idea is that you have a functional, working, albeit basic
14 application up and running very quickly, and you can then spend time
15 getting all the fancy bells and whistles implemented. Keep things as
16 simple as possible though, while still fulfilling your customer's
17 specifications. Simplicity is the better part of elegance.
18
19 Dabo is fun to say, which is enough justification for its name, but
20 perhaps it could stand for:
21     Database Application Business Objects
22     Database Application Builder O (Just think, it could have been ActiveO... <g>)
23     Object oriented Business Application Development (but OBAD sounds so bad)
24
25 Dabo has three main submodules, representing the three tiers common
26 in modern database application design:
27
28     dabo.db  : database
29     dabo.biz : business objects
30     dabo.ui  : user interface
31
32 dabo.db and dabo.biz are completely ui-free, while dabo.ui (currently)
33 requires wxPython. We have allowed for possible future support for other
34 ui libraries, such as PyQt, tk, and curses.
35
36 The Dabo framework will have to be distributed to your client's machine(s),
37 along with your project-specific data definitions and (if applicable), your
38 subclasses of the Dabo classes and additional Python scripts, if any. There
39 are ways to do runtime deployment via installers that take the complexity
40 out of this, but that is outside the scope of Dabo itself, and you'll use
41 a different method for each target platform.
42
43 To run Dabo, and apps based on Dabo, you need:
44     + Python 2.3 or higher
45
46     + wxPython 2.5 or higher, which has a dependency on:
47         + wxWindows 2.5 or higher
48         (only necessary for apps with a ui: because of the modular
49         nature of Dabo's design, it is possible to use just the
50         db layer, or the db layer in conjunction with the biz
51         layer, with no ui at all.)
52
53     + Windows 98SE or higher
54     + Macintosh OSX 10.2 or higher
55     + Linux 2.4 with X11 running
56
57     + Access to some sort of database server, along with the
58     appropriate Python driver(s) installed. For example, for
59     MySQL you'll need to have the MySQL client libraries
60     installed, as well as the MySQLDb Python module. (Dabo
61     does not use ODBC: it connects directly using the Python
62     DB API coupled with the individual database drivers. This
63     is, at the same time, less flexible, tougher to get started
64     with, but more capable, more multi-platform, and better
65     performing, than ODBC is.)
66
67 How you get started is pretty much up to you. Look at the demo.
68 Run a wizard. Hand-edit the data definition files.
69
70 ToDo: pointers to get started.
71
72 """
73 from dApp import dApp
74 from dLocalize import loc
75
76 import dabo.common
77
78 # dApp will change the following value upon its __init__:
79 dAppRef = None
Note: See TracBrowser for help on using the browser.