In the previous blog entry we conceptually reviewed what a DNN module is. The purpose of the blog was to help us understand what a module is, how we can add modules to pages, and where we can find modules. We also looked at the Host > Extensions page so that we can see a list of all the modules in our site, know where modules are installed, as well as be able to see the components (at a high level) of a module.
Now we’re ready to take the next step toward developing out first module. Though, in order to develop a module we’ll need to have a few software installed on our machine. These software are commonly used among developers and if you’ve never heard of or used some of them that’s fine too! I’m also going to discuss and list out some helpful resources that can assist you along the way of developing modules at the bottom of this entry.
Visual Studio is Microsoft’s application development software and it is the software we’ll probably be spending the most time in as we develop modules. Visual Studio is an IDE (Integrated Development Environment) that most .NET developers commonly use to create all types of applications. We will use it to manage our module’s code base and to help us create, compile, & debug the code of our module.
There are different versions of Visual Studio available and I will be using a full version, but you can easily develop modules on the free version of Visual Studio as well. If you don’t have Visual Studio and want to download the free version just go here: Download Visual Studio Express and install Visual Studio Express and install Visual Studio Express on your machine.
SQL Server is Microsoft’s database software and it is another software that is frequently used when developing modules that store data. It is true that you can create a module that doesn’t interact directly with SQL. Some modules don’t need custom SQL tables or stored procedures at all because DNN has a built in DAL (data access layer) called “Content Items” that can be used to store data as well. Though, if your module is going to store data in custom tables and with custom stored procedures then you will not only need to have SQL Server on your computer, but you’ll also need to know how to write some SQL. And if you don’t know SQL or haven’t ever used it before, no worries… we’ll go through that section slowly and thoroughly as well.
SQL Server is similar to Visual Studio in that there is also a free version available for download. So if you don’t have SQL Server and want to get started with the free version of SQL Express just go here: Download SQL Server Express
IIS stands for Microsoft’s Internet Information Services and is a set of internet based services for servers using Microsoft Windows. If that sentence just sounded like Spanish to you, no worries we will show you exactly what to click inside of IIS in the next blog entry. The upside is that we won’t be spending too much time at all in IIS. Once we’ve got it configured we’ll be good to go and won’t have to mess with it much more.
If you’re running a Windows machine then IIS is most likely already installed on your computer. Though, in order to run DNN on our local machine we will need to ensure that IIS is fully installed… and you bet that we’ll look at that process shortly too. I can’t tell you how many times I’ve tried to install DNN only to get some IIS error and it was all because I didn’t have IIS installed completely.
You can access IIS by going to Control Panel > Administrative Tools > IIS Services Manager… but more on that later.
ReSharper is a software that enhances Visual Studio. You do not have to have ReSharper installed in order to develop a module. You will see in the videos of this blog series sometimes where I will get certain hints, squiggly lines, and/or certain color codes inside of Visual Studio and these are all coming from ReSharper. For example, let’s say that you create a variable and then never use that variable. Well, ReSharper will change the color of that variable and start signaling to you that the variable is not being used. ReSharper does that and a whole more and I’ve found it to be helpful for making me more efficient. If you are able to get and use ReSharper then I think you’ll like it, but having ReSharper installed is definitely not a requirement in order to develop a module.
* Note: ReSharper can be acquired for free by releasing an open source project… no need to pay for it and they even have a form on their site for this. Check it out here: ReSharper and Open Source Licensing
Core API Help File
The Core API (Application Programming Interface) Help File is a file that shows all the classes that exist in DNN. This is helpful when we’re trying to learn what properties, methods, and members a class has. If you’ve never heard of a class before its ok, we’re going to go over that too. Every time a new version of DNN comes out a new Core API Help File is published on CodePlex. Lately I’ve found myself looking into this Core API Help file more and more to try to get a better understanding of how things are organized and figuring out what lives where in the DNN API. The best part for me is that the Core API Help File has a search feature which helps to quickly find any specific items of interest.
You can find the Core API Help File at http://dotnetnuke.codeplex.com and then click the “Downloads” link and usually the last file listed is the Core API Help File.
* Note: after downloading this file, please right click if and click the "unblock" button to ensure that the zone file information is stripped (otherwise windows will assume it is unsafe and block active content)
I should also mention that one alternative to the Core API Help File is the Object Browser in Visual Studio. It has very similar benefits to the Core API Help File, but you don’t have to leave the Visual Studio IDE to access it.
You may also wonder how one knows about the environmental requirements of DNN. To see the requirements just go to the “Install” page on DNNSoftware.com at https://www.dnnsoftware.com/platform/start/install and scroll down to the bottom. This page lists the recommended environment for DNN and it gets updated whenever there is a change in the requirements. At the time of this writing DNN is in version 7.3 and the below image reflects the currently recommended environment.
* Note: As technology and DNN both continue to evolve these requirements will change in the future.
More Helpful Resources
There are several more areas/links I want to provide as they may be helpful to anyone trying to learn more about module development. These links are to locations online where you can get quick assistance and information nearly any time of the day from DNN developers, integrators, hosts, and evangelists.
Now with knowledge of the software & environment we need to host DNN and develop a module along with some helpful resources at our disposal we are ready to take the next step and install DNN.
Go to the Next Blog Entry: Installing DNN