DotNetNuke Page Rendering Process
Sebuah aplikasi web akan terdiri dari banyak halaman (file .aspx) dalam usaha menampilkan content dari aplikasi web tersebut. Berbeda dengan aplikasi web pada umumnya, sebuah aplikasi web DotNetNuke hanya menggunakan sebuah file aspx saja yaitu file Default.aspx. Ilusi yang terjadi ketika user mengklik menu item untuk berpindah dari satu halaman ke halaman yang lainnya di peroleh dengan suatu teknik yang disebut “Dynamic Page Rendering”. Jadi, meskipun hanya menggunakan sebuah file aspx saja (yaitu Default.aspx), user “seolah-olah” menjelajahi banyak halaman.
Sebuah halaman aplikasi web DotNetNuke terdiri dari satu atau lebih module. Module adalah sebuah entitas fungsional terkecil. Contoh-contoh module adalah: Module Hit counter, Module users online, Module User Account, Module Google Adsense, Module Blog, Module FAQ, Module Feedback, Module e-Commerce dan banyak lagi. Module bisa sangat sederhana dan bisa sangat rumit, bisa sesederhana module hit counter dan bisa serumit module e-Commerce. Truth to be told, module terdiri dari kumpulan file-file ascx yang memanfaatkan API dari DotNetNuke dan ASP.NET. (note: inilah alasan mengapa DotNetNuke disebut sebagai sebuah Framework bukan sekedar CMS biasa).
Informasi tentang sebuah halaman beserta module-module apa saja yang terkandung di halaman tersebut disimpan dalam database. Halaman yang satu dengan halaman yang lain bersifat unik. Sebuah halaman dapat diidentifikasi dan dibedakan dari halaman yang lainnya dengan menggunakan apa yang disebut “tabid” (dibaca: tab-id). Sebuah nilai tabid yang unik hanya untuk sebuah halaman saja. Sama seperti halaman, module-module dalam aplikasi web DotNetNuke diidentifikasi dan dibedakan dengan sebuah nilai unik yang disebut ModuleID. Module-module mana saja yang mengisi sebuah halaman dapat ditentukan dengan mudah karena didalam database, ModuleId dengan tabid memiliki relationship.

Ketika seorang user mengklik sebuah menu item untuk menuju pada sebuah halaman tertentu, proses behind the scene nya adalah:
- File Default.aspx di panggil
- Sebuah querystring dengan parameter tabid dilewatkan ke web server
- Nilai querystring tabid kemudian digunakan oleh DNN database server untuk memperoleh informasi moduleid yang ber-relasi dengan tabid tersebut.
- Informasi yang diperoleh DNN database server kemudian diberikan kepada web server
- Web server kemudian menggunakan informasi yang diperoleh dari database server untuk merender file Default.aspx (dynamic page rendering)
- User memperoleh halaman yang diinginkan.


Note: Fitur HumanFriendlyURL yang dibawa oleh DNN 4.7 akan lebih merampingkan tampilan URL aplikasi DotNetNuke. Tabid tidak akan lagi terlihat di address bar dari web browser. Informasi lebih lanjut mengenai HumanFriendlyURL dapat di lihat di blognya sang master DotNetNuke, Agung Riyadi.