While developing the first version of the Gatekeeper for Version 0.2 it became obvious that just plain MVC for backend development won’t be a solid foundation for the future.

After some brain storming we defined the following minimum requirements for a flexible backend architecture:

Modularity

Pluggable User & Permission Management

Multilingual

I think Options 2. and 3. are quite obvious, but Modularity is just the headline for a bunch of requirements:

Each App should be a self contained, downloadable and installable “Module”.

An App might depend on one or more others Apps/Modules.

It should be possible to release/update a single App.

Each backend component should be pluggable/replaceable.

The framework should support multiple database systems and generate all required tables.

Our first idea was that we need to develop the basic backend infrastructure on our own. But somebody remembered Orchard – which seems to be just an ugly CMS or Blog at first sight. But after some analysis we discovered that Orchard is a surprisingly well-thought-out web framework.

Orchard is also a CMS – but we currently don’t use or need the CMS part. But we’re using the following Orchard features: