Sendero

The allure behind a framework is that it will accomplish some sort of magic which makes developing an application so much easier. The idea behind Sendero is to do just the right amount of magic - nothing more and nothing less.

Release Plan

Plans are now underway for first creating alpha releases of Sendero and then hopefully a beta release soon. My intention is to include in the releases only the code which I am using regularly or which I feel is sufficiently tested. That way, the code that is marked as release will be a reasonable reference point for someone wishing to develop an application. I intend to release a beta when I feel that the framework serves the needs of the sites I am designing fairly sufficiently.

Jan 14, 2008

Changes In The Works For An Alpha Release

In preparation for an Alpha release of Sendero, several modules have been moved, removed, or temporarily removed. Here is a list of the changes that have taken place:

  • Much of sendero.xml will be refactored and become tango.text.xml!
  • sendero.xml.XmlTemplate has been removed (use sendero.view.SenderoTemplate instead).
  • sendero.data has been (at least temporarily) removed (use sendero.db in conjunction with ddbi instead).
  • sendero.server has been temporarily removed (until it is ready for production use)

All of the above modules can still be found in the branches/preAlpha directory. Please post a message on the forum if any of these changes inconvenience significantly your current work and we will try to accommodate.

Current Features (all features should be considered pre-Alpha unless otherwise noted)

  • XML Template language with built-in localization via either ICU or tango.locale.
  • XPath 1.0
  • Super-fast XML Parsing
  • JSON Parsing
  • Binary Serialization
  • Base64 Encoder/Decoder
  • AES/Rijndael Encrypter/Decrypter
  • Type-safe Routing
  • ORM with backend for MySQL (via DDBI trunk).

Features in the works

  • ORM backends for MySQL, Sqlite, and (eventually) PostgreSQL (via DDBI).

Feature Status (stability of features)

  • XML and JSON parsing appear to be fairly stable.
  • Most XML template features appear fairly stable including inheritance after templating redesign.
  • Type-safe routing and the new ORM API appear to be working fairly well.

Examples

XML Templates

ORM API

sendero.db.DBProvider

class template DBProvider(DBConnectionProvider)

  static Statement prepare(char[] sql)

Instantiate this class with a class containing a static method IPreparedStatementProvider createNewConnection(). IPreparedStatementProvider is documented in dbi.PreparedStatement? from DDBI trunk. Essentially this is a connection to a database that provides Prepared Statements from DDBI. Currently only the MySQL backend has been implemented.

sendero.db.Statement

  bool execute(T...)(T t)
  bool executeEmpty()
  bool fetch(T...)(out T t)
  void reset()
  ulong getLastInsertID()
  void prefetchAll()
  char[] getLastErrorMsg()
  IPreparedStatement statement()


Source-level and reference documentation is forthcoming.

Please feel free to check-out the Sendero forum and contribute any ideas and suggestions you may have. If you are interested in helping out with this project, please make a post in the forum!