.NET Core Plugins: Prise 1.2.3 (as easy as)
If you’ve missed out on what Prise is, it’s a .NET Core Plugin framework.
After carefully listening to some feedback, I’m happy to announce that Prise is back with updates!
Since version 1.0.0, the following issues have been tackled.
- Fixed bugs when loading assemblies
- Added support to specify dependency loading preference
- Added support for async Contract, Contracts that return Task<T>
- Unloading the loaded plugins using scoping and IDisposable
- Added fully working examples
- Targeting .NET Core 3.0
- Removed the requirement for the [Serializable] attribute on return types
- Using Newtonsoft.JSON for serialization in .NET Core 2.1
- Using System.Text.Json for serialization in .NET Core 3.0
- Remove dependency bulk in .NET Core 3.0 package
- Introduction of a non-generic TaskCompletionSource
- Added Integration Tests
- Updated docs
To specify on the loading preferences, assemblies are loaded from the default dependency context by default. You can prefer loading from local dependencies or loading from the remote location by specifying it during plugin configuration in the Startup file.
Getting Started
The library of examples has expanded, including an example for an Avalonia app, Azure Functions, ASP.NET Core using remote plugin loading and more.
We try to keep up with the various use cases for Prise.
In the meanwhile, feedback is welcome, just submit a Github issue.
What’s next
The example library will be expanded with a Microservice example using a variety of plugins in form of an IRepositoryPlugin. Where we’ll implement the following plugins for our microservice:
- TableStoragePlugin
- SqlPlugin
- CosmosDbPlugin
Based on an HTTP Header, we’ll load the corresponding plugin for that call. This will be the most extensive example, yet. So stay tuned!