What are the best practices to create a site, with ability to develop plugins for it?
Like you want to create a blog module, and you want users or co-developers to add plugins to extend this module functionality.
Update: Thanks for the ultra speed answers, but I think this is over kill for me. Isn’t there a simpler solution, like I have seen blogengine plugin creation system is you just have to decorate the class plugin with [Extension].
I am kind of mid core developer, so I was thinking of base class, inheritance, interfaces, what do you think ?
Edit
I completely rewrote my answer based on your question edit.
Let me show you just how easy it is to implement a plugin architecture with just the minimal steps.
Step 1: Define an interface that your plugins will implement.
Step 2: Create a plugin that implements IPlugin.
Step 3: Run the plugin.
Keep in mind, this is just the basic, most straightforward example of a plugin architechure. You can also do things such as
AppDomainif your design so dictates.