The power of .NET

Not often do I have to explain to customers about Cross Platform and .NET, even when Eric Rudder spent 2 days in Israel last week he was asked about Microsoft’s position regarding mono.

Personally I love the idea that someone is taking the specification and really proves that it can be done outside Microsoft. Practically I think it’s a lost battle. I really can’t imagine anyone that could keep up with the guys in redmond. Why is that? when I think of the reasons, I came up with 1 that has nothing to do with .NET. It’s Windows itself that is the key to the power of .NET.

While reading about the how portable ASP.NET is most of the article really discusses really really simple scenarios. Real world application in the enterprise level cannot live using such basic and poor support for cross platform.

For instance take the System.Transaction namespace in .NET 2.0 or the Enterprise Services as we know it today, they are a key thing for every large scale application. Juval Lowe while speaking in Teched Israel did a great session on Enterprise Services said at the beginning of his talk that if you are not using Enterprise Services you are writing a toy. Many attendees disagreed loudly, but 30 min later most of them agreed that they simply didn’t know enough about it.

This brings me to a key point in my argument, showing poor sample of porting does not mean it is portable. Someone who is new to .NET could easly be misled by such articles and put all his eggs on the mono basket relying to the power of windows where it doesn’t exist.

.NET is powerful because it’s windows under the hood.

Comments (4)

  1. Does that mean that everything developed for the .NET platform prior to 2.0 is a toy?

    Microsoft likes to hype up their new technologies, and some of them are pretty neat-sounding. But watch out, they are subject to revision and removal. Take ObjectSpaces and WinFS for examples.

    Wait and see what they release, and how it is used, and how it performs in the real world before you commit the resources and develop to these new technologies. Unless, I guess, you work for Microsoft 🙂

    You bring up an important point tho. The libraries are important, not the portable runtime.

    I think what we will see some fragmentation in the .NET platform, depending on Microsoft’s strategy, of course. Some frameworks, especially those developed independently and open-source, will be truly portable.

    Other frameworks, whether thru sheer complexity or patents or "crippled-source" licensing (like Rotor) will be Windows only, and used to suck in mindshare to ultimately sell their OS, database, dev tools, etc.

    The value of these proprietary frameworks in real production applications remains to be seen. It also remains to be seen whether these frameworks can be easily integrated, duplicated or replaced by the open source community.

    But if you live in the real world of the 1.1 framework, then I’d say most of the framework is portable.

  2. SimonT says:

    Mono is the first and still quite early.

    .NET ontop of apache on a linux environment gives you a really powerful framework to build web stuff it doesnt need windows under the hood, and please dont talk to me about TCO, many ISP’s use linux becuase they have the expertise to manage it and recharge those services at some of the cheapest rates on the market.

    Yes I heard Juval’s quote made by Clemens Vasters at Amsterdam, something that other people find a bit arrogant. More pragmatic people in the industry dont believe that ES are the be all and end all to applications, just choosing the right technology is important and large apps can be appropriately written outside of ES.

    Choosing the correct technology for the app is talked about here.

    Personally I prefer windows, despite having spent many years in the unix environment. Likewise there is so much I miss about Unix working in windows, its got closer over the years but I still miss certain things.

    The Mono camp are quite capable of saying the great thing about mono is that it has *Nix under the hood, and believe me they are a bigger bunch of zealots than the micrsoft camp.

  3. Eran Sandler says:

    Windows under the hood is not a reason for making .NET so strong.

    .NET is the making .NET strong since it encapsulates most of the functionality in such a way that instead of using old style C programming, you can encapsulate everything into nice objects (except, of course Windows.Forms which has, IMO, the WORST encapsulation of them all since it is SO tied into the Windows GUI paradigm).

    Windows supply certain services. As time went by more services were added such as Enterprise Services (mostly MTS and COM+ at the moment, not really native .NET).

    Although Mono does not have all of the services in place, there are more than a fair share of applications that exist today that have the MTS, COM+ functionaltuy available today to make Enterprise Services work on any given platform.

    Option is NEVER a bad thing. When you have a lack of options then bad things happen.

    For years Microsoft used the lack of option for the desktop as a main leverage over anything that was prior to DOS and Windows and (of course) Office making Microsoft the "option" for others.

    Since Microsoft occupies most of the market today with Windows and Office, alternative options started show up including OpenOffice vs. MS Office, Linux (in the server) vs. NT/2000/2003, Linux vs. Windows at the desktop and of course, Mono vs. .NET Framework.

    Your argument is correct, poor portability sample doesn’t show portability but the use of missing technological pieces is not the correct way of showing it.

    This is in fact (pardon the language) a "pissing contest" of developers trying to show how great their platform really is. Just because I can use Enterprise Services doesn’t mean I should use.

    There is more than a fair share of web sites today that use ASP.NET and a database and don’t use Enterprise Services even though they can.