Skip to content

Home

Baseline Architecture Toolkit (BAT)

The patterns & practices team introduces a new project, called Baseline Architecture Toolkit (BAT). It's a collection of carefully selected, designed, and integrated guidance assets which include:

  • Reference Implementations
  • Application Blocks (such as CAB and EntLib)
  • Hands-On-Labs
  • How-Tos
  • Guidance Automation Packages automating common tasks
  • Documentation bringing all the parts together and describing the rationale behind the key smart client design recommendations.

The toolkit provides an effective way for architects, dev leads and developers to create high-quality baselines for their smart client applications, addressing non-trivial design and development challenges. The toolkit will provide reusable assets, guidance and examples for solving those challenges in the most common scenarios. Also, the guidance will be open and customizable, so you will be able to adjust it to your specific needs.

There is a Smart Client Baseline Architecture Toolkit released on GotDotNet and it will be updated every 3-4 weeks and is based on the CAB.

On Channel 9 you can find 2 casts about Smart Client BAT:

Virtual PC

Here are some interesting blogs that are dedicated to Virtual PC

There are some fundamental features in Virtual PC that you really have to look at. For example differencing disks, see HOWTO: Use Virtual PC's Differencing Disks to your Advantage and you can also compress your VHD files, see Compact Your VHD Files.

Tip

On several keyboard layouts and for example on a AZERTY belgian keyboard you need the Alt Gr key for the backslash square brackets, etc. Inside Virtual PC the AltGr key doesn't work, therefore you can use an alternative for the AltGr key, which is Ctrl+Alt.

Update

There is a hotfix now for the AltGr problem.

Installing the Windows SDK January 2006 CTP

The Windows SDK - Janary 2006 CTP is available for download and can be used for developing WinFX applications (WWF, WPF & WCF). This page give you the several components that are needed for developing WinFX applications, these are:

When I tried to install the SDK, I received the message that the user has cancelled the installation. In the config file I had the following statements:

0:03:18 vrijdag 20 januari 2006: [SDKSetup:Error] Config_Products_Configure: Configuration of Product Microsoft .NET Compact Framework 2.0 (failed): User cancelled installation. 
0:03:18 vrijdag 20 januari 2006: [SDKSetup:Info] Config_Products_Configure: End configuration of product: Microsoft .NET Compact Framework 2.
0 0:03:18 vrijdag 20 januari 2006: [SDKSetup:Info] Config_Products_Install: End installation of product: Microsoft .NET Compact Framework 2.0 
0:03:18 vrijdag 20 januari 2006: [SDKSetup:Error] Config_Products_Install: Windows SDK Setup (failed): Installation of the "Microsoft .NET Compact Framework 2.0" product has reported the following error: User cancelled installation.

The solution was to simply remove the Microsoft .NET Compact Framework 2.0 from the Add/Remove Programs in the control panel. After that the installation was successfull.

Windows Mobile SmartPhone with TomTom

For a long time I was thinking about purchasing a portable GPS device and I also wanted to replace my old GSM. One of the most popular devices is TomTom Go, but I felt it would be better to integrate both into a smartphone. TomTom also has a product called TomTom Mobile 5 that allows GPS navigation on your smartphone.

Therefore I bought the Qtek 8310 and TomTom Mobile 5 at PDAshop.be, I picked up the Navigation pack. The installation was easy, the only thing I had to do was to upgrade the TomTom software to TomTom Mobile 5.2 which can be found here, so that the software supports the Qtek 8310 which is the same as the i-mate sp5 (this must be chosen in the product upgrade). The TomTom package includes a mini-SD card which contains the TomTom software and maps that can be inserted into the smartphone.

qtek8310_3

I have to admit that everything works perfectly, the software is identically to the TomTom Go devices, there are no speed issues and the screen resolution is more than sufficient. Until now I didn't encounter any problems.

The smartphone itself has many many features, one of them is:

  • OS: Microsoft Windows Mobile
  • Quad-band GSM/GPRS / EDGE module
  • GPRS functionality
  • 1.3 Mega Pixels CMOS
  • Mini-USB plug (Slave USB, Power In)
  • Infrared IrDA SIR
  • miniSD Card slot
  • Bluetooth
  • WiFi
  • ActiveSync
  • MSN Messenger, IE, etc.
  • ...

And most importantly you can write .NET applications for your smartphone. If you download the Windows Mobile 5.0 SDK for Smartphone you get extra templates inside Visual Studio 2005 for writing smartphone applications.

Update:

projectsmartphone

SQL Code Coloring - The Microsoft way

Some years ago on a project I needed a usercontrol for code coloring SQL statements. At that time I reused a dll library that is used inside the query analyzer of SQL server. I wrote a little article about that topic, I think it gives some useful information about COM interop in .NET.

ComponentDropper

Today I released an add-in for Visual Studio .NET 2005 that allows you to drag components onto the designer surface. It's called ComponentDropper and you can even watch a movie to know what it does and how to use it.

