[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Where we are going with 1.3

Hi all;

I thought it might be a good time to update everyone with the progress
in svn /trunk, which will eventually be released 1.3.  There are a lot
of exciting developments already in the codebase and no doubt many
more will be added before feature freeze.

1)  New Architecture (included at present unless otherwise noted.
The new and re-engineered code is going to be fairly MVC-like.  Among
the features of this architecture:
   a)  Database-based objects inherit stored procedures as methods
        i) example:  If I create a stored procedure named
report_custom_inventory_report then any object in the
LedgerSMB::Report class can execute the report by something like:
$report->custom_inventory_report();    This is true even if we don't
alter the Perl code to define the method.
   b)  User interfaces will now  be templated.  This will allow for
better separation of logic and interface (in progress).
   c)  $form will not be used as a global "accumulate and fire"
hashref.  The code will be far more object oriented, but there are
provisions to create many object times from many others (any database
object type can be created from any object with LedgerSMB as its base,
parent, or ancestor).
   d)  The successor to Form.pm, LedgerSMB,pm will be greatly
simplified (from 65 functions, iirc, down to about 14).
   e)  Real role-level security will be implemented (in progress).

Of course, legacy code can run against the old architecture until we
are ready to remove it, but all legacy modules and scripts should be
considered to be pending deprecation at this time.

2)  Revised contact management (affects vendors, customers, employees,
and users) (in progress)
 a)  Normalized database schema
 b)  Multiple shipto's
 c)  Multiple contacts per company
 d)  Much more

3)  RESTful web services interface (included at present)
 a)  Access to XML-representation of data over HTTP
 b)  Re-use of basic HTTP standards to handle separation of
presentation and logic

4)  The admin.pl is going away.  User management will be integrated
into the main application and a new database configuration utility
will be designed. (forthcoming)

5)  New setup/installation wizard (forthcoming)

There may be other major changes too.  We expect the LaTeX template
support to be greatly improved.

Also there are a few areas I wanted to get some addtional feedback on:

1)  There is some debate (so far, over IRC) over whether to move
templates into the database,
 a)  makes for easier security because we can have full ACL-based support
 a)  makes it harder to edit using a basic text editor.
 b)  adds one more area to the code that will require more extensive testing

Any other thoughts or concerns?  What do people think about this
direction in general?

Best Wishes,
Chris Travers