A .NET Core plugin framework.
The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:
Prise is a plugin framework for .NET Core applications, written in .NET Core. The goal of Prise, is enable you to write decoupled pieces of code using the least amount of effort, whilst maximizing the customizability. Prise helps you load plugins from foreign assemblies. It is built to decouple the local and remote dependencies, and strives to avoid assembly mismatches.
Prise features: - Easy setup - Eager and Lazy loading of plugins - Fully customizable loading of plugins - Loading plugins with their own dependencies - Loading plugins over the network - Supporting backwards compatibility for older plugins
| Nuget | Package | | --- | --- | | | Prise | | | Prise.Mvc | | | Prise.Proxy | | | Prise.Plugin | | | Prise.PluginBridge | | | Prise.AssemblyScanning.Discovery | | | Prise.AssemblyScanning.Discovery.Nuget |
At the heart, Prise uses a DispatchProxy of your contract. Every call to a method channels through this proxy and is delegated to the loaded plugin.
Prise does not require the plugin to implement the interface provided by the contract, allowing you to extend the contract going forward, whilst still keeping your old plugins backwards compatible. You can customize Prise to fit your needs, examples of this are: - Loading plugins from over the network - Loading plugins based on a condition at runtime (Environment Variable) - Loading multiple plugins and choosing which one fits the purpose for a specific task - Loading lazily or eagerly
Please see the getting started to check out the various example projects.