A plugin architecture remains a valuable option to make your application extensible. With the introduction of AssemblyLoadContext and AssemblyDependencyResolver in .NET Core 3, creating and loading plugins became a lot easier. Still if you need more features I would recommend having a look at the DotNetCorePlugins project: https://github.com/natemcmaster/DotNetCorePlugins Usage is simple through the PluginLoader class: One nice feature it adds to the mix is hot reloading. This will allow you to dynamically update assemblies on the fly: