I am looking for suggestions on how I can build an extensible WCF server (with dynamically loaded services), preferably using System.Addins or MEF.
The server must host any WCF service (contained in DLL assemblies loaded at runtime) that implements the minimum plug-in API (StartService / StopService / GetStatus? / Etc).
This post is a good start. Some goals and points for discussion:
- Use / not use isolated AppDomain for each service?
- How to configure each service (endpoints, transport protocols)? XML-config file or better alternative?
- Delayed / lazy loading of assemblies (when a service request arrives)? Possible? Is it helpful? How?
- Reloading the assembly when changing the file on disk (useful for the development environment);
- Restarting the service when changing the configuration on the disk;
and, of course, other ideas are always welcome;)
source share