Sakes alive, that's open ended! Let's narrow the world a bit. Microsoft applied the .NET moniker to everything that moved for a while so it's no longer meaningful to talk about .NET. So, you and me my friend are going to stick to the developer stuff. In this realm, there are really several focus areas. From where I sit, the most important differentiable pieces are the environment, the Web-browser application developer tools, the data access tools and the support of Web Services.
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".
Dig Deeper on Topics Archive
Have a question for an expert?
Please add a title for your question
Get answers from a TechTarget expert on whatever's puzzling you.