Let me put my cards on the table. I'd like to see .Net go cross-platform. I like the .Net Framework; it's great to work with. In particular, I like the way you can easily share code between web and windows applications. The Windows Forms part of the Framework has some rough edges, but still makes it relatively easy to snap together a rich client application, easier in many cases than doing the equivalent in Java and Swing. But I don't want to shut out users on the Mac or on Linux. OK, they can run Web applications, or use .Net Web Services, but that's not enough. I want to deliver those users my .Net executable and have them be able to run it.
It runs: .Net on the Mac
Well, there's Mono. It looks good and I hope it succeeds. But imagine what Microsoft could do if it got behind cross-platform .Net. All that research into the CLR on Free BSD must be there for a reason (BSD is the basis for Mac OSX). With a bit of effort, we could have Windows Forms apps running on the three most significant desktops: Windows, Mac, Linux. The company may think that would undermine Windows. Or it may think that people are only interested in Web apps these days. Neither is true. Macromedia is garnering great interest in Flash as the premier cross-platform rich client. But would you rather program in ActionScript or C#? I know which I would choose, and it isn't ActionScript.
To date though, cross-platform .Net is only a dream. Oh well, there's always the likes of Wine and Virtual PC. Or is there? When I scoured the Web for news on this subject, I drew blank. The Wine folk don't seem to be interested in running .Net apps. And I couldn't find any reports of success with Virtual PC, to my mind the most advanced of the Mac PC emulators. So without much hope of success, I got hold of an iBook, stuffed it to the max 640MB RAM, installed Virtual PC for DOS, and experimented with various flavours of Windows. Windows XP on this setup runs, just about. But I couldn't get dotnetfx.exe (the .NET runtime) to install. It seemed to run OK, then bombed out. So I tried Windows 98. My first effort failed. However, with Virtual PC it's easy to start again. I tried a fresh install. It worked. On went IE 6.0, then MDAC 2.7, then the Framework, then the SP1 service pack. No errors. I tried one of my apps. Nothing seemed to be happening. I waited. Then ... it opened. Wow. Dot net runs on OSX, fantastic. Unfortunately, it's slow. Really slow. Sadly, my app isn't usable, not really. Maybe on a high-end G4, rather than my lowly G3 iBook? If you've had success, please leave a comment and let me know. Even so, I'm encouraged. It runs, and that's a start. Maybe Connextix will improve the speed. And finally, yes I realise that .Net on Win98 on DOS on Virtual PC on OSX is a house of cards and no real answer. So Microsoft - how about .Net for the Mac? Please.
Click here for a full-screen grab of .Net running on the Mac
Copyright Tim Anderson 4th November 2002. All rights reserved.