Amazon.com Widgets Browse by Tags - Brad Abrams - Site Home - MSDN Blogs

Brad Abrams

Design Guidelines, Managed code and the .NET Framework

Browse by Tags

Tagged Content List
  • Blog Post: Framework Design Guidelines: LINQ

    Wow, it feels like old times ...  I am happy that we are posting a new proposal for additions to the framework design guidelines.  Mitch has worked hard on these, and we have reviewed them internally and now it is time for your comments.   Please do chime in! LINQ Framework Design...
  • Blog Post: Design Guideline Update: handling nulls in public APIs

    We had a recent thread internally that resulted in me updating the guidelines below… Please let me know if you have any questions or comments. Do provide overloads for methods with optional arguments. If a method takes some arguments that are not required provide overloads of the method without the optional...
  • Blog Post: Design Guideline update: put cleanup code in finally blocks

    Another new guideline.. this one sparked a lot of discussion during our internal review, lets see if I cleaned it up well enough or not ;-) Do put cleanup code in finally blocks. Even code that immediately follows a catch() can be interrupted by an asynchronous exceptions (an exception caused by another...
  • Blog Post: New Design Guideline: Parameter validation

    More guideline updates from the Security push (as Soma said earlier this year , the push is now upon us!) Do be aware that mutable values may have changed after they were validated. If the operation is security sensitive you are encouraged to make a copy, then validate and process the argument. The following...
  • Blog Post: New Design Guideline: Null Paramarrays

    Based on some security reviews we are doing on the system in general I added this implementation note to the Design Guidelines. Do be aware that null could be passed in for the paramarray. You should validate that that paramarray is not null before processing (see section on parameter passing for more...
  • Blog Post: New Design Guideline: Be consistent in naming parameters when overloading, overriding and implementing interfaces

    We have seen this come up a more than a few times in WinFX API reviews so I thought it was worth adding a quick guideline… As always, please let me know if you have any questions or comments. You can check out the base design guidelines and my incremental updates. Do be consistent in naming parameters...
  • Blog Post: New Design Guideline: Avoid Protected Static

    Here is a minor update to the design guidelines around subclassing. It is based on this quiz I did a last week . Please let me know if you have any questions or comments. As always, you can check out the base design guidelines and my incremental updates. Avoid Protected Statics. Carefully consider what...
  • Blog Post: New Design Guideline: Virtual Members

    As you might guess from my last few posts , I have been doing some thinking about virtual members. Here are the updated guidelines. Please let me know if you have any questions or comments. As always, you can check out the base design guidelines and my incremental updates. Do not call virtual members...
  • Blog Post: New API Design Guideline: Enums

    There are a few topics that are likely to generate a long thread of discussion whenever they come up Exceptions, finalization, and Enums are among them Kit George spent a fair amount of time working with folks across WinFX on how to “correctly” use Enums. There is of course, more to say here...
  • Blog Post: New Design Guidelines Posted: Resources and Xml

    If you have not been tracking Kris’s blog , you might have missed that we recently posted two new design guidelines for Framework developers. As always comments are very welcome, even encouraged. Exposing XML Data Resources Please see the design guidelines and other incremental...
  • Blog Post: New Design Guideline: Generics

    Please check out the new generics design guidelines and as always, let me know if there any any questions or comments.
  • Blog Post: Minor update to Enum size guideline

    Here is a minor clarification on the enum size guidelines. Please let me know if you have any questions or comments. As always, you can check out the base design guidelines and my incremental updates. Do use Int32 (the default in most programming languages) as the underlying type of an enum unless...
  • Blog Post: Design Guidelines Update: Exception Message Guidelines

    It has become clear to me recently that we could be doing a better job with exception messages. I took these guidelines from a set that the UE team on the .NET Framework uses. Love to hear your comments, issues, and suggestions. 7.3.2 Exception Error Messages Do provide rich and meaningful message...
  • Blog Post: Design Guideline Update: Uri vs. string

    ChrisAn blogged about this a few weeks ago and I am happy to announce that Krzysztof Cwalina has a guideline ready for you to comment on! System.URI Usage Use System.Uri to represent URI/URL data. This applies to parameter types, property types, and return value types. public class Navigator...
  • Blog Post: Design Guidelines Update: Enums vs Boolean Arguments

    This was a pretty heavily debated guideline internally, I think we reached a good conclusion... Your feedback welcome as always! The full guidelines can be found here , we will be roll this (and other updates) into it for the whidbey release. Enums vs Boolean Arguments A framework designer is...
  • Blog Post: Design Guidelines Update: "Core" Method pattern

    Minor tweaks to this guideline to line up with what is, I believe, common practice already.. As always questions, comments and annotations to me, and the full guidelines can be found here: http://www.gotdotnet.com/team/libraries ---------- It is recommended that you provide customization...
  • Blog Post: Pointer Arguments

    Somewhat of a niche guideline... but I got questions internally so it seemed worth writting it down and sharing with you. As always, comments welcome -------------------------------------------------- It is very rare but possible to use pointer arguments in a well designed framework...
  • Blog Post: Avoid non-zero based integral indexers for collections

    I am clearing out a backlog of Design Guidelines issues... Do use zero based indexes if the collection is integral indexed. Annotation (BradA): In designing the first version of the .NET Framework we went around and around on using zero or one based indexes for collections. There was...
  • Blog Post: Minor update to the base class guidelines

    Fairly minor update -- as always, let me know if there are questions or comments. --------------------------------------------------------- Consider using abstract classes (even if there are no abstract members) if the class is designed to be a root in an inheritance hierarchy make this clear...
  • Blog Post: Design Guideline Update: Explicit Member Implementation

    Long overdue update the the guidelines on Explicit member implementation. As always, feedback welcome. Explicit Member Implementation Explicit member implementation allows an interface member to be implemented such that it is only available when cast to the interface type. For example consider...
  • Blog Post: Small Design Guideline Update: Overriding Exception.ToString

    One of the folks on my team just added a minor update to the Design Guidelines document about overloading ToString() on Exceptions. As always, comments are welcome. Do override ToString when your exception provides extra properties. The code handling the custom exception may not have ...
  • Blog Post: Design Guidelines Update: Variable Number of Arguments

    Based on some very good feedback from Eric Gunnerson , I recently updated the Design Guidelines with some more info on Params. As always, comments welcome. Have a guideline that is consistent with the current set that you’d like to see added? Write it up in this format and I will...
  • Blog Post: Design Guidelines Update: Implementing Interfaces Privately

    Another one hot off the presses... As always you comments are welcome. Consider implementing interface members privately (explicitly), if the members are intended to be called only through the interface. This includes mainly members supporting some framework infrastructure, such as data-binding...
  • Blog Post: Subclassing Usage Guidelines

    Hot off the presses.. I just added this to the working draft fo the Design Guidelines document internally. As always, comments welcome. 4.1.2 Subclassing Usage Guidelines One of the advantages of an object oriented environment is that developers can extend and customize the system...
  • Blog Post: Assembly/DLL Naming Guidelines

    I have not seen this be much of debate externally, but it has been pretty hotly debated internally. We just closed down on this guideline... As always, your comments are welcome: 2.3.4 Assembly/DLL Naming Guidelines An assembly is the unit of deployment and security for managed code...
Page 1 of 2 (28 items) 12