.NET equivalent of modern Java web architecture
Almost every new Java-web-project is using a modern MVC-framework such as Struts or Spring MVC for the web tier, Spring for the "Service"/business-logic-layer and an ORM mapper such as Hibernate for persistence. What is the equivalent in .NET?
I guess ASP.NET is used for the web tier and ADO.NET for persistence but what is the equivalent to Spring, i.e. what is used to wire transactions and components and such.
I am aware of Spring.NET but I'm more interested in the de facto way of building applications in .NET.
The default approach is ADO.NET/Linq-to-Sql, ASP.NET and custom service layer that reinvents the wheel. Microsoft has Unity for autowiring, but I do not feel dependency injection is mainstream in .NET world yet.
But if you go for the best practices, it is ASP.NET MVC for UI, any DI framework (Castle,Unity,Autofac,...) for wiring, and NHibernate for persistence.