November 2010 (1)
August 2010 (1)
July 2010 (1)
June 2010 (3)
July 2009 (3)
June 2009 (1)
May 2009 (1)
February 2009 (1)
January 2009 (1)
November 2008 (3)
October 2008 (4)
September 2008 (9)
August 2008 (6)
July 2008 (3)
June 2008 (3)
January 2008 (1)
November 2007 (2)
October 2007 (6)
September 2007 (5)
August 2007 (22)
July 2007 (6)
June 2007 (1)
May 2007 (3)
April 2007 (27)
March 2007 (8)
February 2007 (6)
September 2006 (2)
August 2006 (4)
July 2006 (9)
June 2006 (17)
May 2006 (20)
April 2006 (12)
March 2006 (9)
February 2006 (4)
January 2006 (3)
December 2005 (2)
November 2005 (4)
October 2005 (5)
September 2005 (37)
August 2005 (83)
July 2005 (6)

Active Directory / LDAP (0)
ASP.Net (19)
Blackberry Development (4)
c# (34)
c++ (3)
Code Camp (1)
Excel (1)
Exchange (3)
Front Page 2003 (6)
FTP User Editor (4)
IIS (146)
IIS - Log Parser (7)
IIS / FTP (12)
IIS / Tools / Administration (42)
IIS / Tools / Authentication (6)
IIS / Tools / Compression (8)
IIS / Tools / Crash & Hang (12)
IIS / Tools / ISAPI Filters (17)
IIS / Tools / Log Files (17)
IIS / Tools / Scripts (28)
IIS / Tools / Security (9)
IIS / Tools / SSL (6)
IIS 7 (3)
Internet Information Server (1)
Me (Chris Crowe) (6)
MIME Types (1)
Misc (72)
Oulook Express (2)
Silverlight (1)
SQL Server (27)
SQL Server CTE (1)
Vista (15)
Vista Gadgets (8)
Visual Studio (11)
Voice over BroadBand (1)
Windows (33)
Windows Powershell (3)
Windows Sharepoint Services (0)
Windows Sharepoint Services (15)
Windows Vista (14)
Wine Cellar (1)
WMI (8)
Visual Studio (11)

Visual Studio

MZ-Tools 6.0 for VS.NET 2002/2003/2005/2008 (Orcas):

