• Plugin Manager

What is AspNetCore Plugin Manager

The plugin manager is an ASP.Net Core plugin manager which can be used to extend any Core website.

There are both built in extensions and the ability to add custom extensions. Built in extensions allow developers to quickly and easily add:

Custom extensions allow a host application to extend it's own interface, or expose inner workings that plugins can exploit, examples of which are:

  • Add menu items
  • Add buttons to a home page
  • Add marketing functionality in terms of rotating carousel images.
  • Customize internal web pages.

Supported Development Principles

Plugin technology is a nutural proponent to the SOLID principles of software development, each plugin has a single purpose and the host can be extended without being directly modified.

With each plugin having a single purpose, developers can focus on individual aspects of the entire project.

Benefits

Typically a software developer, or a team of developers within a software house will develop multiple solutions for many clients, each of those solutions will have many shared aspects, such as:

  • Customer Management
  • Log in
  • Marketing
  • Product Display
  • Invoicing and Accounting
  • Product Management

By utilising plugin technology in conjunction with the DRY principle, time to live from conception to release can be dramatically reduced. Whether it be adding a "Customer Management" plugin which is shared amongst many websites, to developing a single "Log In" plugin which can also be shared between projects. Once a plugin has been developed and tested it can be deployed simply by being loaded into the host application using the Plugin Manager.

There are many other benefits to using plugin technology within a website, they include:

  • Extendable. A website can be extended dynamically without recompiling or rebuilding the host site.
  • Paralell Development. Teams of developers can work on different aspects of the project, in paralell.
  • Reuse code. Once a plugin has been developed and tested, it can be re-utilised in other projects.
  • Quickly isolate and solve problems within a system.

How it works

The Plugin Manager exposes four static methods via the PluginManagerService class

  • Initialise. Initialises the Plugin Manager, loads all plugins.
  • Configure. Allows plugins to configure the request pipleine.
  • ConfigureServices. Allows plugins to add services to the host application.
  • GetPluginClasses. Retrieves an instance of class T from all plugins.

These four methods allow a host application to interact with all plugins.

The following image shows how the plugins relate to the host application.

plugin technology