Yesterday at Webbit our discussions was totally concerned about Enterprise Architecture.
The model that comes out from these discussions is described below:

An Enterprise application can be divided into Layers and Tiers.
User Tier is responsible for all the user interactions (input, validation etc.); Workspace Tier is responsible to maintan the user session and manipulate the user data associated to it (it's the server front-end). The Business Tier is the application core, where the business logic resides. The granularity of the Business Logic implementation has direct conseguence to the application scalability and reusability. The Resource Tier has the necessary logic for managing the storage of data and informations on a database and for managing other application services.
About the User and Workspace Tier, the architecture analized is the Model-View-Controller (MVC) Pattern.
Model-View-Controller (MVC) is a software architecture that separates an application's data model, user interface, and control logic into three distinct components so that modifications to the view component can be made with minimal impact to the data model component.
Separating the view from the model makes the model more robust, because the developer is less likely to "break" the model while reworking the view.
The MVC control flow generally works as follows:

- User interacts with the user interface in some way (for example by pressing a button)
- Controller receives notification of the user action from the user interface objects
- Controller accesses the model, possibly updating it in a way appropriate to the user's action (for example controller updates user's shopping cart)
- Controller delegates to the view for presentation
- View uses the model to generate an appropriate user interface (for example by producing a screen listing the shopping cart contents)
- User Interface waits for further user interactions, which begin the cycle again.
There are 2 interesting implementation of this MVC Pattern, one expecially focused on J2EE and one also for .NET applications.

For J2EE, an MVC implementation could be Struts, an open-source framework for developing J2EE web applications. It uses and extends the Java Servlet API to encourage developers to adopt an MVC architecture.
For the .NET world, Maverick.NET is a .NET port of Maverick, a MVC framework for web publishing. It is a minimalist framework which focuses solely on MVC logic, allowing you to generate presentation using a variety of templating and transformation technologies.
Core features include:
Pluggable view templating technologies.
Pluggable transformation technologies.
Support for iterative transformations.
Configuration using an XML sitemap.
Framework support for internationalization, customization of content based on browser, and WML.
The ability to use standard ASPX pages as Maverick controllers. There is full support for Server Controls, Postback forms, and View State.
These are really interesting patterns and I think that they must be well observed. Before Webbit, I don't know nothing about Maverick.NET implementation... I think I'l start to analize it! 