Homeward Bound

The last year in Redmond has been truly amazing. Besides working with the great people in the .NET team and elsewhere at Microsoft – an experience that can’t be done justice in a brief blog post like this – I’ve also had a chance to take in Seattle and to explore the incredible Pacific Northwest….


Debug Composition from within Visual Studio

This morning Dave came up with a great suggestion for finding MEF composition problems from within Visual Studio. By registering the composition analyzer as an external tool, the root cause of a composition problem can be located in a flash! Step 1 – Obtain MEFX.EXE First, you’ll need to build mefx.exe from the MEF Codeplex…


Parameterised Triggers and Re-Entrant States in Stateless v2

Since working on a clinical outcomes review system a couple of years ago, I’ve been aware of the gap between simple hand-coded workflows and the full-blown workflow tools. Stateless embodies the idea that a state machine can use closures to implement workflow without taking on persistence responsibilities. So long as all of the data used…


Analyze MEF Assemblies from the Command Line

In MEF Preview 6 we shipped a sample assembly called Microsoft.ComponentModel.Composition.Diagnostics, demonstrating the kinds of things that can be determined by (semi-) statically analyzing MEF catalogs. With Preview 7 we added a utility that makes use of the diagnostics routines to print information about parts directly from the command-line. C:\Users\…\CompositionDiagnostics> mefx /?   /?      …


Dynamic Part Instantiation in MEF

Disclaimer: This functionality is not shipping in .NET 4 (but is available in the recent CodePlex drops, see below for more details.) The golden rule of using composition to simplify your architecture is to avoid calling the container directly. Until now, MEF users have had to jump through hoops to observe this rule in some…


Implementing Optional Exports with MEF Stable Composition

Disclaimer: As usual, this blog post is discussing pre-release software, which may differ from the final released version. Ayende once observed that MEF is very focused on dependency management. It’s an accurate description of the driving force that has shaped MEF as it is today. Dependency management doesn’t end at build time with assembly references….


MEF Preview 6 Available

In the three months that have passed since the last release, we’ve been very busy making final adjustments to get closer to RTM. In this post I’ve summarized the biggest changes between the Preview 5 and Preview 6 releases. The highlights are: Silverlight support Lazy<T> replaces Export<T> Collection import changes Inheritance changes Export attribute is…


Appearance on .NET Rocks!

This week I took some time out to talk to Richard and Carl on .NET Rocks! about Autofac, MEF and component-oriented software in general. If you have any questions about material from the show, please feel free to post them in the comments.


State Machines in Domain Models

I was reminded today of Stateless, a little project that I’m quite fond of. Stateless is a hierarchical state machine framework based on Simple State Machine for Boo, but configured using C# 3.0. When I announced Stateless last year, I hardly even explained its purpose, let alone its tongue-in-cheek name. I think I owe it…


MEF: Dependencies are Queries?

Start to schematically represent any component system and you’re likely to come up with a diagram like: So what do the dependency and the service actually mean? In most implementations, each is associated with a key: Here the Screen Renderer component needs the Typesetter service, which the Fast Typesetter component can provide. Dependency resolution is…