Two years after the initial announcements, people are wondering where .Net is already. Even Bill Gates isn't happy with everything Microsoft has done on this front. I'm not so surprised. To me, it was obvious two years ago that a radical change like this would take a long time to get off the ground. It's always a good bet that radical changes will take a long time.
But it does raise an interesting question: What can .Net do so far? What has Microsoft actually shipped in the last two years? The short answer is: if you're a programmer, there's a lot for you to work with; if you're looking for more canned solutions, well, I think you've got a bit of waiting left to do. (And it's just as well. If customers were in a buying mood lately it might be worth it to Microsoft to push .Net along more quickly, but what's the point when upgrades of earlier versions of more conventional products aren't moving as quickly as Microsoft would like?)
As Gates said recently, the most important product release so far for .Net is Visual Studio .Net, but it's not the only product Microsoft has released for developers. A number of less prominent toolkits and .Net SDKs have gone out over the last year or so, and it's possible to create some interesting applications.
My personal favorite also has the immediate benefit of being simple and useful: The Office XP Web Services Toolkit lets you use Web services in Office applications. Consider, for example, an Access application that can use Web services to access and even manipulate data on a remote server. Access and other VB-oriented programming environments have always been very good at this, but using Web service makes it easier than ever--perhaps it's the first time that it's actually easy--to set up the infrastructure that lets the program work. And the Web service that the program interacts with is the same exact Web service that interacts with, for example, ASP.Net. (Unlike, for instance, a CGI program that works with the Web but doesn't easily interface with other types of programs.)
Database management, as always, is the major focus of .Net programming, as it is the focus of most programming in general, or at least most business programming. It's no surprise that Microsoft has already shipped access to Jet and SQL Server through ADO.Net, the abstract data interface in .Net, and also to Oracle databases. What's more surprising is that both Microsoft and Oracle have shipped faster, more powerful, but Oracle-specific interfaces to Oracle, Microsoft's .Net Data Provider for Oracle and The Oracle Data Provider for .Net (ODP.Net) (currently in beta). (You gotta know that Oracle customers were asking for this if Oracle is so aggressive about providing it.)
Don't place too much importance on the lateness and non-shipping status of Windows .Net Server. Like the "Enterprise Servers" that Gates conceded were prematurely designated as .Net products, there's not much about .Net Server that sells .Net. To use a phrase from another era, think of .Net Server as a better Windows 2000 Server than Windows 2000 Server. I'm running a Windows 2000 Server with .Net Framework and I'm still trying to figure out what .Net things I can't do with it that .Net Server can do. (Not to diminish the improvements in .Net Server, recently explored by my colleague Eric Knorr. They just don't have all that much specifically to do with .Net.)
There really are things you can do with .Net now. Microsoft claims to be eating a lot of this particular brand of their own dog food already, and some of it is publicly visible. One of their main support pages, the Microsoft Knowledge Base, appears to be a .Net application. There are several Web hosting services that offer hosting for .Net applications already.
When the canned stuff, like a real .Net SQL Server and a real .Net Exchange Server come along, that could be truly interesting, but in the meantime, for those who are really interested in .Net and who have enough initiative, there are trails out there ready to be blazed. Why would you do this? If you like the promise of Web services using open, standard facilities like SOAP and what they can bring to your server and client applications you might want a head start on building them.
You've also got a good argument for letting someone else do the trailblazing. If you'd rather watch others make the initial mistakes and prove the initial benefits, then maybe .Net is right on schedule after all.