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)
Presentation Layer
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.
Business Layer
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.







Well said. For those of you who would like to start building their own modules I recommend reading the following article on how to create a module using a WAP project: http://www.adefwebserver.com/DotNetNukeHELP/DNN4_WAP
Greetings from Colorado! I’m bored to tears at work so I decided to browse your blog on my iphone during lunch break. I enjoy the information you present here and can’t wait to take a look when I get home.
I’m amazed at how fast your blog loaded on my mobile .. I’m not even using WIFI, just 3G .
. Anyhow, fantastic blog!