Publicly available C#/.Net Standards, Guidelines and References

C# and .Net have not penetrated the safety and mission critical markets where C++, Ada, et al have dominated and so few, if any, standards on C# have emerged from the traditional standards bodies like IEEE, NIST, ISO, etc.  C# and .Net also don't have the community involvement that Java has and so fewer guidelines or "best practices" have emerged from the vendor community.  Still, an initial critical mass of standards/guidelines/etc. appear to have evolved from C# and .Net earning a place in the technical architectures of enterprise business systems.
Effective Series by Addison Wesley  - Addison Wesley has expanded their "Effective" series which did so well with C++ (two volumes) and with Java.  Effective C# hasn't wowed the community the way Effective C++ did but it is still a valuable reference covering sound coding practices, guidance in how to use C# (as opposed to C++ and Java), and techniques for effective (as the title suggests) use of the .Net run-timeThis series also includes additional material on .Net 2 Enterprise Library and more titles are probably in the works. 
MSDN - Many people love to hate Microsoft but even detractors will admit that Redmond takes seriously the support they provide to their development community.  The Microsoft Development Network (MDSN) comes packaged with every version of Visual Studio (even the free ones) and in the online version of MSDN expands daily with new material. MSDN has also evolved from its roots in the '90s as heavy on the how-to and syntax of using Microsoft technologies to become very strong in the areas of practices, architecture and alternatives.  The options discussed heavily, and naturally, favor Microsoft options but not always.  Redmond appears to recognize the value of (limited) intellectual freedom in this arena.
Microsoft .Net Development Series - Microsoft has partnered with Addison Wesley to publish the Microsoft .Net Development Series of books. The architects of the .Net products are primary contributors to this series which gives great insight into the thinking of the .Net architects but admittedly might filter things a bit - e.g. criticism of .Net relative to J2EE is understandably rare.  Other contributors mostly come from industry - you don't get many academic insights but there is a bit more than the voice of Redmond available in this series and the series consistently shows the combined influence of raw technology capabilities blended with practical enterprise experience.  This series moves far beyond coding syntax or "how to" but includes topics such as how to design, build and evolve your own .Net API (a common enterprise architecture responsibility) and other advanced topics.
Community websites - There are a number of community websites devoted to C#,, .Net, etc.  CodeNotes , DevX and CodeGuru are examples of multi-technology (Java, XML, PHP, etc.) sites that also provide good info on C# and .Net.  C# Corner and are obviously devoted only to .Net technologies and the latter is a Microsoft site. The community is not as vibrant as with the J2EE community which I attribute to several factors.  First, the Dot-Com-Boom just made people plain crazy over J2EE but .Net has matured more in in a timeframe less given to such irrational enthusiasm.  Also, because .Net is a proprietary product almost completely under control of Microsoft, it hasn't captured the fervor of the grass-roots, academic, and open-source communities.  Finally, despite IBM at various times re-stating its commitment to .Net, developerWorks and other big-vendor sites have stayed more devoted to J2EE than embracing C#, .Net, etc.
Academic and professional articles - C# isn't as widely discussed in the professional articles as C++ or even C still is but there is some involvement from the academic and professional community.  C# Precisely is a nice book by MIT Press that not only covers instruction in the language but "rules of thumb" as well.  There are discussions about if C# be used for the ACM standard computer science courses - in place of or in combination with C++ and Java.  However, C# remains a 2nd class citizen in these communities largely in part due lack of real-time support.  It general it gets more attention from people with a focus on simulation, model-driven development and web services or SOA.
- Brian


No comments: