Architecture Chat #29

Reasonable turnout at the last Architecture Chat - appologies about
the late write-up!

So we talked about a few things last week - on a recurring them of
IL generation and weaving we discussed verifying generated
assemblies with PEVerify
- and how to ensure IL you generate is not invalid and Garreth
mentioned some issues with ILDASM crashes when using Mono.Cecil.

We talked about the process for wrapping and abstracting
functionality and services, and I gave a brief mention to this blog
post which provides a slightly more formalized description to this
process - Wafagy.

The discussion moved onto file/XML persistence and substituting
traditional relational databases with alternative persistence
mechanisms, especially in the cloud.

Static analysis tools were discussed, and thoughts about what (if
any) alternatives exist to tools such as NDepend.

We talked about the use of "toolkit" style projects such as the
Umbrella project or

Rhino Commons
and the compromise often felt between plucking
out only the bits you want (to control the surface area of your
project) verses the wish to easily integrate updates and unit tests
from the library into your project as they undergo continual

I also talked about hostile templating/transformation languages
(such as the template language in Enterprise Architect which
I've been using for a recent project) and what features make a
domain or templating language "hostile" to being part of your daily
process i.e. lack of debugging, lack of comment syntax, poorly
identified or completely missed syntax errors, left to right
expression evaluation, lack of operator presidence rules etc.

I then gave a quick run through how I've been using the MDA and MDG
to model a PIM (platform independent model) of the domain,
including OCL constraints, and how it's automatically transformed
into a platform specific model (Castle ActiveRecord with

validation attributes
in this case) which is then used to
generate code from - and the issues I've encountered so far with
the tool.

Details of previous chats can be found here
on the wiki.

The next Architecture chat is this Thursday, all are welcome.

Written on July 7, 2008