One thing about .net is the new ado.net. It allows kind of a "local database" in addition to a formal database. You can allegedly do complex queries and cross-vendor joins on result sets, for example.

But, I wonder about the "web services" hype. Why do they need so many wrappers? Just have a page that sends and recieves XML (or any other ascii data) in a few pre-determined HTTP variable names. They seem to be overcomplicating "web services".