For wide adoption in the enterprise, .NET must run on Linux too

Microsoft needs Linux. This statement might surprise you, especially when you consider that Linux and the open source software movement appear to be well on the way to becoming Windows' most significant competition, at least on the server side. However, Microsoft is in the midst of transforming itself into an enterprise software services platform. If Microsoft succeeds, the more ethereal .NET Framework will replace Windows as the primary software platform. Applications that once relied on Windows and the Win32 API will change to take advantage of the XML-based .NET Framework classes and Web Services.

However, this transformation won't succeed if the .NET Framework and Web Services run on only Windows. Critics have long blasted Microsoft's products as being Windows-centric and not truly suitable for the enterprise. They justifiably claim that no enterprise uses only one platform. Enterprise infrastructures (especially those that rely on the Internet) consist of heterogeneous systems that need to interact. Platform-specific products can play only limited roles in mixed environments.

Lessons Learned from COM
You might recall that Microsoft initially claimed that COM was potentially a cross-platform technology. However, UNIX and Linux software developers opted to use Java and Common Object Request Broker Architecture (CORBA) rather than COM. The COM platform and all the Microsoft applications built on it remained, for all practical purposes, Windows only.

Enter the .NET Framework. Unlike COM, which was based on proprietary Microsoft binary formats, the .NET Framework has a foundation of ASCII-based XML. Thus, other vendors such as IBM can freely participate in the development of Web Services. Moreover, by submitting the .NET Common Language Infrastructure (CLI—the runtime layer that translates the code in .NET applications to the underlying OS) to the international standards organization ECMA, Microsoft has eliminated the proprietary threat that stifled COM and continues to plague Sun Microsystems' Java. For the first time, Microsoft has an application platform that's truly capable of reaching across platforms and the enterprise.

However, as COM's cross-platform failure demonstrates, the potential to become cross-platform and the actuality of widespread implementation are miles apart. Implementing the .NET Framework and Web Services on Linux is key to gaining enterprise acceptance of the .NET Framework.

.NET on Linux
Several projects are aimed at bringing the .NET Framework to Linux. Microsoft's $135 million bailout of Corel more than a year ago seems to have paid off. Corel is gearing up for an extended effort (appropriately named Port Project) to port the .NET Framework to Linux. Ximian, another open-source company, has launched a project called Mono, which also has the goal of building a Linux version of the .NET Framework.

The .NET Framework's support for open source could be Microsoft's key to becoming a true enterprise platform, but that same key holds the potential for opening a Pandora's box. Making the .NET Framework the application platform potentially commoditizes the OS, paving the way for low-cost Linux to gain more acceptance as a network OS.

Broad enterprise adoption of the .NET Framework will also have significant ramifications for administrators. Managing applications that consist of components running on many divergent systems and platforms will certainly require much more capable tools than anything we've seen to date. (Microsoft isn't alone in facing this challenge. Java faces similar multiple-platform support problems.) Apparently, Microsoft will need to take some bad along with the good of .NET moving to the next level in the enterprise.