Archives
-
Evolving an API without breaking clients via extension methods, ObsoleteAttribute and EditorBrowsableAttribute: Part II
Due to a bug in VS intellisense (go vote for it!), my otherwise nice approach to API evolution doesn't quite work as I expected. Basically, regardless of whether you flag your obsolete methods (extension methods created by moving the deprecated behavior into a new "Legacy.dll" assembly) with EditorBrowsableState.Never, they will still show up in intellisense. You typically don't want that, as it would confuse users of test projects that contain legacy tests about which methods should be used:
-
Evolving an API without breaking clients via extension methods, ObsoleteAttribute and EditorBrowsableAttribute
API evolution is tough and versioning is a complex enough issue that deserves not one but several posts. So I will only focus on one specific kind of evolution and backwards compatibility: Source Compatibility.