Skip to content
/ Prise Public
forked from merken/Prise

A .NET Core plugin framework.

License

Notifications You must be signed in to change notification settings

dystudio/Prise

 
 

Repository files navigation

What is Prise?

Prise Logo

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

Latest version

Prise Nuget (with prereleases)

Prise.Plugin Nuget (with prereleases)

Prise.AssemblyScanning.Discovery Nuget (with prereleases)

How does Prise work ?

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.

About

A .NET Core plugin framework.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 100.0%