Project Description
Perfect Storm started life as a code generation utility.

It now includes Model Components, Rule Engine details and a class loader.

It requires .NET 4.0 to be installed.

PerfectStorm.CodeGen

Design Philosophy XML as a Domain Specific Language

This is a one stop code generation utility.
It permits model driven development leaving the user in total control.

Now includes the ability for the user to define their own Transformation Filters

The initial utility has the following syntax:

CodeGen model transform target [name value]*

This is now available on https://nuget.org/packages/PerfectStorm.CodeGen NuGet.

This can be used to create a batch file which when run against the model document can be used to generate whatever source you want.
Look in the demo folder for an example.

The transform is an xslt document.

Since the transforms and the model are entirely customizable by the user this can be used to create almost anything.

This project was inspired by Code Generation in Microsoft.NET.

The application now includes a small suite of xslt Functions.

There are a number of demo projects.

Here is a quick xslt tutorial. I am not claiming to be an expert, but I can read xslt.

I would love to get feedback on this project - ideas for expansion, contributed samples, success stories (or otherwise).
All contributions will be credited.

About Version Numbers

Things I Have Generated

PerfectStorm.Rules

I have taken to experimenting with the rules engine from the WF framework. This is a place for me to keep the rules engine parts.
The rules samples (see the tests) are now uploaded (which will be in the next full release when I get around to publishing it).
These cover creating business rules in the following techniques:
  • Explicitly in code.
  • From a readable xml document
  • Rule conditions and actions defined in strings
  • Rule conditions and actions defined in anonymous methods
  • Rule conditions and actions defined as lambda expressions

These rules (along with the model components) go a long way towards creating a set of validation rules that can cope with multiple attributes.
This is something that existing validation schemes miss.

I am planning to look at various ORM tools (which I do not plan to reinvent) to provide the last piece that I need before I can build the application framework that the Perfect Storm codegen requires.
Once that is done then this project will become far more useful.

PerfectStorm.Model

This is a composite model with an internal navigation system and custom type system.
It works well with the rules engine.

PerfectStorm.ServiceLocator

This is a generic service locator and activation framework.

PerfectStorm.PubSub

This is a Publish Subscription framework. This includes a notification system so that allows servers to be notified of client interest. The framework does not provide a transport mechanism or a serialization framework but does provide hooks for them to be used.

Last edited Mar 26, 2012 at 10:08 PM by chriseyre2000, version 22