does MEF apply the SOA paradigm?
in this post I'm going to argue that the Manage Extensibility Framework (MEF),
is actually applying to the 4 tenet of Service Orientation Architecture (SOA),
therefore MEF is actually, in-process implementation of the SOA paradigm.
Background
when we speaking about SOA we used to think about technologies like web services andWCF,
which is cross process technologies.
but does SOA define that services should always be consumed from the clouds?
local services like loggers, rule engine, cache and more are everyday practice for in-process services.
What make your architecture, service oriented?
different architect having different opinions of how to construct SOA architecture,
but most of them agree that SOA design should apply to the 4 tenets of SOA.
The 4 tenets of SOA
Service should have Explicit Boundaries.
Service API should rely on Contract.
Service behavior and compatibility should rely on Policy.
How MEF apply to the 4 tenets?
MEF boundaries define explicitly by the Export definition.
separating exports into separate dlls will create autonomous unit which has no need
for any reference but the reference for the services contract.
Imports does not aware of the actual implementation, imports are solely relay on the contract
(composition will find export that mach the import contract).
MEF has different policies mechanism like metadata, creation policy,
instantiation policy, recomposition.
Summary
despite MEF being an in-process technology it does apply to the 4 tenet of SOA,
therefore it can consider as such.