Subscribe: Matthew ".NET 247" Reynolds
Preview: Matthew ".NET 247" Reynolds

Matthew ".NET 247" Reynolds

Matthew Reynolds... software development consultant, author, speaker and trainer


This blog has moved

Fri, 13 Feb 2004 14:04:00 GMT

For anyone out there who wants to keep in touch, this blog has moved to:


Wed, 04 Feb 2004 16:21:00 GMT

After running a post looking for contract and permanent developers in the UK, Damian blogged about his experiences with recruitment consultants and I’ve become so incensed that I feel the need to rant, hence this post.   I know that when I feel a very strong reaction to a particular topic that I have some emotional baggage associated with it, and as such I have a lot of unresolved anger towards recruitment consultants.  I’ll try and be balanced, and brief, and share some of my thoughts.   I would almost never recommend to any of my clients that they use recruitment consultants.  I would in fact only ever recommend it if they were absolutely desperate.  The reason for this is threefold:   First of all, managers of developer teams need to be very hands on with the recruitment process.  Outsourcing this work, because that’s what you’re doing with recruitment consultants, is a bad idea.  Yes, you may get a thousand really, really poor CVs through the door of which only one is gilt-edged, but personally I would rather go through them by hand than rely on an untrained professional to do this.  (Remember, a development manager probably knows about a thousand times more about software development than a salesperson who happens to be working in the software development field.)   Why?  Because I know what I’m looking for given the big picture.  If advertising for a senior C# developer and I get a CV come through for someone looking for a junior testing position, a recruitment consultant would instantly dismiss the junior candidate.  I may not want to employ him for the senior role, but if his CV stands out for whatever reason (i.e. my intuition is telling me there’s something interesting here), I might want to meet with him, see what he’s about and bring him into the organization in some other fashion.    Recruitment consultants are only any good at matching keywords.  “Here’s a developer with six years Smalltalk experience, and he’s built some open source VB .NET projects in his spare time.  Uh, well my client is looking for C#, so let’s throw him away.”  Riiiiight.  So here’s a developer with shed loads of OO development experience, who happens to do .NET projects in his spare time.  .  Sounds like someone I’d like to meet.  However, a recruitment consultant would never let me have that chance.   Secondly, recruitment consultants only find people who have degrees.  Why?  Well, because if they say, “must have a 2:1” they can instantly cut down on 50% of the CVs they might otherwise get.  That saves the poor little lambs work!    The best developers I’ve ever met have not had degrees.  I’m happy to admit that might be a weird anomaly, but I don’t want someone really good getting filtered out just to reduce the operating costs of an recruitment consultancy.   Thirdly, recruitment consultants cannot find really good people.  For me, a really good developer is the kind of developer who has a passionate interest in community.  They can either contribute to the community, or they are just part of that community.    A recruitment consultant can’t find people in a community.  If I’m interviewing someone and she reels off a list of ten people who’s blogs she reads every week and I’ve never heard of them, or she tells me about some great stuff she read in Chris Sells’ Windows book I am about ten times more likely to hire her than someone who doesn’t give a damn about the community.  I mean, I guess everyone reading this knows how important I think community is (I’m an MVP after all), but it’s absolutely essential that any developer in my employ has an attitude of learning.  A strong interest in community is great evidence of this.  However, you can’t put [...]

UK .NET Developers - Job Opportunties

Wed, 04 Feb 2004 09:40:00 GMT

A number of my clients dotted around the UK are looking for contract and permanent developers.

If you're interested in jumping ship from where you are now for pastures new, please send me your CV together with a covering letter detailing information about yourself, what kinds of projects you enjoy, etc.

This is 100% recruitment consultant free.  I'm not a recruitment consultant, my clients aren't recruitment consultants, I can't stand them and I'm sure you can't either.

The e-mail address is:  Please indicate if you're looking for contract or permanent work. 

Matt Reynolds - .NET 247/WinFX 247/Visual Developer MVP

Showing custom info in VS .NET debugger

Sun, 01 Feb 2004 15:28:00 GMT

Mattias Sjögren writes on .NET 247 how you can hack the VS .NET debugger to show more useful information about an object in the Watch window.  I must admit, it bugs the life out of me that some objects give you a decent bit of info, whereas others just tell you what they are.

