First article in a series on plug-in frameworks in .NET
This is the first article in a series of about 5-10 articles on a plug-in framework I'm developing. Don't run away and hide yet, the intent of the articles is to end with an intense study of providing a security system to allow arbitrary user code to run. I'll be borrowing ideas from the .NET Terrarium, existing plug-in architectures, and my own work on several image editor applications with plug-in interfaces.
The first article is a rather long-winded run-down of plug-in marking within an assembly. Most of the stuff may seem common sense, but I've seen a number of plug-in framework implementations and everyone is doing something different. This is the same thing that happens in the unmanaged world, but you would think there would be a more unified process using managed code. I really think there is, so I've defined all the ways you can mark types in an assembly as plug-ins and weighed the pro and cons of each method along with source code to demonstrate how you would use each, the performance, and how they can be used together to provide a rock solid marking implementation.
Plug-in Framework (Part1): Marking Types for Consumption