reblGreen.NetCore.Modules 1.2.4

There is a newer version of this package available.
See the version list below for details.
dotnet add package reblGreen.NetCore.Modules --version 1.2.4                
NuGet\Install-Package reblGreen.NetCore.Modules -Version 1.2.4                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="reblGreen.NetCore.Modules" Version="1.2.4" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add reblGreen.NetCore.Modules --version 1.2.4                
#r "nuget: reblGreen.NetCore.Modules, 1.2.4"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install reblGreen.NetCore.Modules as a Cake Addin
#addin nuget:?package=reblGreen.NetCore.Modules&version=1.2.4

// Install reblGreen.NetCore.Modules as a Cake Tool
#tool nuget:?package=reblGreen.NetCore.Modules&version=1.2.4                

reblGreen.NetCore.Modules

This repository has been moved from BitBucket https://bitbucket.org/reblgreen/reblgreen.netcore.modules/ to GitHub https://github.com/reblGreen/reblGreen.NetCore.Modules and as of 2019/09/05 the BitBucket repository is no longer updated or synchronized with the latest commit history. For latest the source code please use the GitHub repository.

In a one-liner, the aim of the reblGreen.NetCore.Modules project is to make developing customizable applications as simple as possible with all the hard work done by the reblGreen.NetCore.Modules architecture.

This project is open source so please feel free to contribute suggestions, make modifications and pull requests back to the repository.


What and why is reblGreen.NetCore.Modules?

reblGreen.NetCore.Modules is an MIT license .NET Core 2.0 C# Class Library which offers an open-source system for creating event-driven, modular and plugin-based applications.

This project was started as a example project which demonstrated an implementation of Managed Extensibility Framework (MEF). A framework included in Microsoft .NET Framework 4.0 and is also available as an external component at codeplex for older versions of .NET Framework.

It was to demonstrate the architecture and benifits of a strict modular design pattern for developing complex applications.

Although the project was originally built with MEF, not many elements of it were are actually used. MEF was used to load the modules and privately inject the ModuleHost into the Host property of each Module, instead of rolling our own Reflection based loader. Since porting the project to .NET Core, removing MEF references in favor of Reflection was required. (THIS PROJECT NO LONGER DEPENDS ON MICROSOFT EXTENSIBILITY FRAMEWORK).

The project has since grown into an advanced framework designed to simplify the development of cross-platform applications using a modular or plugin-based design pattern. It is compatible with .NET Core 2.0 and platforms which support .NET Core class libraries. We now use this framework as the groundwork for all client projects.

  • reblGreen.NetCore.Modules is a simple, clean and compact .NET Core 2.0 class library for creating plugin-based, modular and customizable applications.

How do I get set up?

Take a look at the reblGreen.NetCore.Modules.ChatModule project in the source code. The ChatModule demonstrates the implementation of a Module in the form of a late 1900s style chatbot. This module shows how to handle a reblGreen.NetCore.Modules.ChatModule.Events.ChatModuleEvent which implements the IEvent interface.

The reblGreen.NetCore.Modules.ChatModule and reblGreen.NetCore.Modules.ChatModule.Events class libraries are referenced in the demo project located at reblGreen.NetCore.Modules.TestApplication, which is a console application. If you run this application without any modification, a console window will be displayed in which you can chat with the ChatBot module by entering text and pressing the return key.

The reblGreen.NetCore.Modules.TestApplication contains a BasicModuleHost class which inherits from reblGreen.NetCore.Modules.ModuleHost. This class implements the reblGreen.NetCore.Modules.Interfaces.IModuleHost interface. The ModuleHost class and implemented interfaces are used for loading modules and invoking the handling of events. There are no other dependency requirements in this project to keep it as simple as possible.

The layout of the projects within the reblGreen.NetCore.Modules directory and solution is to demonstrate the design pattern of keeping modules and corresponding events is seperate class libraries, and then referencing the class libraries from within an application which depends on them.

The core project and examples are well documented and if you get stuck or have any questions, please contact us and we'll be glad to help out.

For further documentation please see the repository wiki.


Contribution guidelines

  • Fork reblGreen.NetCore.Modules, make some changes, make a pull request. Simple!
  • Code will be reviewed when a pull request is made.

Who do I talk to?


License

  • The MIT License (MIT) - You are free to use reblGreen.NetCore.Modules in commercial projects and modify/redistribute the source code provided the copyright notice is not removed.
  • If you use reblGreen.NetCore.Modules in your own project we would love to hear about it, so drop us a line (and even a credit to reblGreen.NetCore.Modules in your project if you feel like being really generous). We would be very happy to hear about your experiences using our reblGreen.NetCore.Modules class library in your projects and any suggestions you may have for us to make it better.
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
.NET Core netcoreapp2.0 is compatible.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETCoreApp 2.0

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.2.7 471 9/27/2022
1.2.6 702 2/3/2022
1.2.5 313 11/30/2021
1.2.4 365 11/10/2021
1.2.3 329 11/3/2021
1.2.2 342 10/14/2021
1.2.1 340 10/14/2021
1.2.0 343 10/13/2021
1.1.9 355 10/13/2021
1.1.8 345 10/12/2021
1.1.6 371 6/21/2021
1.1.5 323 6/8/2021
1.1.3 432 11/20/2020
1.1.2 477 11/20/2019
1.0.3 478 10/28/2019
1.0.2 499 10/17/2019
1.0.1 519 9/23/2019
1.0.0 579 8/27/2019