Architecture

The biggest difference in architecture, compared to the default model in MEF, is that there exists a loose coupling between the ways that definitions are provided to the framework. In the default model (at the time of this writing MEF Preview 4 is the latest version) there is a tight coupling between the model and the way definitions are provided, with the help of attributed.

In the provider model there is an abstraction layer in place which enables definitions to be provided in multiple ways, with the ability to add new ways as you desire.

provider_model_overview.jpg

The top layer is known as the definition provider layer. These are the actual implementations which enables specifying definitions in various ways. In-between the definition providers and the provider model exists an abstraction layer.

In this abstraction layer there are a set of data transfer objects which exists to help map the input from the definition providers to a format that the provider model can work with. So all that’s needed is to make sure these objects are instantiated the correct way and the provider model will be able to use the new definition provider.

provider_model_definition_providers.jpg

The data transfer objects exposes the functionality in the provider model which can be controlled by the definition, for example the name of the contract.

Last edited Mar 3, 2009 at 9:33 PM by TheCodeJunkie, version 2

Comments

No comments yet.