In a nutshell, the environment gives you Java. It's got some other fine-point differences from spawn of Sun but for the most part the value proposition for Java is, from the developer's point of view, the same as it is from Microsoft's new managed environment. Freedom from the tyranny of the pointer, garbage collection, rich object library support are all part of the Java mantra and are all applicable to what I am broadly labeling as "the environment". Beyond Java, the Microsoft environment supports multiple languages hosted on top of the same set of common guts and as a result, cross-language development is practical. If you value being able to author utilities in C++ and UI in VB and being able to mix and match the stuff in the same program, then Microsoft offers you some new advantages. Security is another differentiator. Microsoft has embedded security deep into the environment. Applied correctly (and assuming the framework is secure) you can lock code down to the individual function call. Finally, I'd be remiss for not mentioning possibly the biggest component in the environment, the IDE. Microsoft currently has the best, most integrated, development tools available on the market.
Next on the agenda is the Web-browser application development tools, a.k.a ASP.NET. For folks who have been developing Web applications over the past 5-10 years, the ASP.NET framework is a welcome rationalization of a rather messy process. ASP.NET provides a model within which you can do modular Web development with a clear separation of layout and layout logic. ASP.NET is a fantastic tool for folks doing bread-and-butter site development such as corporate IT shops. Forms-based applications are very straightforward to implement and the resultant code is much easier to maintain than most other frameworks. For more complex stuff, things start to get a little less rosy. Complex client-side code is not well supported (you can do it but you do not get much help). Also as you dig into more complex applications (other than form display and processing) you start to run into "interesting" issues where the framework is less effective. The biggest beneficiaries of this technology will be folks swooning under the load of maintaining traditional ASP/COM Web applications on the Microsoft platform. For these folks ASP.NET is amazing. Also for folks launching into new development and who are okeedoke with the implicit deal with the devil you strike when you go ASP.NET this is a great tool.
Data access is also much improved in .NET. Since most Web applications yank and jam data into and out of databases this improvement has a good deal of impact. In .NET Microsoft has implemented more sophisticated and less cumbersome tools for working with data retrieved from databases. Primary among these mechanisms is the Dataset which allows programmers to retrieve, manipulate and update database data with much more natural, database-like semantics than previously afforded by ADO. Though ADO sported disconnected capabilities, they were tricky to use and "not really recommended".
This was first published in April 2003