WinForms Metro - How It Made Us Re-Think Our WinForms Application Skin Delivery Model

01 October 2011

As you already know by now, DXperience v2011 vol 2 will ship with a Metro-style WinForms skin named Metropolis (yes, we'll be following up with Peter Thorpe who originally suggested the name so we can get him some DX swag). Because this new skin might be a frequently used theme, it makes total sense to add it to the assembly that is automatically referenced by all WinForms apps that use our Controls. This means we need to extend Utils.dll, which already includes numerous skins…

The need to extend Utils.dll forced our team to re-evaluate the way in which we package WinForms Skins.

Presently, we have three separate assemblies – Utils, BonusSkins and OfficeSkins. Only the first is referenced by default when you drop our components onto a form. This means that to apply an Office 2010 style, you have to reference an additional assembly. Some of you know that when we add a new skin, it gets placed in the BonusSkins assembly and as a result, the new skin may never be used if your application does not reference the BonusSkins DLL.

To make things more straightforward, we are going to place all the latest and most frequently-used skins into to the Utils assembly so that these skins are available in every application by default. "Frequently-used” themes refer to those that emulate the latest Microsoft apps – including Office 2010, Windows 7, Visual Studio 2010 and, the newly-implemented Metro look and feel.

The following image shows what you can expect in Utils.dll v2011 vol 2.

WinForms Skin Assembly

All other skins will be available via the BonusSkins assembly. We'll thus go from 3 to 2 assemblies.

The upside is a better organized and lighter default assembly. The obvious disadvantage of this change is that you might need to check your project when upgrading to v2011 vol 2 to make certain that the appropriate DLLs are referenced.

14 comment(s)

May be for now a dummy OfficeSkins dll can be provided which links back to Utils.

1 October, 2011
Nate Laff

Awesome!!! Great call guys!

1 October, 2011

Why not use only one assembly and set up a small application that would allow us to group the skins in the way we want?

1 October, 2011
Sigurd Decroos

Seems ok to me.

Any idea when 11.2 will come out?

1 October, 2011

Hang on. I am pretty sure I left the name 'Metropolis' in another DevExpress blog.

2 October, 2011

Oops. Made a mistake. I called it "Metropolitan" :-)

2 October, 2011
Robert Fuchs

> I am pretty sure I left the name 'Metropolis' in another DevExpress blog.

Me too. I even tweeted it.

BTW, who won the Visual Studio Universal?

2 October, 2011
Robert Fuchs

That's ok, well done.

> Any idea when 11.2 will come out?

Friday, Dec 2nd, 2011 ;-)

2 October, 2011
Sigurd Decroos

@Robert Fuchs: I know you're joking, but I really hope it will come in the the next 2 weeks or so :).

4 October, 2011
Sylvain Gherold

2nd of November sounds more logical for a 11.2 version ;)

5 October, 2011

What is the date the launch of the V2011 vol 2?

Excuse my impatience, but I like this kid waiting for Christmas.


5 October, 2011

Maybe November 28th... :)

15 November, 2011
Jeffrey J Young

So let me get this straight.. You removed skins people were using in live applications from the main utils library to make it "lighter"... Thereby either forcing those applications to change the skin they were using or increase the memory load by 7 meg to get the skin that was working back? Seriously? On a terminal server application you just increased the memory load dramatically... Not good.

16 December, 2011
Suhyon L.


30 October, 2015

Please login or register to post comments.