Apparently, you can hack the VS.NET\Common7\Packages\Debugger\mcee_cs.dat file such that you can instruct VS .NET to automatically expand objects.  It can only dig into properties (i.e. no methods).  Googling around, I found and  According to the first one (Shannon Braun), VSTweak (part of PowerTools for Visual Studio .NET 2003) gives you a (rough) IDE to do this.

What does the "ms" in "mscorlib" stand for - hint: it's not "Microsoft".

Sat, 31 Jan 2004 17:08:00 GMT

There's an intriguing post on .NET 247 saying that the “ms” in “mscorlib” doesn't stand for Microsoft anymore:

out of the book 'Applied Microsoft .NET Framework Programming':
When Microsoft first started working on the .NET Framework, MSCorLib.dll was
an acronym for Microsoft Common Object Runtime Library. Once ECMA started to
standardize the CLR and parts of the FCL, MSCorLib.dll officially became the
acronym for Multilanguage Standard Common Object Runtime Library.

.NET Framework debug symbols

Thu, 22 Jan 2004 10:07:00 GMT

I haven't tried this yet, but apparently you can get the debug symbols for the Framework that all you to step into calls in the BCL.  At present, I tend to use Reflector to decompile the types and step through it in my mind, but this sounds cool if it does work.

From .NET 247:

I want to step into the methods of standard library calls (for example into the SelectedNode property of TreeView), but it won't allow me to step into the .Net library calls.

When I was doing C++ programming I could step into the MFC libraries.

How do I achieve the same thing in C#?

Using Developer Studio .Net 2003 with C#.

- Bruce

...and the reply from a Microsoft support engineer:


In order to do this you'll have to get symbols for the .NET framework. You
can get symbols for the .NET framework by following the instructions at:

Thanks! Robert Gruen
Microsoft, VB.NET

This posting is provided "AS IS", with no warranties, and confers no rights.

SccSwitch - switch VS .NET source control providers

Wed, 21 Jan 2004 17:14:00 GMT

Old news for some, but Harry Peirson has a cool tool for switching between source control providers with VS .NET.  (e.g. SourceGear, VSS and GDN).

It's here:

More VS .NET keyboard shortcuts - Adding classes and folders

Wed, 21 Jan 2004 15:57:00 GMT

Something I do regularly is add new folders and classes to VS .NET projects.  Up until about two minutes ago, I'd done this manually, via the mouse.

However, I've now remapped my keyboard to allow me to do this with a single key combination.  You can do this to, using Tools - Options - Keyboard.

“Show commands containing”
...project.add gives you things you can add to a project,
...project.newfolder gives you the ability to add a new folder.

Another favourite of mine is wiring Ctrl+/ to Edit.CommentSelection and Ctrl+Shift+/ to Edit.UncommentSelection.

David Brent to Train Microsoft

Wed, 21 Jan 2004 14:09:00 GMT

From Neowin:

I'm a monopolist first, geek second... probably an entertainer third..."

Wernham Hogg's managerial genius that is David Brent has been employed by Microsoft to train its staff in personal development. Although the character's creator Ricky Gervais has previously shunned such work, it appears the opportunity to work with Microsoft was too much to turn down and the comedy star has put together a video entitled I'm back - and this time it's personal development.

A spokeswoman for Microsoft told the BBC: "We can't provide information about Ricky Gervais' project at Microsoft. It is an internal thing and not something which we like to publicise. It is something we do for staff and staff only."

Anybody who witnessed David Brent's truly awful dance routine in series two, episode five, here, and has also seen Steve Ballmer's crowd pleasing repertoire of the grotesque, here, may find it difficult to choose between the two men, but we believe Brent has the edge... just.

Someone has left this priceless comment over at Neowin: hope someone leaks this, it will be better than a new longhorn build.

SourceBrowse - new features added (you lucky people!)

Wed, 21 Jan 2004 10:46:00 GMT

Scott Watermasysk asked me to add a couple of additional features to SourceBrowse so that he could use it to host the source for .Text.

You can now:
- Mark particular folders as "not browsable", e.g. all "bin" and "obj" folders.
- Mark a specific folder as "not browsable".
- Download files directly from the "view" page.
- Show SQL scripts with T-SQL syntax colouring.
- Customize keyword lists.

The source is not available on GDN.  I plan to move it to as soon as.

Browse and search source code trees with IE - SourceBrowse

Tue, 20 Jan 2004 12:51:00 GMT

The first version of my freebie Web-based source tree viewer is available on GDN:

