Brad Abrams
Design Guidelines, Managed code and the .NET Framework
February 2004 - Posts
Debug and Retail Builds
Over the weekend some of the big-brains on the CLR team (oh, and me too) are having a debate about introducing the concept debug and retail builds of the .NET Framework. The high level concept is to move some “code correctness” checks out
Read More...
A good compilation of new .NET Design Guidelines
Ken Brubaker has a good compilation of new .NET Design Guidelines .. Thanks. At his suggestion I also added a new category to my blog where you can see just those new guidelines we have recently added. Enjoy.
Read More...
More in Win32 Signtures
A while back I posted some thoughts on Win32 signatures… The CLR interop team has been hard at work figuring out the right solution, expect to see more soon. In the mean time check out these PInvoke signatures the C# team posttest a while back.
Read More...
A winner for my little quiz on NullReferenceException
In a previous post I asked I said that we throw a NullReferenceException when you try to access instance “state” (eg a field). What if you have an instance method that does not touch any instance state (for example an instance method that
Read More...
AV or NullReference Exception
In my comments Pavel ask: How does the CLR decide if a given AV should be converted to a NullReferenceException or not? Jonathan Keljo the PM in charge of the CLR exception story tells me that in v1 and v1.1, all AV's, regardless of the target address,
Read More...
Returning empty arrays vs nulls
I could have said it better myself… thanks Wes . Empty Arrays
Read More...
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 *
Read More...
More on Setting Environment variables
We had an internal thread about Setting Environment variables and someone posted a cool V1\V1.1 solution. One workaround is to use System.Management (WMI). This should work on all versions of .NET Framework with WMI installed on the OS. You would retrieve
Read More...
Why can't NullReferenceException tell you the type of the instance that was null?
If you have done much managed development you have run into a NullReferenceException more times that you’d care to count. The CLR throws this exception when you try to access instance state on null instance… One of your internal customers
Read More...
Windows Forms FileDialog
In my comments Kevin Westhead asks about the Windows Forms FileDialog. I was able to speak to grandpuba of Windows Forms, Mark Boulter who explained this as recommend a fix to the documentation: FileDialog is a detail of the implementation of OpenFileDialog
Read More...
BradA in Fresno...
I got my plans worked out … See you there! Microsoft Tech Talk II Software Development and the Microsoft Common Language Runtime Given by Brad Abrams, a Microsoft Lead Program Manager Tuesday 2/24/04 6:00 PM, University Business Center (UBC), Alice
Read More...
Rotor in university class room: Performance Analysis of O-O Systems
The course abstract is at http://csce.unl.edu/~witty/sp2004/csce496/ , the Rotor bit is "...students will examine the actual implementation of these runtime systems. We will use Microsoft CLI engine which is the core runtime infrastructure for .NET platform.
Read More...
Rico on Perf Analysis
Rico has some words for wisdom on how to (and not to) do performance analysis. Check it out: Bad Analysis Worse Than None
Read More...
DateTime Compatibility Issue
The BCL team is having some design discussions on how to fix a bug that was recently found. I thought you might want to chime in as some of the implications have wide applicability. Here is the thread from Anthony … comments welcome. I would like
Read More...
IsEnabled or Enabled
I actually got a chance to write a little WinFX code today, which was a lot of fun. But I did run across one issue that has been in the back of my mind for while. It is the “Is” prefix on Boolean properties. I started out by using the WinForms
Read More...
ArgumentNullException and ArgumentException
In my comments Jeff asks: I have a question, how was the decision for these 2 classes ctor parameters made... Constructor for ArgumentNullException public ArgumentNullException( string paramName, string message) Constructor for ArgumentException public
Read More...
serial port support in Whidbey
We keep getting lots of requests for serial port support in the .NET Framework. We are planning to have it in the next release of the .NET Framework. You can goto http://www.gotdotnet.com/team/clr/bcl/demos/demos.aspx , and check out the code in either
Read More...
Rotor BOF at VM'04
Michal Cierniak talks about it here . Who all is going?
Read More...
Curriculum Repository for managed code
http://new.msdnaa.net/curriculum/repository.aspx Looks like some good stuff. Anyone using this stuff? Anyone want to go to a university where they are using this stuff ;-)
Read More...
Software for Non-Profits
I just heared about http://www.techsoup.org . I am told non-profits can use this site to order MS software for “free”… although there seems to be some admin fees. Anyone using it? How do you like it?
Read More...
Casing for acronyms
In the comments of a recent post Frank Hileman suggests: I have seen, with acronyms, anything goes. I assumed there is no rule. We do have a rule and I believe it is reasonably well followed in the Framework. Do use PascalCasing or camelCasing for any
Read More...
Deploying the .NET Framework
Someone asked me this week for some best practices around deploying the .NET Framework on client machines. Unfortunately I don’t have a ton of experience with this. For the last big application I work on ( Terrarium ) we decided to simply pre-req’ed
Read More...
internal = public?
There was an interesting thread this week inside the firewall about compatibility concerns the .NET Framework (and by extension WinFX) has in light of the fact that you can you use reflection to find and even invoke private members. Here is the exact
Read More...
Style for the Design Guidelines Document
If you have been following the Design Guidelines updates I have done and the Design Guidelines document you will notice we use a pattern…. Nearly every rule begins with “ Do ”, “ Do not ”, “ Avoid ” or “
Read More...
Thoughts on the power of naming conventions
Ian has some good thoughts on naming conventions . I'll make sure the folks on the WinFX team hear this load and clear. I like this naming convention because it means that an important fact about the code leaps out at me.
Read More...
The PInvoke problem
I have been talking to the CLR interop team recently about some ideas to make life easier for developers using PInvoke. My hope is that with WinFx PInvoking out to the Win32 will be much more rare, but we have a while to go before we get there. In the
Read More...
Delegate and MulticastDelegate
Ever wonder what the difference between Delegate and MulticastDelegate ? You might think it has something to do with Multicasting right? Wrong. We abandoned the distinction between Delegate and MulticastDelegate towards the end of V1. At that time, it
Read More...
Design pattern for read-only vs. read-write collections
Interesting discussion over in WinFX land today, thought you might want to chime in: What is better from the standpoint of the design guidelines: 1) Single class FooCollection with an IsReadOnly property and an AsReadOnly method returning a FooCollection
Read More...
Why do interface names begin with "I"
I am in the having one of those very useless “what-should-we-have-done” debates with a guy on my team and I thought I suck you folks into it. It is around naming of interfaces with an “I” prefix. Something COM founded (I think,
Read More...
History around Pascal Casing and Camel Casing
In the initial design of the Framework we had hundreds of hours of debate about naming style. To facilitate these debates we coined a number of terms. With Anders Heilsberg (the original designer of Turbo Pascal ) a key member of the design team, it is
Read More...
Search
Go
This Blog
Home
Email
本博客中文版 (View in Chinese)
These postings are provided "AS IS" with no warranties, and confer no rights.
Tags
.NET Framework
.NETFx3.0
Acropolis
AJAX
AjaxWorld
ASP.NET
ASPMVC
Atlas
BCL
Blogging
CLR
DevLink07
Framework
Framework Design Guidelines
ISV
ManagedExtensibilityFramework
MEF
Microsoft AJAX Library
Mix07
Mix08
New Guideline
Orcas
PDC
Port25
Program Manager
RainbowsEnd
Random
ReMixBoston07
Silverlight
SLAR
Software Development
TechEd
TheAjaxExperience
VB
VernorVinge
WinForms
WPF
Archives
December 2008 (1)
November 2008 (13)
October 2008 (13)
September 2008 (7)
August 2008 (11)
July 2008 (7)
June 2008 (13)
May 2008 (7)
April 2008 (11)
March 2008 (21)
February 2008 (12)
January 2008 (14)
December 2007 (13)
November 2007 (13)
October 2007 (21)
September 2007 (7)
August 2007 (13)
July 2007 (10)
June 2007 (25)
May 2007 (18)
April 2007 (15)
March 2007 (15)
February 2007 (6)
January 2007 (15)
December 2006 (8)
November 2006 (12)
October 2006 (13)
September 2006 (8)
August 2006 (5)
July 2006 (12)
June 2006 (15)
May 2006 (12)
April 2006 (10)
March 2006 (15)
February 2006 (14)
January 2006 (13)
December 2005 (7)
November 2005 (18)
October 2005 (16)
September 2005 (30)
August 2005 (22)
July 2005 (15)
June 2005 (14)
May 2005 (17)
April 2005 (24)
March 2005 (28)
February 2005 (20)
January 2005 (28)
December 2004 (18)
November 2004 (17)
October 2004 (24)
September 2004 (16)
August 2004 (28)
July 2004 (17)
June 2004 (19)
May 2004 (28)
April 2004 (31)
March 2004 (28)
February 2004 (30)
January 2004 (35)
December 2003 (17)
November 2003 (28)
October 2003 (43)
September 2003 (25)
August 2003 (21)
July 2003 (26)
June 2003 (9)
May 2003 (14)
April 2003 (50)
Books by Brad Abrams
[2005] Framework Design Guidelines (First Edition)
[2005] .NET Framework Standard Library Annotated Reference, Volume 2
[2004] .NET Framework Standard Library Annotated Reference, Volume 1
[2004] Base Class Library Reference Poster
[2002] Programming in the .NET Environment
[2008] Framework Design Guidelines (second edition)
Noteworthy Posts
Who am I? (Brad Abrams' Bio)
Code Guidelines
Syndication
RSS 2.0
Atom 1.0