December 2006 Blog Posts
Visual Studio 2005 Service Pack 1 available now

As expected (wait a second, does that mean Microsoft actually stuck to the announced release schedule? I guess they did...) the first Service Pack for Visual Studio 2005 was released at the end of last week. From the Visual Studio Developer Center web site you can get to the download links for the different Visual Studio Editions (including Express) as well as the Service Pack for Team Foundation Server (TFS) which was released at the same time.

Update: While trying to find more information on the actual bugs that have been fixed in the Service Pack I stumbled over Leslie Giblett's blog post, which provides details on bug fixes for the IDE, the Compiler Back End and Front End, as well as for the Libraries.

Update 2: A more recent and official knowledge base article with bug fixes for Service Pack 1 has been released as well as the Service Pack 1 Update Beta for Windows Vista.

For Windows Vista users there will be a separate service pack to address certain compatibility issues with Visual Studio 2005, and a beta version for that update will be made available over the next couple of days. The final version of the update is expected shortly after the consumer launch of Windows Vista at the end of January 2007.

Note 1: The service pack also includes an update for the Microsoft Visual Studio 2005 Tools for the Microsoft Office System (which you can install separately or might have installed as part of Visual Studio Team Suite or Developer Edition). This portion of the service pack will alert you to uninstall the Microsoft Visual Studio 2005 Web Application Projects hot fix if it is installed. The Web Application Project update was available as a separate hot fix for Visual Studio 2005 and is not automatically uninstalled or updated by the service pack, it has to be uninstalled manually. Unfortunately, since the service pack for Tools for Office is separate from the service pack for Visual Studio 2005 even with a failure it will continue and launch the installer for the Visual Studio service pack. I canceled that and uninstalled the Web Application Project hot fix first before running the installer again.

Note 2: When trying to install the Service Pack I got the following message: "Error 1718. File <tempfile> did not pass the digital signature check. For more information about a possible resolution for this problem, see" The knowledge base says it has something to do with not enough memory being available to verify the MSI installer package. If you are affected by this, follow the link to see instructions for a workaround. The workaround did not work for me, but re-downloading the 430 MB Service Pack worked. Other things I did was close out all programs and disable any virus scanner during the installation.

Note 3: The installation takes really long with very little feedback! The installation screen would sit there saying "0 seconds remaining" for 15 minutes without any visible action, but eventually it will continue. Also, since the update for Tools for Office is a separate upgrade, there will be two prompts, one to tell you that the update installed successfully, and one to kick off the update for Visual Studio 2005 (therefore letting the update run unattended is only possible if you check in between updates). The Tools for Office update took about 15 minutes on my system (with no other programs running!), the second one another 30 minutes.

Considering the size and time it takes to install the service pack it would probably be a good idea to follow Heath Stewart's instructions on Slipstreaming Visual Studio 2005 Service Pack 1 so that future installations of Visual Studio automatically include the service pack.

posted @ Thursday, December 21, 2006 11:02 AM | Feedback (6)
Direct download for popular Visual Studio 2005 hot fixes

In an unexpected move Microsoft created a website with download links for available Visual Studio 2005 hot fixes that were previously available only through Microsoft Developer Support. This is great news because there was little visibility over what hot fixes existed for certain problems with Visual Studio.

The list of available hot fixes for download can be found here. Some of them address corner cases which don't affect a lot of people, but if you are one of the corner case users it's great to finally get it fixed.

As a side note, Service Pack 1 for Visual Studio 2005 has been in development for quite some time, the beta program closed by the end of October 2006, and Microsoft is saying the final version will be released any day now. The service pack will include all available hot fixes of course, but after that the download web site will be the main source for fixes until Service Pack 2 comes out (if there is even going to be one).

posted @ Tuesday, December 12, 2006 4:23 PM | Feedback (4)
Installing Subtext on IIS7, and SQL Server 2005

After going through some trouble to get my Subtext blog running on a Windows Vista installation with SQL Server 2005 I decided to write this how-to so that hopefully other people don't have to go through the same problems.

