CLSCompliantAttribute and the Naming Conventions

How embarrassing --- the CLSCompliantAttribute, which I was the PM for back in the day, does not follow the naming convention.  A reader pointed this out nicely in my comments.  All I can say is that this attribute has very heavy dependencies across *many* compilers and it was therefore deemed to hard to change once the Design Guidelines in this area were finalized. 


Lesson Learned: Get the design right the first time!  Listen up WinFX devs.. the little things do mater to our customers and ARE hard\impossible to change later.  


BTW – this, any many other perils are in the annotations for the BCL book that hit a book store (or website) near you soon..

Comments (7)

  1. Ferris Beuller says:

    Not really, you did a major naming cleanup from beta1 to beta2.

    Just change it and we have to change, flag it as subject to change and incorporate both and flag it as a warning depreciated. Thats normal on MSDN with things to be phased out, "This may be subject to change" and it usual does on later versions.

  2. Max says:

    Please tell us more about the BCL book 😉

  3. Matt says:

    I assume Brad means this book:

    .NET Framework Standard Library Annotated Reference, Volume 1: Base Class Library and Extended Numerics Library


    560 pp,

    MAR 12, 2004{D9324D1D-66A5-4B50-A86B-1934EED71FAA}/catalog/product.asp

  4. John Cavnar-Johnson says:

    Hmmm…. "CLSComplaintAttribute", you reversed the "i" and the "a" to make a rather amusing typo (sorry, my first job out of school was as a copy editor). It’s sort of appropriate. You’re asking VS to complain if you break the CLS rules.

  5. Max says:

    Thanks Matt!

  6. Keith Patrick says:

    CTRL-Shift-H, replace CLSCompliant with ClsCompliant, Match Case 🙂

  7. Brad Abrams says:

    Thanks John, i fixed it…

    Yes, Matt, that is the book… I decided to hold off linking to it until people can actually order a copy… That should be in the next couple of weeks… I will be plugging it a lot then…

Skip to main content