Over the years both Microsoft and Sun have attempted to provide different programming frameworks to developers, yet as these frameworks are all vying for the same goal (i.e., higher developer productivity, easier integration, etc.), they are attacking their goal from opposite ends of the spectrum.
If we look back at ASP, before .NET we see that Microsoft provided a framework centered on a COM infrastructure that allowed everyone to develop their applications in either VBScript or JScript. Mind you, there was no inherent framework for web development, at least, not in the sense that we tend to see it now. Enter the Java people.
Around the same time, when Sun jumped on the market with Java, side development projects started popping up all over. If you look at what’s available today just on the Apache site there are frameworks for POJO’s (i.e., Hivemind), bean scripting frameworks (i.e., BSF), multiple testing frameworks (i.e., Cactus, JMeter), and application frameworks such as Turbine and Tapestry. There are even other frameworks that try to integrate all these existing frameworks into one such as AppFuse.
Now that there was a push for enterprise development, we can fast forward to Microsoft releasing the .NET Framework (ASP.NET in this context), and alas subsequent frameworks start popping up just the same. Obviously .NET didn’t require so many different supporting frameworks as mentioned above because they didn’t have a product they were trying to patch, it was all new. However we did see projects pop up that already existed in the Java world, we now had NAnt, log4net, NUnit and Lucene .NET matching their counterpart of Ant, log4J, JUnit and Lucene, respectively. These were some really great projects and I am glad to see them over on the .NET side, however these don't fall into the category of an extension to a framework.
I find it interesting that the Java community continues to create new frameworks to add to the missing structure of their underlying framework. I haven’t seen any extensions that pick up where ASP.NET left off. Is this the result of a hardware company battling a software company? Did I miss something here?