string.format("{0} Architect{1}", "Over", "ed")

As an enterprise software architect, there are many difficult problems that I face at work.  Most of the time, these problems require an elegantly architected solution that promises to be both maintainable and efficient at the same time.  This is always a difficult balance to achieve. 

The thing that surprises me most is that many people have a skewed view of maintainability.  An application that is maintainable does not necessarily mean that it is simple to configure, refactor, or extend.  While these characteristics of software are good ones, they do not make software easy to maintain.  Ease of maintenance to me means that a developer with good fundamental skills can understand, support, and modify code.  Often times, the simplest software is the easiest to maintain.

Which brings me to my key point: Many software systems are overarchitected

While that word came up as a spelling error in my editor, I am quite confident that the concept exists.  You know the stuff I am talking about — Code that is ridiculously complex in the name of architectural purity.  Code that has hooks for uses that only the designer/developer were able to dream up and that the user or support tech will never understand or use.  If these extraneous bells and whistles cause you to expend brain cycles on goals other than making the software meet the requirements, the exercise is purely academic.

This is why is pays to have experience in the problem domain for which you are writing software.  If you understand what things the user may want to do, you can add the right hooks in (and none of the wrong ones).  Take the title of this blog post as an example.  I have plenty of flexibility as I have a plethora of options for switching out my title.  Heck, I could even put it in web.config!  But alas, does that really buy my anything to be able to easily switch my blog post tile to “Under Architecting”?

So before you amaze yourself with your coding prowess, think about what it is you are doing.  Is it a requirement for you application?  Would it be used any more often than once per ice age?  Did you only do it to prove that you could?

A little common sense goes a long way…


Missing Web Site Templates in Visual Web Developer 2008 Express Edition

Continuing in my quest to experience the goodness of the new .NET 3.5 SP1 stuff from the ground up, I installed Visual Web Developer 2008 Express Edition.  After all, now that I have my AdventureWorks database up and running, I want to experiment with ASP.NET data scaffolding (ASP.NET Dynamic Data), JavaScript Intellisense, ADO.NET Entity Framework, ADO.NET Data Services, and many of the other great new features in this release.  As Scott Hanselman and Carl Franklin recently discussed on Hanselminutes, this framework update really should have been .NET 3.6 there is so much new stuff in there!


The Problem

So I was sorely disappointed to start my first web site and was prompted with this confusing dialog box after doing a File -> New -> Web Site:


Selecting a different version of the framework didn’t fix anything, I had no web site templates!  How was I going to follow all of these simple step-by-step tutorials if I couldn’t get past step 1?  From the scores of other people having the same issue, I could tell I was not alone in my frustration.

Allow me to back up a bit and describe how I got into this predicament — it didn’t take long…



After installing, I did the natural thing and clicked on the item in my start menu labeled “Microsoft Visual Studio 2008” as it seemed to be the only logical choice.  Verifying the properties shows that this shortcut is pointing to C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\Devenv.exe, which is exactly what I would have expected from experience with other versions of Visual Studio (insert snide remark about seemingly old version number in the “Common7” part of the path).


The Solution

No telling if this will be the same problem that everyone else seemed to be having, but it appears I just opened the wrong .exe!?!  I can’t really blame myself though, since the installation process seems to be a bit misleading.  There is no shortcut anywhere to the correct application which is actually called VWDExpress.exe:


Launching this executable manually gives me the much anticipated web site templates, and what I need to move on .  One subtle note is that my menu path to get to this is actually File -> New Web Site.  This path is one level shallower than the full blown studio version, but they both share the same keyboard shortcut of Shift + Alt + Nimage

So, if you read the whole post above and you’re still not quite sure what I am getting at, just look at the log in your development environment:

No web site templates (bad):


Web site templates (good):


The Details

To clarify whether or not this should apply to you, I am running all free versions of the tools provided my Microsoft.  If you have a full-blown version of Visual Studio, you may not experience this problem when using the standard IDE.  I first installed SQL Server 2008 Express, then Visual Web Developer 2008 Express.

This means that I now have the following versions of these files:

devenv.exe 9.0.30729.1
VWDExpress.exe 9.0.30729.1


Stay tuned for more blog posts as I continue on this journey…