What is the best implementation in my problem RRS feed

  • Question

  • I have a Ribbonmgr in DllA.
    Project A (my Shell) has a reference to DllA.
    Project B is the framework.

    Project A has reference to Project B.

    Project C, D , E are my plugins that has reference to Project B. Rule is these plugins is not allowed to have reference to DLLA.

    How these plugins (Project C, D, E) can consume the Ribbonmgr in DLLA so they can create what ever ribbon button they want and show those ribbon button in Project A.
    Thursday, June 4, 2009 3:51 PM

All replies

  • You may have a problem, since "Ribbon Button"s are probably defined in DllA, if it's the ribbon manager.  If that's the case, you will not directly be able to create them without a reference.

    If that's not the case, then you should be fine.  Your framework will need to expose some API for the plugins to add buttons/etc, and an API for the shell project to consume the buttons (ie: be notified that it needs to add it).  The shell project can take care of the details (in terms of adding to DllA).

    Just make sure that the framework project doesn't take on a reference to the DLL - this can be as simple as having a method in some class for adding a button (ie: AddButton(...)), and an event for the shell to know it needs to add a button (ie:  ButtonAdded(...)).  Those two things let you wire up the projects without references outside of project B.
    Reed Copsey, Jr. -
    Thursday, June 4, 2009 4:03 PM