I recently decieded to start merging some of my code that I use in a lot of my little projects into a centralized framework, and provide a consistant API for them. (As well as give me a reason to experiment with Visual Studio 2010 ^^).
So today, I released a pre-alpha version of the "Mitch.Web" framework, currently only semi-complete API is the ILogger framework, inspired by Uwe Schmitz demo presentation (with a few design/enhancements I felt were necessary).
API is similar to Uwe's, with a couple of key exceptions, instead of using Unity to auto construct the configured logger, I built a .NET Config Section/Handler for the configuration, and exposed it in a Global Module called "App". The advantage of this approach, is my configuration settings are a bit more flexible, and allow multiple loggers to be used at any given time, as well as referencing a specific logger by a key specified in the config file.
Configuration is highly dynamic, allowing you to specifiy parameters for your constructor, as well as providing parameters for parameters etc recursively instatiating all dependcies.
It does use reflection for instatiation, but currently it caches the final logger collection in memory, so it only instatates once. I plan to improve on this in the future for longer running process like services and web applications, in which I will throw it into a cache with a dependency on the config file the collection was instatiated from, so that if the configuration changes it will refresh the logger collection on the fly.
There are a couple other gems in there that are kind of neat, I'm going to be enhancing this framework for some time yet, but if you want to check it out now, in early development and provide feedback it would be most useful, especially this early in the life cycle. Not much documentation yet I'm afraid, but I promise before I release the full release, all libaries and API's will be fully documented.
So if your interested, it's up on CodePlex here: http://mitchweb.codeplex.com/
Couple of things to note:
- You need to download Visual Studio 2010 Beta 2 in order to open the source
- Written in C#, although maybe someday I'll create a VB version as well.
- Released under an MITÂ License.
Enjoy!