I’ve been studying Microsoft .NET for a month now, and I continue to be impressed. Microsoft put a lot of very serious thought and design work into .NET, and they have produced an incredibly useful development and execution platform. Finally, I have a unified model for which I can develop all types of Windows applications and components. Whether I’m writing a standalone Windows application, a console application, a Web site, an XML Web service, or a system service, I use the same development model. True, I could have done that in the past using straight Windows API calls, but I do like to actually finish projects from time to time.
The other nice thing? It’s language independent. You can write modules in C#, Visual Basic, COBOL, FORTRAN, or any other .NET supported language, and (provided you follow some simple rules about standard data types) they’ll all work together. This is much different than using COM or ActiveX components, which were supposed to be language independent but rarely were.
Overenthusiastic .NET supporters will talk about platform independence, but don’t let them fool you. Whereas it’s true that Microsoft has submitted the C# language and the Common Language Infrastructure (CLI—a subset of the .NET Framework) to international standards bodies, I find it doubtful that they will actually release a version of .NET for anything other than Windows operating systems. I suspect that the “platform independence” that is built into .NET is there to support future versions of Windows rather than Linux or some other operating system..
There’s a lot to like about .NET, and in a month of studying it I haven’t found any gaping holes there that would make me not want to use it. This is the most exciting new thing to come along for developers in a very long time—way more exciting than anything I found in the Linux world (something I’ll discuss another time).