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

 MEF应用于SOA_cache Service should have Explicit Boundaries.

MEF应用于SOA_behavior_02  Service should be Autonomous.

MEF应用于SOA_soa_03 Service API should rely on Contract.

 MEF应用于SOA_behavior_04 Service behavior and compatibility should rely on Policy.

 

How MEF apply to the 4 tenets?

 MEF应用于SOA_cache MEF boundaries define explicitly by the Export definition.

MEF应用于SOA_behavior_02  separating exports into separate dlls will create autonomous unit which has no need

for any reference but the reference for the services contract.

MEF应用于SOA_soa_03 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应用于SOA_behavior_04 MEF has different policies mechanism like metadatacreation 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.