Giter VIP home page Giter VIP logo

plugin-framework's Introduction

Plugin-Framework

Functionality

  • PluginManager allows easy plugin management
PluginManager manager = new PluginManager();
manager.LoadPlugin(pluginPath);

//Using a directory for Plugins
PluginManager manager = new PluginManager(pluginDirectoryPath);
manager.LoadPlugins();
  • Can set a verification function or lambda expression to allow plugins like an API key
//Simple verification
manager.SetKeyAllow((string key) => { return key == "something"; });

//Verification using SQL database
manager.SetKeyAllow((string key) => {
  SqlConnection sql_con = new SqlConnection(DBConnectionString);
  sql_con.Open();
  SqlCommand sql_com = sql_con.CreateCommand();
  sql_com.CommandText = "SELECT * FROM keytable WHERE key = '" + key + "'";
  SqlDataReader sql_reader = sql_com.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
  if (sql_reader.Read())
  {
    return true;
  }
  return false;
});
  • Can pass parameters using PluginConfiguration
Dictionary<string, object> parameters = new Dictionary<string, object>();
parameters.Add("value", 30);
parameters.Add("phrase", "Hello World");
parameters.Add("bytes", new byte[] { 1, 2, 3 });

Plugin Types

Easy plugin coding using abstract plugin types or implement IPlugin for a custom one

Included types:

  • Runnable
  • Menu (Windows Forms MenuStrip)
  • Forms<System.Windows.Forms.Control>
  • WPF<System.Windows.UIElement>
  • File

Test plugins and apps

Plugins and apps using the plugins are located on the Tests folder

NuGet

NuGet is available here https://www.nuget.org/packages/rubendal.PluginFramework

plugin-framework's People

Contributors

rubendal avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.