Month: December 2007

.NET and J2EE Interoperability article

Amer Chaudhry has a good high level view of .NET / J2EE interopability:

It will tell you all you need to know to get a background in this area if you have never looked at J2EE before.  

I’ve also covered this topic inside my company recently, and am considering writing something about it on this blog in 2008. I’ve touched on NetBeans as my learning tool for J2EE before.

Which reminds me, goodbye 2007 and happy new year! 🙂

WPF Part 2 – Using a Grid Control

UPDATE: 04/24/2009

After a year this still gets a few views! I’ve updated the code to make it look better.


UPDATE: 12/21/2007

Hello Channel9 ppl 🙂

I have no idea why this article has got into a debate about web design!

Anyway, this is not about a complete user interface. I might address complex user interfaces later, but frankly my origional ‘pain point’ was lack of a simple Grid demo in WPF.

Please don’t read this as more than it is supposed to be ^_^


In Part 1, I discussed the need for a compelling front end to your demonstration.

Here is my first concept.. just some basic WinForms UI elements required for the job at hand.

Winforms Look n’ feel

I was happy to see this work because I knew the WCF communication code behind, and I saw this as a manifestation of that. 

However, would you show this to a customer?

Hence, I decided to go with a WPF frontend for my next iteration:
WPF Aero Look n’ feel

It still needs some work to go to become a good ‘User Interface’, but this already is 100% better on the eyes.

Doc with XAML code embedded

To give you an idea how easy it is, here is the XAML code I defined to add a progress bar to the Infragistics Grid Control above:

<Grid Width="{TemplateBinding Width}" Height="{TemplateBinding Height}">
	<ProgressBar Minimum="0" Maximum="100" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content}" ToolTip="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content}" MaxHeight="20"/>

And here is another snippet, showing how to add a button, with a click event:

<Grid Width="{TemplateBinding Width}" Height="{TemplateBinding Height}">
	<Button Height="26" Width="26" Tag="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content}" ToolTip="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Content}" Click="Button_Click">
		<Image Source="D:\Projects\avasmall.png"/>

This was all done in the newly released Visual Studio 2008.

Get into WPF – Part 1

Wouldn’t it be great if you could create a nice WCF Services demo, and everyone loved it?

Well, that is the problem.. I wanted a spartan interface because I wanted to show off the services and NOT the UI.

Nevertheless after to showing to a few people, I realised that the ‘plain’ Windows Forms client actually put people off. An attractive UI, although irrelevant to my goal of showing a services demo, actually has the effect of making people more interested.

Hence I wanted something to look good, and I thought I would give WPF a shot. As a learning curve, it was actually pretty easy to get into, especially if you are used to putting together ASP.NET web pages.

The important thing is creating a good XAML structure, which is given equal prominence to the GUI design window. I’m sure VB developers will hate this, but frankly the source to me is a great deal cleaner than the way it used to be done. In the past, if I made a mistake in the generated Visual C++ MFC or the C# Win-Forms code, quite often it would be easier to throw the form away and start from scratch.

Anyway I’m lazy… I could spend a week going through WPF tutorials, or I could dive right in. I discovered that Infragistics have a free Grid control for WPF:

And that Derek Harmon had a good example program about how to configure some controls inside it:

It took me about an hour to be a WPF data grid designer 🙂

Later this week I’ll show the steps required to make the Infragistics Datagrid with custom controls

Visual Studio 2008 Project Compatibility

UPDATE: 16th December: I felt it fair to update the post with my findings


At my company we have a great DSL based tool for generating WCF Services.

However, because of various reasons, the tool will only run under Visual Studio 2005 and not the all new and great Visual Studio 2008.

That is a pity, because I wanted to show off a new concept and hence wanted to use the WPF designer in 2008 to make an impression for the client.

Well, I’m I thought I was in luck! Apparently I can use the same projects in VS 2005 in VS 2008 and vice versa.

So you don’t have to abandon VS 2005 to try out the new features in VS 2008 in your projects… this is good stuff Microsoft!

I should have read the article more closely: I opened up my VS 2005 C# library project in VS 2008.. and it gave me an upgrade wizard 😦

Luckially I was able to use my assemblies from VS 2008 with no trouble, but it could have been so much better.

The State of Visual Studio Team System

This article from November 20th has a nice critique on how Team Foundation Server and Team System are going on the advent of the VS2008 launch:,289142,sid8_gci1282412,00.html

Microsoft has made a great start with Team Foundation Server, and it has every-ones attention in the Microsoft space.

The question is really how much momentum they can keep behind it. The lack of any integration tools with existing software project management / quality systems could well prove to be a problem in the long run.

Still, buying up other companies that make great tools like TFS Web Access is a good way to impress the customers.

If they could make it easier to install, backup and administrate, then that would also be a great step forward. TFS 2005 was frankly too scarey for any small project, and it seems TFS 2008 does in fact address these issues to an extent

Performance Point 2007 Learning Resources

Microsoft Performance Point 2007 looks pretty cool, but it is also rather new. Here are some resources to get into it:

Microsoft Training :

Kevin White :

Nick Barclay:

UPDATE Feb 2nd:

 There are some downloadable books on the MS site: