Visual Basic 10: VBx and the Dynamic Language Runtime

Since the introduction of .NET, I’ve thought there was an empty niche just waiting for another VB. With Microsoft’s recent resurgence of interest in dynamic languages and notable hirings in this area (John Lam for instance), it was not really a surprise to see this post “Visual Basic 10 is in the works”.

The working name is VBx. Personally I think they should call it “VB on Rails”! Joking aside, I think this could be the next big thing for Microsoft. Who knows, maybe the .NET Framework will go the way of MFC… I do hope they pick up the Ruby on Rails mantra of “Convention over Configuration

Multi-Cores and .NET Threading

My first job after university involved designing and writing parallel algorithms, and over the intervening 20 years I’ve always taken a keen interest in the subject. I’d always thought that by now, desktop PCs would contain upwards of 32 processors, whereas 2 processors are only just becoming commonplace. At the March 2007 MVP summit, Bill Gates said that parallel programming will be one of the big new challenges facing the .NET development programming community:

“…the ability to take multiple processors and use them in parallel has been a
programming challenge going back many, many decades, so now it’s important
that we actually solve that problem, and make it possible for developers of all
types to take advantage of these multi-core devices.”

May’s 2007 issue of MSDN magazine has an excellent article on Reusable Parallel Data Structures and Algorithms by Joe Duffy, a renowned developer in the .NET threading arena. He has an upcoming book “Concurrent Programming on Windows”, due to be released by Addison Wesley sometime in 2007. One to watch out for…

Over at Michael Suess’s ThinkingParallel blog, he’s been running a series of interviews with parallelism industry leaders in different environments, including Ten Questions with Joe Duffy about Parallel Programming and .NET Threads.

The following are all good resources on how to get started for developers new to .NET threading:

There is also an index of past MSDN Magazine articles on .NET concurrency.

Logging and ASP.NET Health Monitoring

In the comments to my post of a few days ago on logging with log4net, Alik Levin raised a good question:

“Why would I actually use log4net for ASP.NET 2 (VS2005) instead of the built in
health monitoring?”

I’m sure I must have seen ASP.NET 2.0 Health Monitoring before but it had completely slipped my mind! I followed the link Alik supplied and it does look interesting. Now, I obviously have not used it in a live application, so I’m shooting from the hip, but to answer Alik’s question, the only reasons that spring to mind are to have a coherent logging stragey in place across all application types, and perhaps the number of different ‘appenders’ that are available. Also, the API seems a bit heavy if I have to instantiate a class for every event that is raised. That said, if you are starting out on a new project it’s definitely worth evaluating.

Free e-book: Basics of Compiler Design

Those long winter evenings will soon be with us here in Perth Australia, so what could be better than curling up with a nice thick, free e-book on the Basics of Compiler Design!

It might not be of interest to everyone(!), but if you do fancy a free e-book, Torben Mogensen has made his book available online as a PDF here.

If you’re interested in this kind of thing, check out Joe Duffy’s and Joel Pobar’s PDC session, Good For Nothing Compiler (PDC – TLN410)

Expresso 3.0 Beta, a Regular Expression Editor and Tester

I mentioned Expresso, a regular expression tool written by Jim Hollenhorst, on my blog back in February along with several other regular expression tools and resources. Version 3.0 is now in Beta and is well worth a look.

Expresso is not only a great tool for building and testing new regular expressions, but it’s also great for understanding existing expressions, as it provides an explained English breakdown of the various parts of an expression as a tree. It’s rapidly becoming my favorite regular expression tool.

NUnit 2.4 Final Release (2.4.0.2)

Most of the time I use the version of NUnit that happens to be installed on my system, and I only infrequently check for updates. When I visited the home NUnit site today I noticed that the final version 2.4 of NUnit has been released. You can download it here (release notes). It was released over a month ago and includes several enhancements such as a new syntax and internal architecture for Asserts based on the constraints found in JMock and NMock.

Get Visual Studio 2005 Intellisense with Google Earth KML files

In fact, given a custom XSD schema definition file you can use this method to get Visual Studio 2005 intellisense with just about any XML based file, including NAnt and NAntContrib schemas (see here for a build task to generate the combined NAnt and NAntContrib schema).

1) Download kml21.xsd from http://code.google.com/apis/kml/schema/kml21.xsd and paste it into C:\Program Files\Microsoft Visual Studio 8\Xml\Schemas

2) Open regedit at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Editors\{fa3cd31e-987b-443a-9b81-186104e8dac1}\Extensions and add a DWORD value of “kml” with value ‘2A’ (the value may vary depending on the editor). For other file extensions (such as .build) add the extension to the relevent editor at the \Editors\{GUID}\Extensions level.

3) In each .kml file, set the xml namespace to:

Updated: Jonathon Howey kindly pointed out that I missed the \Extensions part of the registry key, which I’ve now fixed. Thanks Jonathon.