With the 2.0 release of my module development project templates last week I’ve had a few inquiries into how to customize the templates. Download the latest templates.
Why Modify the Templates?
First, why might you want to modify the custom templates? The main reason is that these templates are defined using a specific namespace, DotNetNuke.Modules.*, which is fine in most cases, but what if you want to use your own namespace? Well you have to create a project, then search/replace all instances of that namespace, while not removing any DNN references at the same time. Customizing the project templates will allow you to define your own company namespace, email address, website, and even copyright information, in the template so that you do not have to search/replace every time you create a new project.
With the VSIX file approach that I use for developing the templates making changes to the templates is pretty easy, but I’ve discovered one big hurdle. If you try to customize the templates using that approach you need to change GUIDs in order for the projects to not conflict with my public release of the project.
To get around that, I’ve come up with a different recommendation for modifying the templates, and if you’re at all familiar with my templates from long ago, it is the same approach.
In order to accommodate for this I’ve put together a new release for the templates, labeled 2.1, that has a couple of updates. Check out Codeplex for those updates, below you will find the instructions for how to modify based on the 2.1 release.
How to Modify the Project Templates
Modifying the templates consists of making a change to the VSTEMPLATE file in each of the project templates, there are 4 templates, so you will need to go through this process 4 times if you want to have each template available, if you’re a C# shop though perhaps you simply want to modify the 2 C# templates and not the VB ones.
- Download the ZIP file for the template that you want to modify
- Extract the ZIP file’s contents into a folder
- You might need to unblock the ZIP file first by right clicking on the file
- Choose properties
- Choose Unblock
- Edit the *.vstemplate file with a text editor
- Modify the Name of the template to something other than “DotNetNuke 7 VB.Net Compiled Module”, perhaps use your company name, “Christoc.com DNN7 VB.Net Compiled Module”
- Modify the CustomParameter values for
- rootnamespace – The namespace of your project, something like Christoc.Modules., that will become Christoc.Modules.ProjectName (where ProjectName is provided when you create the project in Visual Studio)
- ownername – The name used for Copyright text in the projects, and also in the owner information of the DNN manifest during module installation
- owneremail – The email address listed in the DNN manifest file used during module installation
- ownerwebsite – The website listed in the DNN manifest file used during module installation
- devenvironmenturl – The URL of your development environment, only change if you are using something different.
- Rename the *.vstemplate file to use a new name, ex: Christoc-VB-Module.vstemplate
- Select all the files in the extracted template folder (press Control-A)
- Right click on the *.vstemplate file
- Choose Send To
- Compressed Zip File
- Copy the newly created ZIP file (file should have the same name as the VSTEMPLATE file just with a ZIP extension)
- In Windows go to your My Documents\Visual Studio 2012\Templates\ProjectTemplates\Visual Basic folder (or Visual C# if you are working with the C# templates)
- Create a new folder called DotNetNuke
- Paste the ZIP file copied in Step 8.iii into the newly created DotNetNuke folder
- Repeat the process for any additional templates you want to modify.
- Start Visual Studio 2012 (if you had it open already, close it and open again)
- Create a new project, choosing one of your newly created templates.
If you haven’t read the post from last week be sure to read it, it has lots of info on how to setup your development environment and other items associated with the templates.
Cross posted from ChrisHammond.com