A while back, Sun Microsystems' Java architects published a book entitled, Core J2EE Patterns.  In this book, they covered some basic enterprise patterns for building robust J2EE applications.  For example, if you want to attach some pre- and post-processing of web requests to your application, the books suggests that you use the Intercepting Filter pattern. 

Another good pattern, one that we in the web-world are very familiar with, is that of Model-View-Controller (MVC) or Service-to-Worker.  This patterns allows you to break your web application to fit a nice three-tier architucture in which each layer is independent from each other.  The interesting thing about this pattern is that people refer to it as a single entity, but in reality it's made up of three other patterns: Front Controller, View Helper and a Business Delegate.

So by now you are wondering, when does .NET come into the picture? Well, Patterns & Practices on MSDN, has a book, called Enterprise Solutions Patterns Using Microsoft .NET, with a section that talks about Web Presentation Patterns.  These presentation patterns are some of the same patterns found in the J2EE book, with a .NET spin of course!

The moral of my story is that although .NET and Java are “enterprise rivals”, they are designed to solve the same problem in the enterprise.  Remember, the lessons learned in the Java space can be applied to the .NET one and vice-versa.  It's all the same at the end...