Overview of 2.0 Developer Proposals
We can't gotten to to the user proposals for 2.0 yet but here are the general code management, API's and the like:
1) SODA 2.0
SODA provides discoverable database query functionality (sort of like web service principles applied to stored procedures). It is not a replacement for direct table access, but rather a way of storing named queries in the database for easy use. It also allows other programs to make use of these queries without reinventing the business logic.
The major proposed differences between 1.x and 2.0 currently are limited to argument semantics and coding policies. In 1.3, all arguments are arranged in a flat form with some nested arrays possible. In 2.0, object-bound data will be passed in as a single data structure, allowing for other arguments to be specified as developer-provided. These data structures will be defined in the database as well.
Additionally we are re-iterating that functions should only be labelled as "security definer" when necessary and that table permissions should be used as much as possible.
LedgerSMB 1.2 is quite large and complex. 1.3 is substantially moreso. In order to prevent this from getting out of hand, we are proposing to modularize the program into different portions. The areas which are most stable and basic will be a part of the core package (Stripped down contact management, AR/AP/GL transactions, separation of duties, configuration management, and the like). Other areas will be available as addons. Some bundles will be distributed including some sets of addons specific to a market segment.
3) Perl code:
We are going to refactor much of the application and create something that can be ported to various web frameworks or run on it's own very easily. One major change is that namespaces will have defined structures.
Feel free to comment on this, leave us feedback, etc. As always, spam will be deleted and spammers banned.