One of the weirdest things for me is trying to understand the motives behind some of the technical decisions that went into designing the VS.Net Add-in/Plugin architecture. It's an amazing and powerful scheme that allows a plugin developer have various degrees of power, but there's just something weird about it. It still uses COM!
Why must Add-in developers suffer going through to create VS.Net add-ins? is it some sort of security thing?
Is using pure reflection based loading too simple? Seems to me like someone was trying to make this difficult on purpose, so that it won't look like child's play to create add-ins or understand how they work.