Bob Lewis
Columnist

MDI, WinForm, and other user interface questions

analysis
Jun 9, 20084 mins

Dear Bob ...We are in the process of starting a project to rewrite our legacy applications into .NET. Because of our business situation, we have a requirement to maintain a rich client experience. One of the difficulties in managing technology is the ever-changing toolset that developers use. We want to be able to attract solid talent, but we also need to choose technologies that actually work and have a long sh

Dear Bob …

We are in the process of starting a project to rewrite our legacy applications into .NET. Because of our business situation, we have a requirement to maintain a rich client experience.

One of the difficulties in managing technology is the ever-changing toolset that developers use. We want to be able to attract solid talent, but we also need to choose technologies that actually work and have a long shelf life.

We thought that all we had to do was pick a language in .NET (C# in our case) and find a solid experienced architect to help us get started. Then the fun began.

Our current application uses the Windows Multiple Document Interface (MDI). Our end-users are used to that interface and we would like to maintain it. As we talked to some .NET architects, we learned that MDI/Winforms interface design was considered old school — developers have moved onto web applications and more recently the Windows Presentation Foundation (WPF) now known as Silverlight. So just as we thought we were safe in the Microsoft development world, we now learn that it is changing fairly rapidly and now we are wondering if we should even convert the legacy applications.

I am concerned. Will we rewrite our application over a few years and discover the part of .NET we used isn’t “hip” anymore and developers will be hard to find? Should we redesign our application away from MDI into a more web like feel? Or should we just sit on the sideline and wait?

– Need help from Bill Gates

Dear Need-Bill …

This is an “it depends” answer, and I reserve the right to change my mind tomorrow. If I do, I’ll let you know and give you an equally strong opinion on the other side.

How’s that for decisiveness?

As Ann Landers pointed out a long, long time ago there’s a difference between fashion and style. Fashion is temporary and a matter of whim; style is enduring and a matter of taste. I think we’re in that realm.

That the .NET world doesn’t like MDI interfaces strikes me as more fashion than style. That fashion could change next year and you’d discover you’ve been in the forefront, not the rearguard.

Not sure what the issue is with WinForm. As I understand the term, it means adhering to standard Windows look-and-feel conventions. I imagine they’re no longer cool in the .NET world because Microsoft abandoned the standard when it created the Ribbon … but I’m not sure, and I have to wonder if this is another example of fashion rather than style.

No matter what you do, .NET is going to be a moving target. That’s the nature of the beast, because the moment it stops being a moving target, Microsoft will have trouble selling upgrades.

Had you chosen Java instead of .NET I doubt the situation would be much better — just different in the details. For the rich experience you want you’d be looking at the dreaded AJAX, or perhaps Adobe AIR. The downside of rapid innovation is (as if you need me to point this out) the loss of predictability.

I suggest you have a next-level conversation with the Architect. Talk about the fashion vs style question. Make the point that you are going to have to put a stake in the ground with respect to user interface, because you can’t have that constantly shifting during the course of the conversion. Then ask the candidate what he would do, given that what’s currently cool in the .NET arena could, in four years, become just as un-cool as WinForm is right now.

Really, the question is whether MDI and WinForm count as bad architecture, or if the problems are more superficial.

I’m not in a position to know the answer to that. I just know it’s a good question.

Luckily, many of the people who visit Advice Line are in a much better position to know the answer. Hey out there – what do you think?

– Bob