Investigating .NET Page 10

Microsoft at the Crossroads

I want to close by reviewing the issues I raised at the start. If you recall, I identified five areas in which Microsoft is weak. Here’s a quick look back.

The Internet.

Undoubtedly the .Net Framework helps Microsoft to compete in key areas like web applications and XML web services. It isn’t going to solve all its problems, but the technology is good.

Security

Security is built into the .Net Framework. It is somewhat undermined by the need to interoperate with unmanaged code, but from a Windows perspective it’s a great step forward. For the moment though, it isn’t going to make much difference to the security of the average Windows box. Things like Outlook 11, in the next version of Office, and the security or otherwise of Windows .Net Server will be more important.

Java

There are several angles to this. With C# and the CLR, Microsoft has a language that is equally as productive and pleasant to work with as Java. The company should find it easier to retain developers who were fed up with VB or Microsoft Foundation Classes in Visual C++. How successfully it can compete with Java in Enterprise Services is open to speculation. The equivalent to EJB in .Net is a thing called a serviced component, which is hosted by COM+, once known as Microsoft Transaction Server. In other words, it’s an interop solution and probably sub-optimal. On the other hand, Microsoft has a few things in its favour. EJB programming is notoriously complex, and the .Net Framework is easier to use, even with Serviced Components. My guess is that .Net has lots of potential in the smaller enterprises, while the largest and most mission-critical applications are likely to run on Java.

Devices

The Compact Framework is excellent. It’s a selling point for Windows CE, but many other factors will determine how successful that is. Still, the Framework helps.

Open source and free software

I wanted to finish with this, as it seems to me that Microsoft is at a crossroads. Microsoft has worked with ECMA, a European standards body, to make C# and the Common Language Infrastructure an open standard. It has also released an implementation of the CLI on BSD Unix and Mac OSX (which is based on BSD). Ximian is working on Mono, an implementation for Linux. The .Net SDK is a free download, compilers and all, and another interesting development is the appearance of SharpDevelop, an open-source development tool written entirely in C#. Some open-source Java tools are being ported to .Net, notably Nant, or .Net Ant, and NUnit, a port of JUnit. In other words, there is the beginnings of an open source, corss-platform, free software movement centred on .Net.

However, many observers assume that Microsoft will squash these efforts by somehow changing the API or the license so that they become incompatible. It will do this, the argument goes, to protect its investment in Windows.

I believe the truth is that Microsoft is schizophrenic on the issue. It is serious about standardising C# and the CLI, and it’s edging towards a Unix implementation and perhaps a commercial OSX release, who knows. On the other hand, there will certainly be other Microsoft insiders who will want to keep .Net Windows only. I don’t know who will win. But it strikes me that the company can only gain by nurturing these open-source efforts. It would do .Net enormous good if it became a credible cross-platform contender, say on Windows, Linux and the Mac. It would do Microsoft enormous good if it could be seen to work with the open source community in the same way as IBM does so successfully. The difference of course is not that IBM is a nicer company than Microsoft. The difference is that Microsoft makes its money selling software, while IBM makes its money selling services.

My hunch is that Microsoft cannot prosper indefinitely merely by selling software. It too will have to sell services. Under pressure from Linux, Star Office and the like, the price of Windows and Office will fall in the coming years and these things will become completely commoditised. The .Net Framework is outstanding technology, but Microsoft must let it grow beyond Windows if it is to fulfil its long-term potential.

Tim Anderson
Based on an address given to the Nottingham and Derby branch of the British Computer Society, November 11th 2002.

Copyright Tim Anderson November 2002. All rights reserved.
You are welcome to post links to this article. If you wish to print, distribute, or copy all or part of it, please contact me for permission, which may be subject to a fee.

Sign up to be notified of future articles

Further reading

If you’d rather have a book or two than trawl through web sites, here are some recommendations:

.NET Framework Essentials by Thuan Thai and Hoang Q.Lam

A nitty-gritty guide to the heart of .NET, not much fluff here.

UK link

US/International link

Programming C# by Jesse Liberty

Excellent guide to the C# language and brief introduction to the Framework

UK Link

US/International link

ASP.Net Unleashed by Stephen Walther

Strong code-oriented guide to ASP.Net (does not use Visual Studio .Net). Language used is VB.Net.

UK Link

US/International link

Developing Applications with Visual Studio .Net by Richard Grimes

Misleadingly titled, this is a fast-paced guide to the Framework and an excellent handbook for Managed C++ developers.

UK Link

US/International link

Essential ADO.Net by Bob Beauchemin

Useful guide to .Net database technology

UK Link

US/International link

Useful guide to .Net database technology

Links and References

General .Net info (Microsoft)

http://www.gotdotnet.com

SharpDevelop
http://www.icsharpcode.net/OpenSource/SD/default.asp

Mono
http://www.go-mono.com

Stephen Gilmore’s article on JVM vs CLR
http://www.dcs.ed.ac.uk/home/stg/MRG/kickoff