Introduction to Module Development
Module Development for DotNetNuke is the most common form of extensibility for the platform. Development for DNN Modules can be handled in a number of ways, most commonly using tools such as Visual Studio 2008 and 2010. You can use the express (free) editions of Visual Studio as well for your development. Below you will find an overview of how to get started with your module development.
You can do your module development in either VB.NET or C#.
Setting up your environment
Configuring your Module Development environment is the first step in preparing to do module development. We've got a full page dedicated to configuring your development environment
Modifying a Visual Studio Template
A common approach to doing your module development is to use a Visual Studio project template, there are a few templates that you can utilize, if you want to customize those before use check out this page
Creating a project
After getting your module development template installed (previous section), you can go through the process of Creating A Module Project
Development - SQL Scripts
A common thing that most modules will do is provide some sort of SQL Script for managing data, typically modules will have their own custom tables to store data, and custom stored procedures to access and manage that data. Check out our DotNetNuke SQL Scripts
page for information on how to create good SQL Scripts for DotNetNuke.
Beginning Module Development Video Series
Be sure to check out the videos in our beginning DotNetNuke Module Development series in the Video Library. Here's a list of the ones that have been created and what they cover.
- Task Manager Series Introduction This video provides an introduction to our series of Module Development videos on how to create a module. We will be creating a Task Manager module throughout the series.
- Creating the Task Manager Project Part 2 of our Task Manager Series goes through the process of creating the Task Manager project in Visual Studio 2008. You also see how to reset the environment configuration in Visual Studio
- Task Manager solution overview and installation Part 3 of our Task Manager Series provides an overview of the Solution in Visual Studio, as well as how to package and install the module in DotNetNuke.
- Creating a project in the DotNetNuke Forge Part 4 of our Task Manager Series shows you how to create a project in the DotNetNuke Forge and also completing the process on Codeplex.
- Adding your source code to TFS on Codeplex Part 5 of our Task Manager Series provides instructions for how to install and utilize TFS for source control with your Codeplex hosting projects.
- Creating your initial SQL Script Part 6 of our Task Manager Series provides you an introduction to adding your first SQL script to your Task Manager module. We cover the Task table, along with how to properly integrate it into your DotNetNuke project.
- Executing your SQL Script in the Development Environment Part 7 of our Task Manager Series provides you an overview of how to get your SQL Script run within your development environment for DotNetNuke. You typically run the SQL scripts manually in your development environment due to the continued rework of the scripts during development
- Adding stored procedures to your SQL script Part 8 of our Task Manager Series provides you an overview of the stored procedures we are going to add to our Task Manager module, as well as the process of setting them up for a DNN SQL script, and executing them in your development environment.
- Adding the Task object to your project Part 9 of our Task Manager Series shows you how to create your Task object in your TaskManager project. We also provide an overview of the Task properties, and the IHydratable implementation within the class.
- Adding your Abstract Data Provider Part 10 of our Task Manager series goes over the DataProvider.cs file in the DATA folder of your project. We also add some of the abstract methods we will need in order to get data for our Task Manager module.
- Access your data in the SQLDataProvider class Part 11 of our Task Manager series shows you how to take the abstract methods defined in Part 10, and tie them into the stored procedures from Part 8. We use the Enterprise Library Data Application Blocks to aid in the data access.
- Publishing your project on CodePlex Part 12 of our Task Manager series covers what you need to do with your Project on Codeplex within 30 days of creation. If you don’t go through these steps the project will get deleted.
- Creating your TaskController Part 13 of our Task Manager series goes into the creation of our TaskController, the business layer for our Task objects. We implement the methods defined in our abstract data provider so that we can start to create and maintain tasks.
- Adding Content to your Object Part 14 of our Task Manager series goes into the process of adding a Content class to our TaskManager module. The Content class handles the creation, deletion, and updates for ContentItems of the type necessary for the TaskManager.
- Adding Taxonomy onto your Object Part 15 of our Task Manager series goes into the process of adding a Terms class to our TaskManager module. The Terms class handles the addition and deletion of terms for ContentItems in our TaskManager.
- Using the DNN:Label Control Part 16 of our Task Manager series provides you an introduction to the DNNLabel control, available to module developers to provide a standard UI with localized text for your settings.
- Creating the Front End of our Edit Control Part 17 of our Task Manager series goes through the process of setting up our Edit control’s ASCX file, the display side that will allow us to add and edit Tasks within the module.
- Creating the Code Behind for our Edit Control Part 18 of our Task Manager series goes through the process of setting up our Edit control’s code behind to bind the list of available users, and bind the cancel click event handler.
- Saving the Task from the Edit Control Part 19 of our Task Manager series goes through the process actually saving the task when the user submits the Edit control.
- Creating your first Task and debugging the Edit Control Part 20 of our Task Manager series shows you how to create/save your first task, and debug the edit control in our module.
- Displaying a list of tasks Part 21 of our Task Manager series shows you how to use a Repeater control to display a list of tasks added to the Task Manager module.
- Creating the Edit Button Part 22 of our Task Manager series goes through adding the Edit button to the View control of our module.
- Creating the Delete Button Part 23 of our Task Manager series goes through adding the Delete button to the View control of our module.
- Wiring up the Edit functionality Part 24 of our Task Manager series goes through process of wiring up the Edit functionality into the existing Edit control within our project.
- Creating your first module release Part 25 of our Task Manager series goes through the process of packaging and releasing version 00.00.01 of the DNNTaskManager module. See how to package and release the module on Codeplex.
- More coming soon!
Creating a DotNetNuke 5 Hello World
There are many ways to create DotNetNuke Modules. Here is one method to create a simple Hello World module DotNetNuke 5 Hello World
. DotNetNuke 5 Hello World II (Using a Database)
Packaging your modules
Packaging Modules using NANT Build Scripts
Packaging modules using MSBuild Scripts
Advanced Module Development Topics Using DotNetNuke Controls
Module Development Videos
If you are interested in getting started with Module Development you should check out our Basic Module Development
Module Development Best Practices
See the Module Development Best Practices
page for some Do's, Don'ts and performance tips.