RazorToolboxDialog

A very good tool for screen capturing is Windows Media Encoder. It's from Microsoft and you can download it, if you have a legal version of Windows XP.

Windows Media Encoder 9 Series is a powerful tool for content producers who want to capture audio and video content using the many innovations in Windows Media 9 Series including high-quality multichannel sound, high-definition video quality, support for mixed-mode voice and music content, and more.

Unit testing with NUnit and Visual Studio 2005 (MSUnit)

On my current project we are developing a windows forms application in Visual Studio 2005. We are still using CruiseControl.NET for continuous integration and unit testing, because setting up a team foundation server would give an overhead right now.

For unit testing we like to have the nice debug and built-in features of MSUnit and the unit tests automatically tested by CruiseControl.NET through NUnit. The good thing about the two libraries, is that they work through attributes and the common Assert methods are the same.

The template we use for our unit tests, looks like:

#if NUnit 
  using NUnit.Framework; 
#else 
  using Microsoft.VisualStudio.QualityTools.UnitTesting.Framework; 
#endif

namespace MyUnitTests { 

  [NUnit.Framework.TestFixture] 
  [Microsoft.VisualStudio.QualityTools.UnitTesting.Framework.TestClass] 
  public class MyTestClass 
  {       
    [NUnit.Framework.Test] 
    [Microsoft.VisualStudio.QualityTools.UnitTesting.Framework.TestMethod] 
    public void MyTestMethod() 
    { 

    } 
  } 
} 

We migrated our project to the new Composite UI. Yes, today a new release of the cab has been released. In the unit tests of CAB I noticed they did the same trick, but with aliases:

#if !NUNIT 
  using Microsoft.VisualStudio.TestTools.UnitTesting; 
#else 
  using NUnit.Framework; 
  using TestClass = NUnit.Framework.TestFixtureAttribute; 
  using TestMethod = NUnit.Framework.TestAttribute; 
  using TestInitialize = NUnit.Framework.SetUpAttribute; 
  using TestCleanup = NUnit.Framework.TearDownAttribute; 
#endif

namespace MyUnitTests 
{ 
  [TestClass] 
  public class MyTestClass 
  { 
    [TestMethod] 
    public void MyTestMethod() 
    { 

    } 
  } 
}

LAME is a very popular LGPL MP3 encoder. For a long time LAME version 3.90.X was recommended, now version 3.97b has been released. This version uses the -V setting, with a value from 0 (highest) till 9 (lowest) quality in VBR. More details about these settings can be found here.

Instead of lossy compressions like MP3, there are also losless codecs like FLAC (Free Losless Audio Coded). No quality is lost, but the file size is much bigger. Here are some results in applying the above settings on a regular audio cd:

Setting File size Remark
WAV 721 MB lossless, uncompressed
FLAC 405 MB losless, level 9 (highest)
LAME -b 320 163 MB lossy, CBR 320, highest possible quality
LAME -V 0 105 MB lossy, VBR
LAME -V 0 --vbr-new 102 MB lossy, VBR but another algorithm (better quality and smaller)

You can assume that with the settings used here you cannot distinguish the mp3 from the original cd. A very good resource about audio, codecs and tests is Hydrogenaudio. This graph gives a nice relationship between the file size and audio quality for the LAME encoder. Between V0 and CBR320 setting, you see the file size increases by 50%, whereas the quality does not increase as much as that.

Cube server

This year I purchased a server for persisting my data and for running applications that require intensive processing. For me it was very important to have a robust & performant way for archiving my data. Therefore I purchased a RAID card from Areca, the ARC-1120. The raid card is connected through 8 HD's of 200GB from Western Digital in RAID 5. Areca is currently one of the best RAID cards available. This page contains an extended review with benchmarks

My initial idea was to use my current ASUS A8N-SLI Deluxe motherboard, which has 2x PCI-E Express ports, and to use one port for the RAID controller. At that time it was still not possible, but now ASUS has provided a new BIOS driver which fixes the issue. After a lot of research and certainly the many chats I had with Bruno, I decided to go for a server motherboard. This is simply the most recommended way and is more robust, uses registered memory, has PCI-X ports, dual CPU, more memory slots, etc.

I wanted a server motherboard that contains dual CPU core support and featuring one or two PCI-E ports. This way I can easily upgrade in the future if it is necessary. Therefore I purchased the Tyan K8WE, which is an NForce Pro based server motherboard with 2x PCI Express x16 slots @full speed x16 lanes and has even a firewire connection.

A lot of hardware components means a large case. Therefore I decided to buy the U2-UFO case from Mountainmods. It's really a case with a lot of space and most important it can contain up to 9 HD's and it's compatible with an Extended ATX motherboard.

I am still configuring the server, but I will certainly post some benchmarks and experiences. In the mean time you can find the specs and some pictures of my server.

server1

server2

Server3