Posts

Showing posts from October, 2008

A Little Bit of Style

Image
Previously, I had mentioned that there were two SoC projects for Mono this year that I was particularly interested in. The second project was the one I mentored: George Giolfan's work to bring native rendering to Winforms.

Currently, our Winforms implementation mimics the "Win32 Classic" look, also known as looking like "ass". It has been important to support this default .Net look, and has provided us with a consistent target, but now George has provided us with something better.

Winforms has the System.Windows.Forms.VisualStyles namespace, that provides access to native rendering on Windows. George has implemented a theme that uses this namespace, to achieve much better looking applications. His work initially focused on writing this for Windows, as the VisualStyles namespace is already implemented for Windows. Although this currently doesn't work on Linux/OSX, the massive amounts of refactoring that George had to do will make it much, much easier to i…

Smart Client Software Factory on Mono

Image
Recently, Miguel posted that Microsoft's Enterprise Library 4.0 is now available under the Ms-PL, a Mono compatible open source license. This week, I downloaded the Smart Client Software Factory (SCSF) to see if it would run under Mono. It comes with a QuickStart tutorial called BankShell that I used to test with.

I hit two bugs in Mono:
430932 - IsolatedStorageFile.GetStore throws exception
431001 - Exception using XmlTextReader after stream is disposed

I also hit one bug in the SCSF:
18740 - ModuleInfo constructor not cross-platform safe

After commenting out or working around the offending lines, the BankShell application popped up and seemed to work nicely.



The sample application looks simple, but it's actually pretty complex. Each UI element is in a different assembly. The "composite application" dynamically loads each one and places them. The theory is that the application can be broken down into smaller pieces that can be distributed to different teams to build a…