Franc Stratton's .NET (TM) Web Application, OOP, and SOA Architecture & Programming Site

A site devoted to ASP.NET (TM), SilverLight (TM) and Browser-Based WPF (TM) Applications, IIS Services, and OOP Architectures

Home     Architecture Overview     WF/WCF/WPF     Data Store     Standards     .NET Security     Resources     jQuery     Silverlight     Developer Tips     Blog     Site Map      
N-Tier Architecture
Service Oriented Architecture
SOA Virtualization
Base Classes
BLL
DAL
Base Page
DALFactory
IDAL
Email
Application

Model-View-Controller (MVC): N-tier Separation of Concerns 

 

Most current distributed design architectures incorporate 3 distinct layers – Presentation (View), Controller (ASPX C# or VB.NET code-behind pages), and Model (Business Logic Layer - BLL and Data Access Layer - DAL). This Object-Oriented paradigm does not utilize the full capabilities of the new Visual Studio 2008 and .NET Framework 3.0/3.5 capabilities, but for OOP purists, this has been the n-tier, distributed programming methodology for over 20 years.

 

The Business Logic Layer (BLL) classes perform business rule data validation, assignment of properties, and data manipulation of fields fetched from the database through the data access layer (DAL). These model classes route the view data from the controllers to the business domain DAL classes. Of course, Internet or intranet services do not require a controller nor a view since a service would not have any view or UI layer events to handle.  The domain BLL classes encapsulate business rules, policies, workflows, processes, functionalities, operations, methods, objects, properties, and other entities necessary to meet business and functional requirements.

 

Model-View-Controller (MVC): N-tier Separation of Concerns - (Continued)

 

The domain BLL classes can be specific to a large or small business area within the web application such as an OrderBLL that might handle the operations necessary for Order to meet business and functional requirements within this section of the web application. However, the OrderBLL may also instantiate and manipulate business objects like Orders or business workflows.


The OrderBLL could have methods that receive and validate parameters passed from the OrderForm page controller (the Order web form code-behind) that relate to an update of Client information. The OrderBLL could then instantiate a Client object, assign updated data to Client object properties, and pass the Client object to the OrderDAL. The OrderDAL would then assign the Client object properties to parameters that would be passed to an organization business domain database stored procedure that updates the fields in a Client table. See this process in Figure 2 below: