Official Microsoft Avalon Beta 1 RC Changes Documentation

Tim Sneath posts up the official set of changes (Word format) for the May Beta 1 RC. Word is this will also be availble on MSDN soon. It actually has a less complete list of renames/reorganizations than the change log I’ve been maintaining so be sure to check that out, but it does a better job introducing some of […]

Avalon Naming Conventions

Nick Kramer, a PM on the Avalon team, bursts into the blogging scene with his first post being about Avalon’s various naming conventions. The primary need for these conventions is for discoverability through reflection. The primary “client” that needs to reflect on types using these patterns is the Avalon serialization architecture itself. However, these patterns can also be leveraged by design time […]

Microsoft’s Language Choices

Dare posted up the other day about Microsoft’s language choices and how they have “missed the boat” with some of today’s trendsetters. He mentions that Microsoft is too busy competing with Java and the JVM with C# and, as a result, other language/technology crowds aren’t receiving enough attention. He makes some good points, so definitely give it a read. I originally just commented on […]

IronPython Becoming The Official Scripting Language for AvPad

Chris Anderson is jumping on the Python bandwagon and is building support into AvPad for IronPython as a scripting language. Pretty interesting stuff. In his latest post, he has extended IronPython to support ICustomTypeDescriptor so that you can interrogate an IronPython object at runtime and discover properties that may have been added on the fly. The main […]

A Quick Observation of C# Anonymous Methods with Delegates and Lack of Loop Unrolling

Disclaimer: C# Express/March CTP/.NET version v2.0.50110 This is for the performance concious freaks out there (like me). The following code results in a new Delegate instance being constructed every pass through the loop even in release builds: private void MyBackgroundWorker(object state) { for(int work = 0; work < 10000; work++) { this.Invoke(new MethodInvoker( delegate() { […]