I've been profiling my apps with FXCop, it seems to do an okay job of catching stuff, however, I completely disagree with it's suggestions in some cases. (This is more of an issue with the standards, and rules that drive the app, than the app itself.)
For example:
Quote:
Info : "Public constructors for abstract types do not make
sense because you cannot create instances of abstract
types."
I disagree.
http://msdn.microsoft.com/library/ms182126%28VS.100%29.aspx[
^]
If you follow the link they gave me, it goes on to blah, blah, about how the type is "improperly" designed, etc,.
If you create an abstract class, and use virtual methods, you can do a lot of work behind the scenes in the base(abstract) class, keeping the class that inherits from it much cleaner. (This code must exist, either in the base class, or in the actual class, it's logical to me, to abstract anything you can, for simplicities sake. (And my sanity.))
So, on the occasion, when I need to accomplish certain things, I do exactly what it claims you shouldn't, and it works fine, and gives me cleaner code. I see no downsides, aside from MS not liking it.
I'm sure some of you might have differing opinions here, but, really, that isn't the point, this is just an example of what we're discussing.
----
So, back to my question, how seriously do you take it? Do you do everything it says(false positives not included, of course), or do you cherry pick, etc,. ?
I follow standards when they make sense, and have sound reasoning, etc, but, not when they're limiting my ability as a programmer for arbitrary reasons like:
Quote:
Info : "Public constructors for abstract types do not make
sense because you cannot create instances of abstract
types."
Your lack of creativity, and vision, is not my failing MS, why is this a standard? No one at MS ever thought of using an abstract class to abstract stuff? Really?
So really, this about standards, do you guys always follow standards, or do you go all rebel like me, and do your own thing when you think it's the right solution?