SourceBrowse is designed to give a Web front-end to a source code tree. A typical user will have a build server that periodically pulls source code from source control and puts it onto the disk. This version of the software is not designed to integrate with source control, like Visual SourceSafe or SourceGear Vault.

SourceBrowse allows you to browse a source tree, view and download files and perform a simple 'find-in-files' search of text files within the source tree.




Introducing WinFX 247 (

Sun, 11 Jan 2004 18:34:00 GMT

I'm happy to tell you all about the beta of WinFX 247 at

I decided to split the Avalon/WinFX/Longhorn/WinFS/Indigo stuff out of .NET 247, for fear of .NET 247 users getting annoyed with all this new leading edge stuff.  The site behaves mostly like .NET 247, except it's dedicated to newsgroup and discussion content.  There will be no article listings.

It is a beta - in particular the search doesn't work until Google decides to spider the site.

I'm happy to hear feedback.  Please use the 'Feedback' link on the site.

Thanks all!  Matthew Reynolds

Extending Explorer with Band Objects

Wed, 07 Jan 2004 11:59:00 GMT

Ever wonder how to build something that looks like the Google toolbar in .NET?  The ever magical Code Project has an article on how to do just that.


Update: I may have been very thick, but I couldn't get the code as described in the article to work.  I could get it to work however if I a) manually put the dependent DLLs, including ShDocVw.dll into the GAC myself and b) followed the instructions here to actually register the component with Explorer using muchos Registry twiddling.  Just an FYI for those who fancied trying to get this to work this afternoon.


Wed, 07 Jan 2004 08:30:00 GMT

Sara Ford, VS Software Design Engineer, blogs about her accessibility experiences with VS .NET.

Of particular interest is her article on keyboard, high constrast and Assistive Technology compatibility.

Read on your WAP-enabled mobile phone

Fri, 05 Dec 2003 08:53:00 GMT

My friend, Russell Pooley has come up with a *sweet* WAP gateway that consumes the RSS and makes it available over a WAP-enabled phone, like my shiny new Orange SPV E200.

It's here.

I'm not a big fan of status bars...

Fri, 05 Dec 2003 08:14:00 GMT

...I find them tricky to interact with programatically, and no one ever looks at them anyway, but this morning, this quote from Chris Sells' Windows Forms Programming in C# really ticked me:

Pg 106: “According to legent, Microsoft did a usability study [of the status bar] awareing people $50 if they would look under their chair, putting the notification for this award in the status bar.  The $50 went unclaimed during the testing.

High resolution timer

Wed, 03 Dec 2003 10:21:00 GMT

Windows' basic timing APIs tend to be inaccurate - sometimes by up to 15ms or so.  Peter Bromberg has an article on Egg Head Cafe on High Precision Code Timing in .NET.  The article includes a simple class that uses Windows' performance monitoring APIs to create a super accurate timer.

"Designed for Windows XP" Application Specificiation

Wed, 03 Dec 2003 08:32:00 GMT

I've learned a *lot* about good Windows application design from reading the specification that an app must adhere to to get the “Designed for Windows XP” logo.

The “Designed for Microsoft Windows XP“ Application Specification 2.3 cleared up for me a lot of the more enterprise related issues - including why it's a good thing to use the My Documents folder, where to put your data in order to enable roaming and how to lock down Windows 2000 and XP to get an idea of how applicaitons run in the enterprise, rather than on a (usually wide open) dev box.



Fri, 21 Nov 2003 07:25:00 GMT

I found this the other day and didn't have a chance to blog it at the time.

Imagine you're building a control and you want the developer to be able to specify the colour of some element on it (imagine something like a progress bar that shows a percentage value), but you want to accent other drawing elements of that controls in subtlely different colours.  For example, you might want to let the developer say that he/she wants a “RoyalBlue” progress bar, but to make it look a little nicer you want to use a graduated fill from a light blue to the blue he/she specifiies.

System.Windows.Forms.ControlPaint has a number of methods that let you get slightly different colours from a seed colour.  They are, and the name explains it all: DarkDark, Dark, Light and LightLight.

SMTP authentication through System.Web.Mail

Sun, 02 Nov 2003 13:02:00 GMT

G Andrew Duthie has a post about how to authenticate yourself to an outbound SMTP server when using the SmtpMail class.

It's an issue of plugging the right values into the Fields collection on the object.