Question Regarding Plugin Architecture



I am working on a Web Application that can dynamically load
UserControls, a la a plugin style system. When I create any new
controls within the project, all is fine.

What my question is, would be how might I be able to allow someone to
create a plugin that would not require that I rebuild the application -
or is it even possible? Right now, this is what I have:

A BasePage class that inherits from System.Web.UI.Page that is used to
extend the Page object for extended rendering functionality.

A BaseControl class that inherits from System.Web.UI.UserControl that
is used to extend the UserControl object for specific rendering
capabilities that are used by all plugins.

I have a page that inherits from BasePage. To it, I've added a
PlaceHolder control. Then on Page_Load, I simply use LoadControl to
load the specific control and add it to the PlaceHolder. My ultimate
goal would be to build up a repository of these objects in a database
so that I could configure certain controls to be used in certain
situations. Basically, it is a CMS-type application.

Like I mentioned, as long as the control exists in the main project,
all is well. But assume that a third party wants to develop a plugin.
I don't want to give access to the code to that person, for obvious
reasons.

Are my options limited to adding the DLL from the plugin to the /bin
folder of the main application? After I do that, how do I get the
application to recongize the DLL? If I put them in a subfolder
structure to keep them organized, does this impact anything in regards
to the ability to load the control?

Thank you, in advance, for any input.

Joseph

.



Relevant Pages

  • Re: Creating a plug-in based WebApp
    ... | application to what Mats is describing. ... it is forced to use the "bin" as the only private ... | created a base control class that inherited from UserControl, ... My plugin that I have been playing ...
    (microsoft.public.dotnet.framework.aspnet)
  • Threading Model of ATL/EXCEL COM PLug in
    ... Plugin uses one Active X control (loads this Active X control in a ... Threading model of my plugin is Both. ... Threading model of active X control is Both. ... So How my plugin is able to load a DLL ...
    (microsoft.public.office.developer.com.add_ins)
  • Re: MFC Design Q
    ... If the main application holds the tree, and the plugin will send messages to ... You said that the plugin cannot handle GUI events (for example, ... User right click on a tree control item and a context menu is poped up: ...
    (microsoft.public.vc.mfc)
  • Re: UserControl HELP
    ... I know that the only control that allow me to draw a line is ... I spent a lot of time for create an ocx as flessible ... >> read from a database how many control load and than load the page. ... > UserControls have a lot of overhead. ...
    (microsoft.public.vb.controls)
  • Re: Creating a plug-in based WebApp
    ... I use masterpages to load my addins and I wrote a special Loader webcontrol that takes the name of the addin to load as a parameter. ... The addins in their turn look at the parameters they got and adds the correct .ascx file to its control collection. ... To restart the web application I'll probably resort to using an external program that installs the correct addins and then touches a file in the bin dir. ... My plugin that I have been playing ...
    (microsoft.public.dotnet.framework.aspnet)