Realtime Plugin Question

Dec 20, 2013 at 12:11 AM
I am really excited about this project as it provides a great foundation for plugins within the context of MVC.

  1. I am attempting to dynamically add plugins. From my quick review of the code, it looks like you should be able to create a plug-in folder (~/Plugins) and put in your DLLs there. However, it doesn't seem to work for me.
  2. Is his feature even supported?
  3. Can you provide some guidance of how to support this task?
Dec 27, 2013 at 6:42 PM
You have to add the Plugin folder to acceptable places for .NET to load assemblies from. It was turning out to be too much trouble for my deployments, so I just drop the plugins in the bin folder. As of this writing, the framework only checks for new plugins at startup, but a public method could be created to check for new plugins that could be setup on the plugin admin page.
Jun 23, 2014 at 9:35 PM
Edited Jun 24, 2014 at 3:05 PM
Hi Guys,

I'm trying to do the exact same thing, I put all my DLLs into the Plugins folder and added it to the acceptable places for .NET to load the assemblies, right now I'm successfully loading the plugins, but I can not find the controllers, I get the following error:

In BaseMvcPluginApplication.cs
Line 107:            {
Line 108:               preRenderWidget(html, plugin, widget);
Line 109:                html.RenderAction(widget.Action, widget.Controller, widgetOptions);
Line 110:                postRenderWidget(html, plugin, widget);
Line 111:            }

[HttpException (0x80004005): The controller for path '/' was not found or does not implement IController.]
   System.Web.Mvc.DefaultControllerFactory.GetControllerInstance(RequestContext requestContext, Type controllerType) +366838
   System.Web.Mvc.DefaultControllerFactory.CreateController(RequestContext requestContext, String controllerName) +74
   System.Web.Mvc.MvcHandler.ProcessRequestInit(HttpContextBase httpContext, IController& controller, IControllerFactory& factory) +197
   System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContextBase httpContext, AsyncCallback callback, Object state) +49
   System.Web.Mvc.MvcHandler.BeginProcessRequest(HttpContext httpContext, AsyncCallback callback, Object state) +50
   System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +16
   System.Web.Mvc.<>c__DisplayClass7.<BeginProcessRequest>b__6() +31
   System.Web.Mvc.ServerExecuteHttpHandlerWrapper.Wrap(Func`1 func) +27

[HttpException (0x80004005): Execution of the child request failed. Please examine the InnerException for more information.]
   System.Web.Mvc.ServerExecuteHttpHandlerWrapper.Wrap(Func`1 func) +103
   System.Web.Mvc.ServerExecuteHttpHandlerAsyncWrapper.BeginProcessRequest(HttpContext context, AsyncCallback cb, Object extraData) +98
This issue is only occurring when I load the SlideShowPlugin DLL, the SimplePlugin loads fine.

can any of you give me some guidance on which path should I take to resolve this issue?

Sep 26, 2014 at 4:19 AM
I'm attempting to do the same as well. Has the author of the framework abandoned it?
Sep 26, 2014 at 12:26 PM
I still use and maintain the plugin framework. I've just never bothered with trying to verify loading dlls out of another folder than bin. I've run into other issues with using that Plugins folder, so just keep all the plugin dlls in the bin folder and all works fine. This framework is used in a variety of production web sites.
Sep 26, 2014 at 2:10 PM
So let me ask a stupid question (please forgive my ignorance) if I use this and keep my assemblies in the bin folder, I can have external projects that compile and have a post-build event to copy the DLL out to my web project's bin folder, and not have to reference it?