Introduction

Release 1.0 - ...

The Smartsite rendering engine is being reimplemented on the Microsoft .NET framework (C#).

Some goals we wanted to achieve were:

  • Take full advantage of the rich .NET framework
  • Adapt the Smartsite XML markup so that it
    • Would be fully XML compliant
    • Could be parsed using the framework-provided classes.
    • Would allow schema validation
  • Separate the rendering engine from the other code, so that it would be easier to manage, debug, test and reuse.
  • Make the macro-parser work like a true compiler, with linear stack-based processing, leaving the complexities and quirks of the parseloops-approach behind.
  • Get rid of the variable scoping problems by using an on-demand variable resolving model when parsing macros.
  • Create a subscriber model for components to use to parse any tag or any namespace, so that "se" processing is just one of these subscriptions, and you could hook into the Xml processor to be made responsible for any other tag/namespace.
  • Integrate Viper-, expression- and Translation parsers so that a single engine could be used instead of 3.
  • Make the rendering engine extensible in any way possible, using OOP techniques.
  • Replace the Level I file cache with macro-centric cache.