DotNetNuke provides significant capability straight out of the box. Just install and go. Sometimes, however, you may need to extend the base framework. DotNetNuke provides a variety of integration points: from HTTP modules to providers to custom modules. To fully take advantage of the framework, it is important to understand some of the base services and APIs provided by DotNetNuke.
This chapter examines some of the core services provided by DotNetNuke. You can use these services from within your own code. Because most of the core services are built using the Provider design pattern, it's also possible to swap out the base functionality. If you need your events logged to a custom database or the Windows Event Logs, then just create your own provider.
The second part of this chapter covers several HTTP modules that are installed with DotNetNuke. They provide features like Friendly URLs, Exception Management, and Users Online. Many of the providers installed with DotNetNuke use HTTP modules to hook into the request-processing pipeline. By examining the code used in the core HTTP modules, you can build your own custom extensions that can be used in DotNetNuke as well as other ASP.NET applications.
The final section examines some of the core interfaces that you can implement in your own modules. These interfaces simplify the process of adding common features to your module, whether it is the module menu, searches, importing and exporting, or even custom upgrade logic. By using these interfaces in your modules, you can provide some of the same features you see in the core DotNetNuke modules with very little coding effort.