Monthly Archives: May 2008

.NET Reflector Released

Get it from here.

Typemock Isolator v4.2.4 Released

Typemock released version 4.2.4 of its Isolator mock framework.

You can check out the release notes in The Typemock Insider blog and download it from the Typemock Isolator Download page.

Using Windows Server 2008 As A Desktop Operating System

When I installed my new machine I considered installing Windows Server 2008 with Hyper-V. But this my desktop not my server and I like desktopy things on my desktop and I don't need virtual machines running all the time, I thought Windows Vista plus Virtual PC 2007 (although x64 support on virtual machines would be nice) would be the right choice.

Yesterday I was trying the Developer Interface from InnerWorkings and I couldn't get it to work because Internet Explorer kept popping up Internet Explorer Enhanced Security Configuration errors from the InnerWorkings' Visual Studio add-in which blocked Visual Studio.

I know Rui uses Windows Server 2008 as his laptop operating system (as well as António) and I asked Rui how I could get rid of Internet Explorer Enhanced Security Configuration. Rui pointed me to this blog posts:

Looking through Systweak's series of posts about the Windows Server 2008 Desktop (see below) almost made me regret having installed Windows Vista instead of Windows Server 2008. But my next laptop will definitely be running on Windows Server 2008.

Windows Server 2008 Desktop

Rendering ASP.NET Validators And Validation Summary Property As HTML Attributes

Yesterday I blogged about the cause of ASP.NET validators and validation summary slowness.

At that point I wasn't aware of the existence of the XHTML conformance configuration (thanks Nuno).

With the XHTML conformance configuration set to Legacy, the rendering of controls works like it worked in ASP.NET 1.1.

The Cause Of ASP.NET Validators And Validation Summary Slowness

When building ASP.NET pages, if you use too many validators and validation summaries your pages can become very slow. Have you ever wondered why?

Lets build a simple page web page with a few validators. Something like this:

Web page with validation

The page is composed of:

ASP.NET renders the ValidationSummary as a DIV and each validator as a SPAN and uses expando attributes to add properties to those elements.

According to the documentation, expando attributes are set dynamically from JavaScript to preserve XHTML compatibility for the rendered control's markup.

The problem is that all that JavaScript makes the HTML document larger and slower to execute than if the properties were rendered in HTML as attributes of the elements.

For such a small page, the difference in size approaches 2k bytes. If you add a few dozen validators to he page, the slowness is noticeable.

I'm all in favor of strict standards and standards compliance, but in this case, I wish XHTML would allow arbitrary attributes.

Build Your Own LINQ Provider

Mehfuz has been building a toolkit for creating LINQ providers and it's available at CodePlex: LINQExtender

He has even built a LINQ provider for flickr with it: LINQ.Flickr

File And Folder Comparison Tools

Software development is still a very human oriented task. High level programing languages are some form of human readable language.

At some point you'll need to compare one or more files and see what changed.

This is a list of file and folder comparison tools that I came across at some point in time.


WindDiff is a free tool that comes with Microsoft support tools or software development kits.

It's old and doesn't have many features, but it's still able to compare files and folders.


Also a free tool, WinMerge has a few more features than WinDiff.


KDiff3 is also a free tool and can handle two or three files or folders.

Unlike the others, KDiff3 is a multi platform tool.

Compare It!

Compare It!, from Grig Software, it's not free (unless you own a licence for ApexSQL Diff), although not very expensive. This tool can recognize a few file formats like MS Word, Excel, PDF and RTF and has syntax highlighting for C++, Java, C#, Delphi and HTML.

Araxis Merge

Merge, from Araxis, is, in my opinion, the best file and folder comparison tool in the market. Imagine that it can even compare images. It also has a Virtual File System (VFS) API and comes with plugins for Perforce and Visual SourceSafe (a TFS plugin is overdue).

It's not free, but the feature set is rich.

The Architecture Tool Space Keeps Growing

The tool space for software architecture has been growing. There are new tools and continuous improvement in the existing ones.

Framework Design Studio

Last month Krzysztof Cwalina from Microsoft released the Framework Design Studio at MSDN Code Gallery.

The tool allows comparing two versions of an assembly to identify API differences: API additions and removals. Comparing versions of APIs comes very handy during API design process. Often you want to ensure that things did not get removed accidentally (which can cause incompatibilities), and as APIs grow, you want to review the addition without having to re-review APIs that were already reviewed. The tool, called Framework Design Studio (FDS) supports these scenarios. - from Krzysztof's blog post


Lattix keeps improving its Architecture Management System composed of two tools:

The Lattix tools can be used in the following environments:

The site has lots of resources on its getting started section that can be used to evaluate the tools:

  • Download a trial version of Lattix LDM
  • Take the tour
  • See a live Demonstration
  • Assess your software
  • Try a JumpStart project

The latest release (Lattix 4.1) was released on April 21, 2008.


NDepend, from fellow C# MVP Patrick Smacchia, targets only the .NET Framework (stay tuned for more) is also in continuous development. Its UI is more familiar for Microsoft Visual Studio and Microsoft Office users than Lattix's UI and a really cool feature:

The site has lots of videos (both on the Home page and Getting Started page) and documentation on all the concepts used by the tool.

The latest release (NDepend 2.8.1) was released on April 26, 2008.

ApexSQL Enforce

ApexSQL Enforce, from ApexSQL, targets SQL Server databases allows to:

  • Ensure adherence to design standards in "real time"
  • Facilitate upgrades to new versions of SQL Server by identifying potential conversion problems before the database is ported
  • Automatically reverse or fix detected violations using generated "FixSQL" scripts
  • Enforce Naming conventions and ensure that SQL reserved words and special characters are not used

The site has lots of product information:

The latest release (2008.02) was released on Marsh 26, 2008.