Click to Rate and Give Feedback
Collapse All/Expand All Collapse All
This page is specific to
Microsoft Visual Studio 2008/.NET Framework 3.5

Other versions are also available for the following:
.NET Framework Developer's Guide
Design Guidelines for Developing Class Libraries

The design guidelines for developing class libraries are for library development that extends and interacts with the .NET Framework. The goal of the .NET Framework design guidelines is to help library designers ensure that their users reap the benefits of API consistency and ease of use by providing a unified programming model that is independent of the programming language used for development. It is strongly recommended that you follow these design guidelines when developing classes and components that extend the .NET Framework. Inconsistent library design adversely affects developer productivity and discourages adoption.

These guidelines are intended to help class library designers understand the trade-offs between different solutions. There might be situations where good library design requires that you violate these design guidelines. Such cases should be rare, and it is important that you have a clear and compelling reason for your decision.

Portions Copyright 2005 Microsoft Corporation. All rights reserved.

Portions Copyright Addison-Wesley Corporation. All rights reserved.

For more information on design guidelines, see the "Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries" book by Krzysztof Cwalina and Brad Abrams, published by Addison-Wesley, 2005.

Guidelines for Names

Describes guidelines for naming types and members in class libraries.

Type Design Guidelines

Describes guidelines for using static and abstract classes, interfaces, enumerations, and structures.

Member Design Guidelines

Describes guidelines for designing and using properties, methods, constructors, fields, events, and operators. This section also describes best practices for designing parameters.

Designing for Extensibility

Describes guidelines for designing libraries that can be extended.

Design Guidelines for Exceptions

Describes design guidelines for designing, throwing, and catching exceptions.

Usage Guidelines

Describes guidelines for using arrays and attributes, and guidelines for implementing equality operators.

Reference

Asynchronous Programming Design Patterns
Community Content   What is Community Content?
Add new content RSS  Annotations
This is so fundamental to abstraction (i.e. progress in software)      pushbomb internet.tv platform   |   Edit   |   Show History
Although some may find this dry content, it is perhaps more important by many orders of magnitude over raw 'API' type references.

This is a 'guide' to what is essential a 'guide' (a framework is essentially making software development easier, faster, less prone to error, less prone to have people perform 'copy/paste' reuse, etc. etc.

Anyway glad to see this up.

Damon Wilder Carr
This is the fundemental to enterprise style development      OOBoyWonder   |   Edit   |   Show History
I agree with the other poster's comment - this is dry content :) However, if you're new to .NET and you have ambitions of becoming an "enterprise quality developer", pay attention to this. This is a good starting point. It really doesn't take that much effort to develop code according to these guidelines. Over time, you'll find the more organized and consistent you are - the easier it is to build on and maintain the applications you develop. The end result is you can spend more time writing and solving interesting problems rather than trying to "re-discover" the intent of what you or someone else did. This is especially important in an enterprise shop with dozens or hundreds of developers. You'll also gain the admiration and gratitude of your peers :).
Just one little thing missing...      Hugo Durana ... Aslam Kazi   |   Edit   |   Show History

I agree with both OOBoyWonder and DamonWilderCarr, although i have to say that something is missing. And that something happens to be "Private and internal field capitalization convention".

Apart from that, Microsoft has really done a fine piece of work. This kind of content should become mandatory reading material for every developer, young and old.

Hugo Durana.

Downloadable version of Guidelines      Sergiu Dudnic   |   Edit   |   Show History
Hello. How can we obtain a downloadable version of this guidelines by ex. in PDF or DOC formats?
Downloadable version?      captainks11   |   Edit   |   Show History
I'm with Sergiu. Why isn't there a downloadable-version of this?

I know it would be HUGE... and this is easier for Microsoft to manage... but it doesn't help us Dev-groups, much, when we want to "print" or "display for training".

I wish it was placed, here, in distributable fashion.... versioned, too.
Tags What's this?: Add a tag
Flag as ContentBug
Get your own version.      Rudedog2   |   Edit   |   Show History

Portions Copyright 2005 Microsoft Corporation. All rights reserved.

Portions Copyright Addison-Wesley Corporation. All rights reserved.

For more information on design guidelines, see the "Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries"book by Krzysztof Cwalina and Brad Abrams, published by Addison-Wesley, 2005.

If you want your own copy, refer to book they noted above. Portions of this material is from the book.

http://blogs.msdn.com/kcwalina/archive/2008/10/27/9018557.aspx

I also suggest you buy a copy of Krzysztof Cwalina's book on how the Framework APIs themselves were designed. Knowing how and why it was designed the way it was, gave me a keener insight on how to better leverage what the FCL offered. Plus, FxCop began barking at me far less.

http://blogs.msdn.com/kcwalina/archive/2007/03/29/1989896.aspx

He gave a lecture about the content of the book.

Tags What's this?: Add a tag
Flag as ContentBug
Processing
© 2009 Microsoft Corporation. All rights reserved. Terms of Use | Trademarks | Privacy Statement | Site Feedback
Page view tracker