Tutorials

July 21, 2011

DotNetNuke 6.0 Extensions SnowCovered Integration

In my earlier blog post I mentioned that one of my favorite features of the new DotNetNuke 6.0 release is the ability to download and automatically install purchased extensions from SnowCovered within the installation.  In this posting I'll walk through the functionality as well as give my disclaimer and recommendation in regards to using this process.

January 18, 2011

Creating DotNetNuke Scheduled Jobs

So for a long time now I have been promising an article on creating DotNetNuke Scheduled jobs and finally I'm actually getting it written.  This article is actually the first in a series of two articles.  This one will start out with the programming process involved, and the general "manual" setup process to actually get the job going.  The second article will focus on using the DotNetNuke API's to be able to validate and configure a scheduled job from within a module, making the user setup process easier.

April 26, 2010

Creating a Custom Registration Page With DotNetNuke 5.2.3 and Later

Users that are familiar with DotNetNuke administration are most likely familiar with the old way of creating a custom registration page within a DotNetNuke portal.  It was as simple as adding a new page, putting the modules you desired on the page including the "User Account" module to get the actual registration functionality.  From there a simple change in "Site Settings" for the "User Page" and you are set to go!  Well, for those of you working with DNN 5.2.3 and later (Possibly previous 5.x versions as well, I'm not 100% sure when the change was) will find out that the module definition I mention is no longer listed?  What do you do now?

October 09, 2009

Using LINQ to Aggregate and Group

Recently when I was presenting at Tech Days Canada I was preparing some examples of how LINQ could be used to do in-memory manipulations of data to help avoid repeated database calls. In the presentation I showed some quick code samples, and I thought that I would follow this up with a few simple examples here in a blog post. Before I start I wanted to share that the code shown here is actual production code that is being used to run the reporting on MyWebKeepAlive, the keep alive service offered by my company IowaComputerGurus.

August 11, 2009

Performance Tuning DotNetNuke Modules with ANTS Profiler

As I have mentioned in past posts here on this blog and via other communication channels I strongly believe that ANTS profiler which is offered by Red Gate software is a must-have tool for all software developers.  Most recently with my day job I have been working with profiler a lot more than usual and it prompted me to re-visit the concept of profiling within the constructs of a DotNetNuke installation.  I've had many individuals with questions before about, is it possible to profile a DNN module, or how do you set it up.  Well this article will walk through all of the steps necessary to profile a single module within a local installation.

August 04, 2009

How To Get Design-Time Support for DNN Controls

 As everyone that is a regular reader of this blog is already aware of I am a big fan of the WAP development model for all DotNetNuke development projects.  Now, one of the most common issues that individuals have reported to me is that "design-time" support is not there for common DotNetNuke user controls that are common to integrate with custom modules.  The controls I'm discussing are the DNN Label, Text Editor, and Url Controls.  Luckly though it is VERY simple to get full design time support for the controls and this article will show you how to accomplish this!

June 15, 2009

Day of DotNetNuke Recap

As many of you know I attended and presented at the Day of DotNetNuke event this past weekend in Tampa Florida.  First and foremost I want to take a moment and thank Will Strohl and all others that put the effort forward to organize this great event.  I was very impressed with how well organized everything was, and overall the sheer size of the event.  With what I believe was close to 150 people there was a variety of interests and viewpoints expressed.  The sessions were great and the conversations before, during, and after the event were even better.


February 18, 2009

Explaining High Performance DotNetNuke Configuration and Management

My recent postings regarding DotNetNuke have been very popular among the community and each of them have covered specific aspects of performance improvement. However, none of them have gone through the full collection of "performance optimizations" that are possible. This article is going to summarize the items from the existing articles and will try to explain some additional, bigger picture elements that come into play, and considerations that must be thought of during any site configuration.
January 30, 2009

Creating Comma Separated List in SQL

It seems that every client project I have started in recent months has involved a new form of complexity in SQL Server scripts.  The most recent task that I had to tackle was with generating a comma separated list based on entries in a table.  Now this was something that I needed for each and every row of a result set, so I didn't want to do the actual list creation in .NET.  So, reaching back to some content and examples that I built for my "Creating Dynamic SQL Pivots" article which will be published in an upcoming edition of SQL Server I found the following helpful snippet of code.

January 26, 2009

Creating DotNetNuke SqlDataProvider Files Using SSMS

One of the biggest failure points I see with third-party DotNetNuke modules, including some of my first released modules were failures due to the lack of support for ObjectQualifier or DatabaseOwner values within the SqlDataProvider files.  Although the process to add support for these two tokens is easy to add, it is very hard for those of us that like to test our database structures outside of DotNetNuke before we actually commit to building our modules.  Thankfully, with a bit of research, I have found a way to build SQL Scripts for DotNetNuke using SQL Server Management Studio (SSMS) in a normal fashion and using a simple find/replace operation to bring everything into compliance with DotNetNuke integration.  This post will explore the method that I use to accomplish this.

January 22, 2009

Avoiding File Locks and Cannot Access File Exceptions

While working through some issues recently with some legacy code written by someone else I was faced with a horrible case of a shared object that was writing to the file.  This was a "custom" logging implementation and opened a file for append, inserted the line, and then closed the file.  Well in times of heavy load the system would encounter errors such as "Cannot access ___ because it is being used by another process".  So in effect the file was either still open, or the lock was not yet released.  This post goes through a bit of the detail on how I resolved the issue.

January 09, 2009

Creating Dynamic Where Clauses with SQL

One very common scenario in when working with User Interface database queries is the concept of a "Dynamic Search Query". A select statement that can have optional items in the where clause. There are a number of methods to implement this, however, they have varying levels of difficulty and, overall each have their own tradeoffs, in implementation, readability, performance, and accuracy. This article explores a few of the most common methods of doing this.

January 05, 2009

How I Get My DotNetNuke Sites To Run So Fast

One of the most common questions that I get via the forums on this site, or via e-mail is "How do you get your sites to run so fast".  Although not perfect, my sites typically run a bit faster than your average DotNetNuke sites.  Previously I have kept the exact specifics of my changes to myself, however, with a little encouragement from the community I have decided to share the full context of the changes that I make to a default DotNetNuke installation to get better baseline performance, as well as extra items that I do to help when I really need that "boost".

December 22, 2008

Upgrade to DotNetNuke 5.0.0 From 4.6.2 or Later

With the upcoming release of the final DotNetNuke 5.0.0 release it is time to get the most current upgrade guide out there.  Upgrading to DotNetNuke 5.0.0 from 4.6.2 or later will be a very simple process thanks to the streamlined upgrade features added in 4.6.2 and later versions of DotNetNuke.  The following instructions provides the steps needed to upgrade to DotNetNuke 5.0.0 frm 4.6.2 or later.

December 22, 2008

Installing DotNetNuke 5.0.0 On Remote Host

This is my sixth revision of a DotNetNuke remote hosting provider installation tutorial.  This tutorial will provide you the basic overview of how to perform a clean installation of DotNetNuke 5.0.0 on a remote web hosting provider.  Please note at the time of release only the Release Candidate version of DotNetNuke is available, this version is NOT recommended for production usage.  Please be sure to use the proper version for your intended usage.  This guide will work for both the RC and the final DNN 5.0.0 version.  In the article I will try to point out the most common differences between different hosting providers, I will also be providing specific examples regarding the use of the Plesk control panel which is what my preferred hosting provider (3Essentials) uses.  All steps within this tutorial are promised to work with 3Essentials hosting, others are most likely possible, but have not been fully confirmed with the provider.  Additionally this guide is geared towards a manual instlalation at the root of the site, which is not supported by all hosting providers.

December 22, 2008

Installing DotNetNuke 5.0.0 Locally

With the first full release of DotNetNuke 5.0 most likely coming sometime in the very near future I thought it was about time for an update to my standard DotNetNuke installation guides.  This installation guide is geared towards local installation on a Windows XP or Windows Server 2000-2004 server.  Installation on Vista or Server 2008 is slighly different when it comes to the IIS portion of the installation.  This guide is the ninth total revision of my installation tutorials and contains many new updates and recommendations to prevent users from experiencing difficulties when installing.  This tutorial still uses the "Automatic" installation process, this is done to help encourage the creation of a more secured DotNetNuke installation by disabling AutoUpgrade and other features that are not yet configurable via the Installation Wizard.  If enough demand is shown, I can create a tutorial for the installation wizard as well.

December 22, 2008

Creating a DotNetNuke User Account From Code

Just recently an issue was brought to my attention that my External Database Provider module when creating users was making it so that notification e-mails could not be sent when assigning roles. So I started looking into the code, and how I was creating a user. The user creation code was something that I have been using for a long time, some code that was first found on a blog or forum post about 2-3 years ago. Not noticing anything wrong with the code, at least from an obvious point of view I started to look into the database to see if there were any differences at the database level. Looking into the users' information I noticed that they were missing their user profile, and then I found out that a few key elements still needed to be set to "fully" create the user. This posting shows you the "Full Code" to insert a user into a DotNetNuke portal from a C# Codebehind, translation into VB should be very simple.

November 01, 2008

SQL Server RANK, ROW_NUMBER, and Partition

Finally getting the opportunity to get back to SQL Server 2005 development, and coming to the conclusion that NOT all of my projects have to support SQL Server 2000 I started looking all of those "fun" new items that we all really wanted. This article is going to go through a scenario that demonstrates how to use Common Table Expressions, Rank() and Partition to get results for a very common data scenario. We will present this information with an introduction to the problem, scripts to setup the problem in a test environment, and lastly the implementation, with a review/summary at the end.
October 15, 2008

Limit SQL Server Database List

Recently when working with a client I was asked how in a SQL Server database environment with multiple databases how we can prevent users from seeing all other databases on the server. Permissions are configured to restrict who can actually query the database, but in the end, individuals still can see the names of the other databases on the server, getting potentially an idea of who else you are hosting, or information that you just don't want to share. I have found many blog articles that talk about how to get around this, but all of them were a bit choppy, so I thought I would take a moment to walk through a demo of the process. This article walks through the entire scenario.

September 15, 2008

Backing up a DNN Site

DotNetNuke site administrators often are tasked with maintaining their sites as well as ensuring that a proper backup/recovery plan is in place.  An important part of this is to have a proper site backup, therefore I am re-visiting my two previous versions of backup guides in this updated article.  I will walk though the items needed for backup, and considerations when creating the backup, specifically if you are looking to migrate a site to a different server.  I will then discuss the process to create a backup in both SQL Server 2000 and SQL Server 2005, and lastly I will quickly touch on the third party options available for performing site backups. 

September 12, 2008

Creating Random SQL Server Test Data

Recently I was tasked with the creation of a large database system that consisted of a database table with 5 date columns, and a varchar primary key. This table was to hold upwards of 3.5 million records, and I needed to know exactly how much disk space was going to be needed to store not only the database, but also the index required to facilitate the search requirements. After looking for a number of different ways to do this, and many free third party tools I decided that the most simple way to do this with the tools that I had available was to generate my own method to populate a test database.

September 11, 2008

Installing DotNetNuke 4.9.0 on a Remote Host

This is my fifth revision of a DotNetNuke remote hosting provider installation tutorial.  This tutorial will provide you the basic overview of how to perform a clean installation of DotNetNuke 4.9.0 on a remote web hosting provider.  In the article I will try to point out the most common differences between different hosting providers, I will also be providing specific examples regarding the use of the Plesk control panel which is what my preferred hosting provider (3Essentials) uses.  All steps within this tutorial are promised to work with 3Essentials hosting, others are most likely possible, but have not been fully confirmed with the provider.  Additionally this guide is geared towards a manual instlalation at the root of the site, which is not supported by all hosting providers.

September 11, 2008

Installing DotNetNuke 4.9.0 Locally (Non-Vista)

Installing DotNetNuke can be somewhat difficult at times, therefore I am writing this article to give you a full step by step guide to installing DotNetNuke on a Windows XP Pro system. The instructions are similar for Windows 2000 but might vary slightly, I have tried to note as many differences as possible. Windows Vista installation is similar but requires a few different steps relating to IIS.  This guide is my eighth revision and includes additional steps and information based on feedback from previous versions.  Additionally a few new instructions and notes have been provided for users installing on Windows 2003 Server to address a few common "stumbling blocks" that have prevented successful installations.

September 04, 2008

Upgrade to DNN 4.9.0 from 4.6.2 or Later

I have previously blogged about the streamlined upgrade process that can be used to upgrade sites starting with version 4.6.2 and later.  With the upcoming release of DotNetNuke 4.9.0 (targeted for next week) I thought I would take some time to get all of my installation guides updated, with the most current information to ensure that everyone was ready for the new version as soon as it comes out.  Given the enhancements provided to the core in 4.6.2 the upgrade process from this version and later is VERY simple!  The following two step process will help you upgrade to your site to the most current version.  Instructions are also included regarding items of consideration for users in shared hosting environments.

August 22, 2008

Exposing a Development Installation of DotNetNuke

Recently I have been fielding a number of questions regarding DotNetNuke development environments and the valid URLs associated with them. People that have been setting up local instances of DotNetNuke for testing or development, then trying to expose the site to a larger group for validation. The process to make this work is very simple, however, for individuals unfamiliar with DotNetNuke settings it can be a bit difficult to determine exactly what needs to change. This post investigates the DotNetNuke concept of Portal Aliases and will show an individual how they can be used to solve this specific business need.

August 08, 2008

Using the IN Clause With Stored Procedures

Recently I have been working on creating a dynamic reporting engine for use within the DotNetNuke system, a method to allow for the execution of a stored procedure and the proper display of the results. This includes creating a list of parameters, including dynamically loaded lookup systems and more. Well the most complex item that I have had to condition for was how to deal with filter options that require the use of the SQL IN clause, there are many ways of doing this, but I have found a way that appears to work perfect for my needs, this will be explained in this posting.

August 06, 2008

Locating Historical DotNetNuke Releases

With the high amount of usage of the DotNetNuke upgrade and installation guides that I have posted on this site I see one very common question. Where can I obtain DotNetNuke version ____? Once a release is considered non-current, it becomes slightly harder for individuals to locate the older versions, in this article I'll provide a step-by-step look at the process for finding and downloading "legacy releases" of the DotNetNuke Platform.

July 18, 2008

SQL Server Table Size Calculation

In one of my previous blog entries I provided a helpful script that would allow you to find the space used for all SQL Server tables in a single database.  It was a very simple method using the SP_SPACEDUSED stored procedure that is included in SQL Server.  In that article I touched a bit on the general usage for the method.
May 28, 2008

Streamlined Upgrades from 4.6.2 and Later

Well after following a similar practice for upgrading my DotNetNuke sites since pre DNN 4.4.1 days I have just learned of a very helpful new feature for those upgrading from 4.6.2 or later versions.  Starting with 4.6.2 a new function was added to the DotNetNuke core known as XML Merge, which removes the need for you to manually update the web.config file on each and every upgrade.  This takes the complicated manual merge process and reduces an upgrade to two simple steps.  I will detail these steps below.

May 27, 2008

Installing DotNetNuke 4.8.3 Locally (non Vista)

Installing DotNetNuke can be somewhat difficult at times, therefore I am writing this article to give you a full step by step guide to installing DotNetNuke on a Windows XP Pro system. The instructions are similar for Windows 2000 but might vary slightly, I have tried to note as many differences as possible. Windows Vista installation is similar but requires a few different steps relating to IIS. I will be publishing a text version of this guide for Windows Vista users within the next 2-3 days.  This guide is my seventh revision and includes additional steps and information based on feedback from previous users.  Additionally a few new instructions and notes have been provided for users installing on Windows 2003 Server to address a few common "stumbling blocks" that have prevented successful installations.

May 27, 2008

Upgrading to DotNetNuke 4.8.3 from 4.x

This is my eighth revision DNN Upgrade guide.  This version includes an important notice regarding the need to upgrade to take advantage of the most recent security inprovements provided in DNN 4.8.3.  Many portions of this upgrade guide are the same as previous versions, however, there are some new items and many minor changes/clarifications.  This is simply due to the LIMITED changes that have truly occured in the area of DotNetNuke upgrades.  This should be the final version of these guides for the 4.x DNN platform, keep an eye our for 5.x guides shortly before the public launch of DNN 5.x.

May 22, 2008

Exporting a DataGrid to Excel The Easy Way

Recently I have answered a number of questions regarding an easy way to export datagrid contents to excel format.  In this blog post I will share a static class that I have created called "ExportHelper" which I use quite often to generate quick Excel exports of datagrid data.  I will outline the process and the code below.  It should be noted that this solution is NOT a DotNetNuke specific solution, I use this for both DotNetNuke and standard ASP.NET solutions.

May 19, 2008

Delete Confirmation The Easy Way in DNN

In continuing my writing series on hidden nuggets in the DotNetNuke core I will show you a handy method from the ClientAPI that allows you to add a Javascript delete confirmation in a much easier manner than normal.  As with the previous articles of this nature please feel free to send in any suggestions on helpful, somewhat hidden features inside the DotNetNuke core.  Click the link below to view the full detail

May 19, 2008

Migrating DotNetNuke From Development to Remote Production

Recently I have been answering a large number of questions regarding the processes to deploy an existing development site from localhost to a remote hosting provider.  Typically this has been something that I was not willing to publish a tutorial on due to the complex nature of the matter and the major differences between hosting providers.  However, due to popular demand this article will be my first documentation of the end to end process to move a localhost DotNetNuke installation to a production environment on shared hosting.  I will be basing this article on the proceses that are needed to deploy to 3Essentials which is my hosting provider of choice, the process is similar for other hosts, but there may be charges or other complications introduced. 

May 12, 2008

Adding A Popup Calendar to Your DNN Module

Recently when working on modules for clients and enhancements for my own modules I have been looking for better ways to utilize core DotNetNuke functionaltiy.  This article is the first in a long series of articles that I will be posting regarding using DotNetNuke core functions and controls in custom modules.  This first article will walk you through the process to add a simple popup calendar as an option for a user that is being prompted for a date.  Many people do not know that DotNetNuke provides a very nifty interface that handles all the hard work.  This article will walk you through this step by step, first with the .ascx code, then the .cs or .vb code, the lastly with a screencapture of the component in action.

April 29, 2008

Semi-Automatic DotNetNuke Module Package Builds Revisited

Back in January I made a post here about creating semi-automatic module packages on the fly from within Visual Studio.  The method I showed at that time was a little bit primitive but it worked perfectly.  Recently I have had some time to refine the batch script itself as well as the integration point to the DNN project inside Visual Studio.  My recent changes now allow me to make 2 small changes for each project and builds work as I expect, it also creates a conditional system that can handle file deletions as well as dynamic loading of debug or release .dll files to the package.  This posting will cover this new process in detail..

April 19, 2008

Modules, Compatibility, and Developer Responsibility

Recently I have worked with multiple clients that have had "minimum version" issues with DotNetNuke modules.  They have a new module, or a new version of an already installed module and they install it on their site.  Just after installation they find out that the module doesn't work with their version of DNN.  Sometimes this isn't a major issue as long as it is only the module that doesn't work and it was a new module.  However most of the time it isn't the case, usually it happens to existing modules that include lots of data.  Since DotNetNuke doesn't offer a rollback function these types of issues can be critical to users of DNN.  Now the first argument that I always hear on this topic is that "people should be backing up their site before an install/update to anything".  I agree with this to a certain extent, but on the other hand these people expect that we as developers will make using our product a pain free situation.  This is where this article come into play, I'll discuss a few methods where developers, including myself need to step up and provide better quality services to the general DotNetNuke public.  I'll even include a step by step guide that will show developers how to accomplish what needs to be done.

April 15, 2008

DotNetNuke Performance Settings Explained!

My last article on DotNetNuke administration topics was very popular "DotNetNuke Host Settings Explained", this article is the promised follow up that will provide detailed information on the Performance/Compression settings section of DotNetNuke Host Settings.  I will explain what the values do, and also my personal experience with the settings, please keep in mind that all DNN sites are different and your needs may differ from those listed in the article, if you are unsure of the proper settings for you environment, please don't hesitate to ask for assistance in my forum.

March 26, 2008

Upgrading to DotNetNuke 4.8.2 from 4.x

This is my seventh revision DNN Upgrade guide.  This version of the guide includes important updates for working with DNN 4.8.2 and customized SqlDataProvider configurations.  Many portions of this upgrade guide are the same as previous versions, however, there are some new items and many minor changes/clarifications.  This is simply due to the LIMITED changes that have truly occured in the area of DotNetNuke upgrades.  If a newer version of DNN has been released and I do not have a new version of this document, please use this version as there are most likely no breaking changes!

March 26, 2008

Installing DotNetNuke 4.8.2 on a Remote Host

In previous articles on this site I have provided tutorials for installing DotNetNuke to a local machine, however, I typically avoid the topic of installing DotNetNuke to a remote web hosting provider.  I have been asked many times why and the answer is simple; installations to remote hosts are not standardized, depending on the hosting providers environments the steps to install can differ greatly.  However, due to popular demand I have created this tutorial which will provide you the basic overview of how to perform a clean installation of DotNetNuke on a remote web hosting provider.  In the article I will try to point out the most common differences between different hosting providers, I will also be providing specific examples regarding the use of the Plesk control panel which is what my hosting provider (3Essentials) uses.  This article is my third revision updated to add some more clarifying points, be sure to share any feedback in the comments section at the bottom of the article!

March 26, 2008

Installing DotNetNuke 4.8.2 Locally

Installing DotNetNuke can be somewhat difficult at times, therefore I am writing this article to give you a full step by step guide to installing DotNetNuke on a Windows XP Pro system. The instructions are similar for Windows 2000 but might vary slightly, I have tried to note as many differences as possible. Windows Vista installation is similar but requires a few different steps relating to IIS. for Vista information please view my video tutorial.  This guide is my sixth revision and includes additional steps and information based on feedback from previous users.  Additionally a few new instructions and notes have been provided for users installing on Windows 2003 Server to address a few common "stumbling blocks" that have prevented successful installations.

March 25, 2008

What Modules Do I Have and How Many of Them?

Finding out how many modules you have installed on a site, and additionally how many times those modules are used is something that you would think is very simple within DotNetNuke.  However, it is a bit more complex than one would hope.  By default DNN does not provide a mechanism for you to perform this kind of research, however, I have a very simple SQL Script that will allow you to see ALL modules and from there the total number of instances (in all portals) and the total number of instances that are deleted (in the recycle bin).  From an administrative perspective this is a key piece of information to know.

March 13, 2008

DotNetNuke Host Settings Explained

Following the high popularity of my previous article about the DNN Scheduler I thought I would follow up with this article explaining DotNetNuke Host settings.  This article will give an overview of each section of the host settings.  Some areas might be highlighted in future articles to provide more detail regarding specific configuration options that are of high importance to site administrators.

February 20, 2008

Creating a DotNetNuke SkinObject

A few weeks ago Tom Kraak of Seablick Consulting made a blog post regarding modifications to the core Breadcrumb skin object to prevent the last page in the tree from rendering as a link.  I created two different solutions for him, the first was simply a modification to the core breadcrumb object and was not necessarily the best solution.  The second solution I provided was the creation of a custom skin object, based on the core, but isolated so that it will not be prone to issue with an upgrade.  This tutorial is the promised "overview" of how to create a skin object.  I will not discuss the technical aspect of the modifications that were made to the breadcrumb, but just a general overview of what you actually have to do to create a new skin object.

January 27, 2008

Implementing Captcha in a DotNetNuke Module

Recently I was working on a project for a client of mine where I needed to implement a Captcha within a DotNetNuke module.  Now in the past I have implemented Captchas on standard ASP.NET sites but I had yet to work with them in DotNetNuke.  Now, DotNetNuke does have a built in Captcha control which can be used on login/registration, but there doesn't appear to be much information out there about how to implement it in your own projects.  I wanted to provide a quality solution for my client by matching the standard DNN look and feel so I decided to take a dive into the core code and find out just how you can use the Captcha control in your own module development projects.  This article will first quickly explain how I went about finding this information and then will discuss the very simple steps needed to add a Captcha to your project!

Content provided in this blog is provided "AS-IS" and the information should be used at your own discretion.  The thoughts and opinions expressed are the personal thoughts of Mitchel Sellers and do not reflect the opinions of his employer.

Content Copyright

Content in this blog is copyright protected.  Re-publishing on other websites is allowed as long as proper credit and backlink to the article is provided.  Any other re-publishing or distribution of this content is prohibited without written permission from Mitchel Sellers.