Before starting to write custom DotNetNuke (DNN) Modules, its important and necessary that we get familiar with the DNN Architecture. DNN’s Architecture is so powerful that its so modularized and makes your life easier to identify the necessary components.
(Click to enlarge)
This is the layer where User Controls (Forms for your modules) reside. So, its everything that you see in the browser for your module – the User Interface.
This is where all the back end code for our Modules , the Business Logic resides.
Data Access Layer
This is where you access the database by means of Data Provider, Concrete Data Providers and Application Blocks
Data Provider is an abstract class and the concrete data providers inherit the Data Provider class to do database operations. Concrete Data Providers help users to write Data Providers for any database like Microsoft SQL Server, MySQL etc., For example, for Microsoft SQL Server , you would get SqlDataProvider by default when you create a DotNetNuke Module.
The whole Data Layer corresponds to Microsoft Patterns and Practices .
The Data Access Application Block simplifies development tasks that implement common data access functionality. Applications can use the application block in a variety of situations, such as reading data for display, obtaining data to pass through application layers, and submitting changed data back to the database system.