The instructions explain how to set up Subtext as a Virtual Directory. I also wrote two other articles related to Subtext installation: How to set up Subtext with its own web site instance (like I did with on IIS7, and How to compile and debug the Subtext source code on Vista using Visual Studio 2005.

This how-to is split into two parts: Part 1 gets straight to the point and explains step by step how to get everything set up correctly, Part 2 will give some troubleshooting advice if there are still problems. Most people search for a specific error message, so by including the error messages this post is more likely to be found by someone who needs help.

Part 1

0. Starting Point

As mentioned in the title the following instructions assume that you have an installation of Windows Vista. I used Windows Vista Ultimate Edition RC1 32 Bit which I got through the Customer Preview Program, but any edition, Beta, RC or RTM, and 32 or 64 bit should work with these instructions.

1. Installing IIS7

On a default Vista installation there is no IIS7, so you need to install the IIS7 components. However, since SQL Server 2005 requires IIS6 backward compatibility, we need to install some more features as described in the knowledge base article

2. Setting up the Database Server

I used Microsoft SQL Server 2005 Developer Edition, but again the instructions should work pretty much identical for any edition of SQL Server 2005, including SQL Server 2005 Express. Make sure to install SQL Server 2005 Service Pack 2 (note that Express has a separate download), which is needed to resolve authentication problems and other issues in Vista.

After installing SP2, the installer will inform you that even if your account has administrative privileges on Vista you don't automatically get administrative privileges on the SQL Server instance together with a link to add your current user to the SQL Server SysAdmin role. You should do that, otherwise you will have problems connecting to the server or creating the database.

Make sure to start the SQL Server Service after installing SP2, since you have to stop the service to run the update and it will not automatically start it again!

3. Preparing Subtext

After obtaining the latest binaries from the Subtext project web site on SourceForge you should unzip them to a location of your choice. I used version 1.9.2 for these instructions and unzipped the binaries into the default wwwroot folder created by the IIS7 installation.

4. Setting up the Virtual Directory

Open up the IIS Manager from Administrative Tools and expand Web Sites and Default Web Site. If you copied the Subtext binaries into the wwwroot folder, you should see the SubText- (or whatever your version is) directory now. Right-click on it and pick Convert to Application (which is basically the same as Add Application only that it prefills the values for you). The most important thing is that you change the Application pool to Classic .Net AppPool, otherwise you will have problems with the handlers and other things.

5. Creating the Database

Start up SQL Server Management Studio and connect to your local database server. Should you have failed to add your account to the SysAdmin role after installing SP2 or should the connection fail, make sure that the SQL Server Service is running and then start Management Studio using the "Run as Administrator" option from the right-click context menu. The connection to the server should now work. Then add your account to the Security -> Logins section and give yourself the SysAdmin role. Then you won't need to use elevated access rights anymore to connect to the server.

Create a new database with the name of your choice. For simplicity reasons I picked the default name SubtextData_1.9, but you can use any name. Make sure to edit the subtextData connection string in the Web.config file if you change the database name.

Now in the Security -> Logins section add a new login for the NETWORK AUTHORITY\NETWORK SERVICE user. Just like on Windows Server 2003 on Vista the NETWORK SERVICE user replaces the ASPNET user that you usually find on Windows XP systems for executing ASP.NET applications. Under User Mapping, check the Map checkbox for your Subtext database and give the account db_owner privileges. You will need that to set up the database.

6. Start Subtext installation Wizard

Open your favorite browser and navigate to the web address you used when you set up the Virtual Directory. If everything worked fine, you should see the Subtext welcome screen which will take you through the rest of the installation process.

Part 2

Problem: When installing SQL Server 2005 the following messages appears: "This program has known compatibility issues" and "After SQL Server Setup completes, you must apply SQL Server 2005 Service Pack 2 (SP2) or a later service pack before you run SQL Server 2005 on this version of Windows."
Solution: Continue and install SQL Server 2005 SP2 afterwards.

Problem: You receive this warning message for the IIS Feature Requirement on the System Configuration Check page of the SQL Server 2005 Setup program: "Microsoft Internet Information Services (IIS) is either not installed or is disabled. IIS is required by some SQL Server features. Without IIS, some SQL Server features will not be available for installation. To install all SQL Server features, install IIS from Add or Remove Programs in Control Panel or enable the IIS service through the Control Panel if it is already installed, and then run SQL Server Setup again. For a list of features that depend on IIS, see Features Supported by Editions of SQL Server in Books Online."
Solution: Install the necessary IIS7 components according to this Microsoft knowledge base article.

Problem: You receive the following message when navigating to your Subtext web address: "An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)"
Solution: Make sure the SQL Server Service is running. After installing SQL Server 2005 SP2 the service is not automatically started again!

Problem: You receive the following message when navigating to your Subtext web address: "Subtext cannot connect to your backend database. Seems to be a problem with the login."
Solution: Make sure your connecting string points to the right database and that the database exists. The Subtext installation process will create database tables, but not the database itself. If the database exists, make sure the NETWORK AUTHORITY\NETWORK SERVICE user has dbowner rights on the database.

Problem: When running SQL Server Management Studio and trying to connect to your local database server, you get the following message: "Cannot connect to <machinename>. Additional information: Login failed for user '<machinename>\<username>'. (Microsoft SQL Server, Error: 18456)"
Solution: Even if your user has administrative rights in Vista, you don't automatically have them in SQL Server. Start Management Studio using the "Run as Administrator" option from the right-click context menu and connect to the server then. Then add your account to the Security -> Logins section and give yourself the SysAdmin role. Then you won't need to use elevated access rights anymore.

posted @ Monday, December 11, 2006 5:38 PM | Feedback (48)
Installing Subtext as its own Web Site in IIS7 on Vista

After writing my lengthy installation post on how to get Subtext up and running on IIS7 using a Virtual Directory, I want to follow up now with some quick instructions on how to configure a new web site in IIS7 for use with Subtext.

It seems like Microsoft heard the pleas of all web application developers who were asking for the same thing: To not cripple IIS for the desktop versions of the operating system. While in previous versions the ability to configure more than one website on IIS was limited to the server versions of the respective operating systems (Windows 2000 Server and Windows Server 2003), in Windows Vista it is finally possible to configure more than one website on IIS7 without requiring Windows Longhorn Server. That makes it really easy to switch from a Virtual Directory to a website following these steps:

  1. Open IIS Manager from Administrative Tools
  2. Right-click Web Sites, pick Add Web Site...
  3. Pick a web site name, make sure to select Classic .NET AppPool
  4. Point the physical path to your Subtext web root directory (same as previously used in the Virtual Directory)
  5. Enter the Host Header value that matches your chosen sub-domain name, such as
  6. Done!

Yes, it really is that easy. Don't forget to go into your Subtext Host Admin configuration and change the Host Domain value of your blog to the sub-domain you picked, otherwise certain links throughout the blog won't point to the right locations (such as the RSS and ATOM links).

Note that the bigger part of configuring your blog as its own web site might be the configuration of your sub-domain. Depending on how and where you are hosting your domain different steps might be required to make sure the sub-domain name is forwarded to the server correctly. However, since this is a very common task it should be described in your host provider's online help and manuals.

posted @ Thursday, December 7, 2006 5:17 PM | Feedback (26)
Technology Showcase: WPF/E


Since I am into cutting edge technology I would like to showcase something that has caught my attention periodically (meaning whenever I have time to write about it without actually setting a fixed interval) to give everyone a snapshot of cool/new emerging technologies which might become the standards of tomorrow and which might be worth considering for future projects.

For this showcase I have chosen Microsoft WPF/E, which has garnered a lot of attention lately in blogs [1], [2] and press [3] and which marks an important milestone with the recent release of the December CTP [4].

WPF What?

One of the pillars of the new .NET Framework 3.0 is the Windows Presentation Foundation (WPF) [5], [6], which is the next-generation presentation subsystem for Windows:

It provides a consistent programming model for building applications and provides a clear separation between the UI and the business logic. A WPF application can be deployed on the desktop or hosted in a web browser. It also enables richer control, design, and development of the visual aspects of Windows programs. It aims to unify a host of application services: user interface, 2D and 3D drawing, fixed and adaptive documents, vector graphics, raster graphics, animation, data binding, audio and video.

WPF/E is a subset of WPF, and stands for Windows Presentation Foundation/Everywhere. Note that Microsoft treats WPF/E as a codename and the final product name might change. WPF/E is basically a mobile version of WPF, based on XAML and JavaScript, with a limited set of functionality. This enhanced functionality is provided through a browser plugin.

There are endless applications for such a graphics engine, and technology like this opens the door to feature-rich server-stored/-provided applications that blend the advantages of desktop applications with web-enabled applications seamlessly together.

Beyond Microsoft

Over the years there have been many extensions both in forms of browser plugins as well as new web standards, and few of them managed to scratch the surface of the set of established web elements (does anyone still use VRML or SVG?). Before going over to some eye candy and WPF/E samples here some arguments why I think WPF/E has a shot:

  1. Cross-platform compatibility. Maybe multi-platform would be better than cross-platform, because cross-platform is usually used when talking about something that works on all platforms. However, right from the start WPF/E supports an impressive and for Microsoft unusual range of products, which clearly show its purpose as a "beyond-Microsoft" technology: There are plugins for Windows and Mac OS (both x86 and PowerPC), and the plugin works in IE 6/7 as well as Firefox 1.5/2.0 and Safari. And by works I mean officially supported by Microsoft!
  2. Instead of being yet another new technology WPF/E integrates with existing technologies, most notably underlining the compatibility with ASP.NET AJAX. Microsoft clearly wants WPF/E to be a design platform that enables you to bring different technologies and a plethora of multimedia elements together instead of replacing any of the existing technologies.
  3. It's small! Remember how the introduction of the .NET 1.0 runtime came with a 20+ MB download that required a reboot and administrative privileges? The WPF/E plugin is a tiny 1 MB download which executes in the blink of an eye, and all that is required is a refresh of the current page in your browser (if it contains WPF/E elements), you don't even need to restart the browser!
  4. It's here now. While WPF/E has been talked about for a couple of months now, Microsoft has chosen to introduce the first Customer Technology Preview (CTP) late in the development cycle, so that users and developers don't have to wait long until the targeted final release date in Q1 2007. They probably learned from the problems that can arise from making beta technology available too early, as seen with the Windows Workflow Foundation betas which had breaking changes in almost every new beta release that caused migration headaches for early adopters.

Let me see it!

Alright, here some screenshots of the available demos (Edit: Unfortunately there were problems with uploading pictures to the blog, so I had to replace my own shots with public ones. I'll post an update as soon as I get it fixed). Install the client from [4] and try them out yourself, there are more available than shown here!

Page Turn

This is a simple picture slideshow that uses a book-page turn effect when going to the next picture. You can even drag the corner of the image and turn over to the next picture yourself.

Sprawl Game

A simple game which shows off some of the graphic abilities of WPF/E. The size of the game scales with the browser size, and the (simple) animation is fluid. Obviously this looks just like any Flash-game, however one of the main differences is that the whole graphics and animations come from one XAML file that is publicly available and loaded by the WPF/E engine. Also, WPF/E is started as an instance of a JavaScript object, not as an embedded ActiveX object.

What's next?

In a way WPF/E is only the tip of the iceberg. Microsoft has developed a whole new product line under the Expression Studio label targeting user experience and interface design as well web and desktop application design. Expression Studio consists of the following four elements: Expression Web (Web design tool which has been released already as the effective successor of Microsoft FrontPage), Expression Blend (Smart-client design tool, in Beta 1 right now), Expression Design (Illustration and graphic design tool, CTP available), Expression Media (asset management tool, not available yet). All of them will be available as final products at the beginning of next year. Expression Web will allow the creation of WPF/E-enabled web sites.

There will be Visual Studio development extensions and tools to allow direct and tight integration of WPF/E with the common development tools.

Finally, while it hasn't been talked about much yet, the E in WPF/E does stand for Everywhere, so we can expect to see applications pop up that will enhance the user experience on mobile devices as well, most likely Windows Mobile 5 (and the upcoming 6.0 version) PocketPC and SmartPhone devices.


[1] ScottGu's Blog: Announcing the release of the first "WPF/E" CTP

[2] Somasegar's WebLog: A key milestone on the "user experience" journey

[3] Microsoft introduces Expression Studio, enhances family of professional design tools

[4] MSDN "WPF/E" (codename) Dev Center

[5] Wikipedia: Windows Presentation Foundation

[6] Netfx3: Windows Presentation Foundation

[7] Microsoft Expression Studio

posted @ Thursday, December 7, 2006 5:13 PM | Feedback (4)
The Purpose of this Blog
Here we go, yet another blog to add to the blogosphere! I say add because I hope and believe that I can add something to the community with my posts and thoughts. What community you ask? Well, being a software developer in Silicon Valley most of my posts will be about development problems that I have proudly solved, or other tidbits that I found interesting enough to write about. But I will also mix in more personal posts about riding my motorcycle or my travels throughout the world. We will see how it goes!

In the title of this post I mentioned that this blog actually has a purpose, and in fact it even has a dual purpose:
  1. For now this blog will be the focal point of my personal development efforts. I have had a lot of code snippets and little tools on my hard drive for quite some time now and was looking for a way to publish them with little effort. Eventually there will be a separate sub-domain for code I want to share, but I want to start small, otherwise it will never get done. Also, this blog is running on my own server, because I want to experiment with different things and development tools, all of which I will probably write about in the future. This also means that sometimes something might not be working, but I hope there will only be minor glitches (otherwise let me know please)!
  2. Instead of rehashing content I see elsewhere on the web, I would like to share things that I wasn't able to find anywhere. Thanks to the power of the available search engines even a blog with only a few entries and little traffic can be found by someone looking for the solution for a specific problem, and I hope I will be able to provide some of that help in the future (just like others have done for me).
So much for my first post, the next one will have actual content!
posted @ Thursday, December 7, 2006 5:11 PM | Feedback (4)
Welcome! This is the blog of a .NET software development enthusiast living in Silicon Valey, California, USA. The opinions posted here are my own and in no way represent the opinions of my employer or anybody else.