Carlos Quintero (MVP) has just released MZ-Tools 6.0 for VS.NET (

MZ-Tools is a productivity add-in for Visual Studio .NET that supports VB.NET, C#, Visual J# and C++ (partial support) and adds 40+ features to the IDE to locate code faster, to code faster, to design faster, to generate documentation and to enhance your IDE experience. This new version targets VS.NET 2002, 2003, 2005 and 2008 (aka "Orcas") in a single version."

MZ-Tools will allow you to enjoy the following benefits during the development of your applications:

  • To write code faster: There are features that will allow you to insert exception handlers, snippets of code, etc. with a single mouse click, keyboard shortcut or expansion keyword, and to use assistants to create new procedures, message boxes, connection strings, etc.
  • To find code faster: With the enhanced Find feature of this add-in, all the results are shown in a hierarchical tree inside a dockable window that allows you to remove occurrences that are not of interest. Other features allow you to find all code locations that call a given procedure, to keep a list of favorite procedures, etc.
  • To design forms faster: There are features that will allow you to apply default properties to a control when it is added to a form, to set the TabIndex property of all the controls of a form with one click, etc.
  • To document your code faster: There are features that will allow you to insert headers (to a procedure, class or file) with a single mouse click or keyboard shortcut. These headers are customizable and allow the use of predefined variables (such as the procedure name) or user-defined variables. Furthermore, other features will generate documentation about your source code in XML and HTML formats.
  • To ensure the quality of your code and applications: There are features that can sort code, add line numbers for error handlers, code reviews that can detect dead code, review the TabIndex or access keys of your controls, review forbidden or mandatory text, etc. Even better, from version 4.0 for Visual Studio .NET onwards you can use the MZ-Tools SDK to write your own review operations with very little effort.

And many more features (40+ in each toolset) to make coding more enjoyable by eliminating the tedious tasks!

There are several versions of MZ-Tools, some of them freeware, depending on your Microsoft programming environment.

For more details see

Looking for a way to get WinForms Developer License with Subscription and Source (value $999) for free!
Telerik ( ) makers of some great controls for and WinForms have a content running now that will allow you the chance to win a 50" Plasma Television.
Telerik WinForms Contest - Part II
In order to participate you need to download RadControls for WinForms, explore the software for a while and then answer 10 easy questions.
For 5 or more correct answers, you will receive a complimentary RadControls for WinForms Developer License with Subscription and Source (value $999).
  • Grand prize: 50 inch plasma TV
  • The first 50 participants that answer all questions correctly will receive a $20 Amazon gift coupon.

Free PInvoke Visual Studio Add-in

Find and contribute PInvoke signatures, meaning Platform Invoke, is a wiki used by around 50,000 .NET developers a month to find and contribute PInvoke signatures (also known as Declare statements in VB), type definitions, and any other information related to calling Win32, or other unmanaged APIs in managed code (languages such as C# or VB.NET).

As a wiki, it is user driven and acts as a repository where developers can contribute or retrieve information as they wish.

Copy and paste your way to productivity

Certain things just can't be done in pure .NET, and the developer has to drill down to the Windows API. This is achieved through .NET's Platform Invoke (PInvoke) functionality, which requires declarations to be supplied by the developer. Manually defining and using PInvoke signatures is an error-prone process that can introduce extremely subtle bugs. supplies you with tried and tested signatures and type definitions, so that you don't have to spend time writing them from scratch.

Visual Studio integration for the quick and easy insertion of PInvoke signatures

Download the add-in for Visual Studio 2003 and 2005, and save yourself the effort of having to open up a web browser to search for the website. You can now insert a PInvoke signature with the click of a button while you're working on your application in Visual Studio.

PInvoke VS Add-in

Screenshot illustrating the PInvoke Visual Studio add-in

Download for free from

Complimentary* copy of Visual Studio 2005 Standard Edition Software ( not express )

For a limited time, attend Visual Basic 2005 Labcasts and you will be eligible for one or more of the following incentives:

  • Complimentary* copy of Visual Studio 2005 Standard Edition Software (estimated retail price of $299.00)
  • Excerpts from Francesco Balena's Book Programming Microsoft Visual Basic 2005: The Language
  • 35% off estimated retail price of select Visual Studio 2005 books
  • Visual Basic 2005 Keyboard Shortcut Reference Poster

* Nominal fee and shipping and handling charges apply. Offer good in the United States only through June 30, 2007, while supplies last. This offer is available only to professionals employed in the area of software development who attend any two Visual Basic 2005 Labcasts and submit the evaluation form for each session. Limit one per customer. This offer is non-transferable. Please allow 6-8 weeks for delivery. Microsoft is not responsible for non-delivery of the complimentary copy of Visual Studio 2005 Standard Edition due to incorrect mailing information provided by recipient. Taxes, if any, are the sole responsibility of the recipient.


Free download: "Visual Studio 2005: A Guided Tour"

This 92-page issue contains the best MSDN Magazine Visual Studio 2005 coverage from the past two years, updated for the final release. Find out what's new in C#, C++, Visual Basic, Windows Forms, ASP.NET, Team System, security, and C++generic types -- download your copy now!

Retrieving the COM class factory for component with CLSID {3FA7DEB3-6438-101B-ACC1-00AA00423326} failed due to the following error: 80010106.
While trying to upgrade a .NET application from VS.NET 2003 to VS.NET 2005 I found I was getting a problem with creating a MAPI.Session object.

I was getting the following exception:

Searching around in and everywhere else I was finding nothing on this error.

I decided that I would simply create a new application and see if it failed.

  • I opened VS.NET 2003
  • I created a new console application
  • I added a reference to "Microsoft CDO 1.21 Library"
  • I added one line of code MAPI.Session sess = new MAPI.Session(); to my Main() routine

I then run the code and it worked fine.

So I repeated the code in VS.NET 2005

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
   class Program
static void Main(string[] args)
Session sess = new MAPI.Session();

I was still getting the exception. I decided to post to the New Zealand .NET User group list that I belong to - see

I got the following response from Alex James

" I don’t know the answer, but one thing I would check is whether different thread types have an effect. I.e. is you app [MTAThread] or [STAThread]

You never know that might be the answer, the default between 2003/2005 maybe different? "


I had a look at the code that VS.NET 2003 produced and indeed it has the following attribute above the Main() procedure


using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
   class Program
      static void Main(string[] args)
Session sess = new MAPI.Session();

I added the attribute to my code and the problem was gone. So obviously the CDO 1.21 library is compiled for STAThreading and not the VS.NET 2005 default which must be MTAThread.

The following is from

The STAThreadAttribute marks a thread to use the Single-Threaded COM Apartment if COM is needed. By default, .NET won't initialize COM at all. It's only when COM is needed, like when a COM object or COM Control is created or when drag 'n' drop is needed, that COM is initialized. When that happens, .NET calls the underlying CoInitializeEx function, which takes a flag indicating whether to join the thread to a multi-threaded or single-threaded apartment.

A multi-threaded apartment (MTA) in COM is more efficient, since any of a number of RPC threads from a pool can be used to handle a request. However, an object on the MTA thread needs to protect itself from multiple threads accessing it at the same time, so that efficiency comes at a cost.

The single-thread apartment (STA) in COM is inherently single-threaded and therefore no additional thread synchronization is needed. The STA is implemented using the thread's Windows message queue, which is how requests to objects on an STA are serialized. Because of how the STA thread is implemented, calls to objects on that thread are serialized with Windows message handling on that thread, making sure that everything, both the COM objects and the underlying windowing objects, e.g. HWNDs, are all synchronized. This is necessary for UI-oriented COM objects, like controls and drag 'n' drop, which must also be synchronized together with the UI.

When COM is needed .NET will call CoInitializeEx, picking the MTA by default because it's more efficient. However, to get the synchronization needed for controls, windows and drag 'n' drop, you need to mark a thread's entry point with the STAThreadAttribute to let .NET know to initialize the UI thread on the STA. All of the VS.NET project templates put that attribute in to make sure you don't forget:



SQL Prompt - Intellisense and Code Completion for SQL Server, VS.NET 2003+2005, Query Analyzer and others...
Intellisense for SQL Server

SQL Prompt provides Intellisense® style auto-completion for Microsoft SQL Server editors. It will tell you the exact formatting you should use for your SQL commands, while you are writing them and will therefore help you write fast, perfectly formatted SQL statements. SQL Prompt improves the productivity of all SQL script creation.

SQL Prompt simply sits behind the scenes and provides unobtrusive help when you press Ctrl-Space or when you type "." after a table/view/alias name.

Features include :

  • Table/View name completion
  • Column name completion
  • Stored procedure name completion
  • USE completion
  • JOIN/JOIN ON completion
  • Auto-uppercasing of keywords
  • Auto-popup after keywords

SQL Prompt works with the following products:

  • UltraEdit32
  • Visual Studio 2005
  • Visual Studio .NET 2003
  • Microsoft Query Analyzer
  • SQL Server 2005 Management Studio
  • SQL Server 2000 Enterprise Manager

This software has no time-bombs, no restrictions, except you must download it prior to 1st September 2006 for it to be free!

For more details and to download (requires registration)

Visual Studio Express now a free product permanently
Effective April 19th, 2006, all Visual Studio 2005 Express Editions including Visual Basic, Visual C#, Visual J#, Visual C++, and Visual Web Developer Express will be free permanently! 

Prior to this pricing announcement, Visual Studio Express Editions were promotionally discounted to be free for one year, starting on November 7th, 2005. With this announcement, the promotional discount for Visual Studio Express is now permanent and Express will continue to be free.

Also there is a number of starter kits released...

Microsoft .NET Interface for Lego Mindstorms Starter Kit
The Microsoft .NET interface for Lego Mindstorms enables you to programmatically control Lego Mindstorms directly from Visual Basic, Visual C#, Visual J#, or Visual C++ Express. We also have a dedicated sub-page on Coding4Fun on programming Lego Mindstorms with Express.

Beta: Skype Wrapper for .NET Starter Kit
The Beta of the Skype Wrapper for .NET Starter Kit is a managed code wrapper with samples that enables to programmatically connect and consume Skype services from Visual Basic, Visual C#, Visual J#, or Visual C++ Express.

MediaShare Messenger Starter Kit
The Media Share Messenger Starter Kit is a fully functioning Visual C++ Express custom chat client that enables you to send instant messages to your friends and even share your music collection with them over a local area network (LAN).

Annotated Travel Log Starter Kit
The Annotated Travel Log Starter Kit is a fully functioning Visual C++ Express travel planning and tracking application you can use to manage your travel plans & routes, as well as track and record your progress.

Beta: Classifieds Site Starter Kit
The Classifieds Site Starter Kit Beta provides a complete, ready to run, fully customizable, Web site for listing and managing classified advertisements with Visual Web Developer Express and SQL Server Express.

Teacher Starter Kit
The Teacher Starter Kit is a rich client application for keeping track of students, course rosters, and assessments or grades using Visual Basic or Visual C# Express.

Maker Faire Demo: Dancing4Fun
The Dancing4Fun demo is a homemade version of the popular Dance, Dance, Revolution arcade game using Phidgets touchpad sensors to time your dancing just right.

Maker Faire Demo: MSN Spaces Photo Booth
The MSN Spaces Photo Booth demo shows how you can integrate a pan-and-tilt web cam, and an Xbox 360 controller to dynamically upload pictures to your MSN Spaces Web site.

Maker Faire Demo: Skype Home Automation
The Skype Home Automation extends the Skype Starter Kit to show how you can use an instant messaging application to communicate with a home server for the purposes of automation and monitoring, like checking if the lights are on, or even play your favorite music.

How-To Videos: Windows Forms Controls
These bite-sized 5-15 minute videos that show how to use common Windows Forms controls including the SoundPlayer, FlowLayout, NotifyIcon, Button, and other controls using Visual Basic or Visual C# Express.

Video Series: SQL Server 2005 Express for Beginners
This four-hour video series is designed for beginners who are interested in learning the basics of how to create and manage data using SQL Server 2005 Express.

Video Series: Learn how to create Rocket Commander
Watch and learn how to create professional looking 3D games like RocketCommander using Managed DirectX and Visual C# Express in this 10-part instructional video series. 

Webcast Series: Tools for the Hobbyist Developer
The Tools for the Hobbyist Developer webcast series covers the spectrum of Express content including game development, programming for hardware, database development and more.

More details :

VS2005 Plugin - CSS Properties Window

Visual Studio 2005 provides some capabilities for visually editing the styles for elements in an HTML or ASP.NET page. For example, in Design view, you can right-click a control or element, and then choose Style to display the Style Builder dialog box. Although the style builder enables you to create and edit in-line styles, there's no way to edit the styles that are inherited from a linked style sheet.  The new CSS Properties window provides this capability — it enables you to edit both in-line styles and styles in linked style sheets.

The CSS Properties window is an add-in package to Visual Studio 2005. It does not change the behavior of any feature in Visual Studio 2005; it simply adds additional functionality specific to editing CSS in Design view.


Using the CSS Properties window, you can do the following:

  • Display in-line styles and styles inherited from <style> blocks and linked style sheets.
  • Edit in-line styles and styles in linked style sheets. (The CSS Properties window displays styles from <style> blocks, but does not enable you to edit them.)
  • Display drop-down lists of styles and values to help you create valid style definitions.
  • Drag style settings between different elements and to and from a style sheet.
  • Edit styles for multiple elements.

For more details see

VS 2005 plugin that provides support for spell-checking HTML and ASP.NET pages
One of the Visual Studio Web Tools Team just published a cool free plug-in for VS 2005 that provides support for spell-checking HTML and ASP.NET page content within the VS 2005 IDE:

You can download the plugin from

Note: The page above has a large white space so you will need to scroll to the bottom to see more details...


Is your Visual Studio 2005 editor extremly slow when you type?

I have been getting very frustrated with the Visual Studio 2005 code editor being very very slow. I found a reference to a potential fix to this issue.


Typing into the VS.NET 2005 code editor can be extremely slow.


Open a project (C#) in VS.NET 2005 and go to the code editor.

Place your cursor between functions and just hold down the "1" key for about 5 seconds.

How many key presses got recorded? in my case about 45 and they only appeared after another 5 seconds, now follow the steps below and then repeat.

Potential Fix

The Navigation Bar appears to be causing this excessive slow down. Do you even know what the Navigation bar is? THe Navigation bar is displayed at the top of the code window and updates so you can jump to a function or definition of an object directly instead of searching or scrolling.

I have seen these Navigation bars since VB days but I never use them so I have no problem with turning them off.

In VS.NET 2005 select Tools - Options to open the Options dialog.

Scroll down to the Text Editor node and then select C# and then the general tab.

Now remove the check next to the navigation bar.

Click OK

Is it faster?

On my computer I now get about 135 characters in 5 seconds.

Reference :