One of the nice things about getting into a .NET upgrade is finding out all the cool new stuff they throw in. Extra syntactical sugar, fun widgets, additional ways of doing things that are really good (or suck less, depending on your point of view.) The one I want to highlight here is extension methods. How sweet is this? By writing a little code, I can mimic an extension to any type, including .NET types, without having to actually add code to said type. Of course, they are probably most useful for .NET types, but if you have an in-house library that you want to extend but get slapped down by The Powers That Be, then here's the answer! Here's a nice illustration of an extension to System.String: James Newton-King Here is one that adds a helper to System.IO.MemoryStream: Develop-One Blog The latter post does complain about this feature allowing the breakage of encapsulation (I could go either way on that argument), but he comes around to see the Practical Side of things. And nothing (besides a private-island vacation with the lovely Mrs.) could make me happier than that! UPDATE: My client is trying to resolve a conundrum regarding passing config info about a property on an object through that property to configure the web page controls that will work with that property's value. It occurred to me that by extending the integral types (or object types, for that matter) of these properties with a GetMetadata method, the issue could be solved. The page coder could simply reference MyObject.MyProperty.GetMetadata to read the metadata needed to configure the control. Hey, it's nice work if you can get it.