I'm looking for suggestions about how can I build an extensible WCF server (with dynamically loaded services), preferably using System.Addins or MEF.
The server should host any WCF service (contained in DLL assemblies, loaded in runtime) that implements a minimal "plugin" API (StartService/StopService/GetStatus?/etc).
This post is a good start. Some objectives and points to discuss:
- Use/do not use an isolated AppDomain for each service?
- How to configure each service (endpoints, transport protocols)? XML-config file or a better alternative?
- Delayed/lazy load of assemblies (when a service request arrives)? Possible? Useful? How to?
- Assembly reload when file on disk changes (useful for development environment);
- Service restart when configuration on disk changes;
and, of course, other ideas are always welcome ;)