DNN

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.

July 21, 2011

DotNetNuke 6.0 and You!

As many of you might not have heard yet DotNetNuke version 06.00.00 was released last night.  You can read all about it on the Announcing DotNetNuke 6.0 page from DotNetNuke.  In this blog post I'll talk a little bit about what it this release means to you as a user in the community as well as share some insights and recommendations that I have to make the transition easier, and we will finish with information on a special offer from a known DotNetNuke Vendor.

July 07, 2011

Auto Packaging Multiple Modules with DotNetNuke

Like many people I have been building DotNetNuke Modules using Chris Hammond's DotNetNuke Module Template.  It is a great template set and works well in 99.9% of cases.  However, recently I have been building more and more complex module solutions for customers where within a single project I have a need to package up two or more "distinct" modules.  Therefore I have one DotNetNuke Module Manifest and it will install multiple modules.  Overall the process works great, but there is one small nuance, the filename, if you have two modules you will get xx.xx.xx.yy.yy.yy as the filename, which is the version of module 1, and the version of module two.  In my case I just want the first module to show, and in this post I'll show you how.

July 07, 2011

Resolving Recurring DotNetNuke Scheduler Errors

One thing that can kill a DotNetNuke quite quickly is a module that goes "rogue" and starts throwing regular errors in the scheduler.  This is especially the case when it comes to a module that might be heavily used.  Not only do you just have the fact that you are having errors, but you also have the issues around the fact that you can't find TRUE errors in the log.  In a world long ago, back in the DNN 4.4 - 4.8.x days there used to be an issue with certain modules that has apparently started to rear its ugly little head again and I'm not sure why.  In this post I'll investigate this specific error type.

April 17, 2011

DotNetNuke Scheduled Jobs Using the API

A while back I blogged about Creating DotNetNuke Scheduled Jobs and promised a "part two" article, this is that article.  In the previous installment I talked about the process of creating and manually installing a scheduled job.  This article is designed to take this to the next step and discuss how you interact with the Scheduler System to handle installation and other validation methods of scheduled jobs.  I will explain the finer points in regards to checking to see if a job exists and creating or modifying a job.

March 26, 2011

Orlando Day of DotNetNuke Recap

For those of you not able to attend the Orlando Day of DotNetNuke and Orlando Code Camp events this weekend I wanted to take a few moments to post a quick bit of feedback on the event and also make those of you aware of some new presentation materials that I will be making available to the community over the next few weeks.  (The first of which is available now!)  See the full post for details!

March 09, 2011

Simple IIS Performance Improvement

I know that many of the readers of this blog manage their own webservers and i have a helpful tip to share about improving the initial load time of your webserver.  Although this modification I am recommending is a SMALL change and has a small impact, it is still worth doing as it will improve the performance and reduce the amount of work that IIS has to do.

March 01, 2011

DotNetNuke Going to C# - My Thoughts

Well, as I'm sure that most of you have figured out already, DotNetNuke Corporation announced yesterday that starting with Version 6.x of DotNetNuke the core will be using C# as the programming language.  This change is something that has been talked about at community events in the past and various people have shared their comments on the potential decision, and even since yesterday people have voiced their opinions on it now that the change is official.  With this post I'm going to share a few of my thoughts on this, and hopefully take a slightly different approach.

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.

December 31, 2010

Keeping User Passwords Secure in DotNetNuke

This article is being cross-posted from my business blog.

If you have been paying attention to the news in recent months you have most likely heard of a few cases where user information, such as Usernames and Passwords, have been exposed from some high visibility websites. Some of the more current leaks were with Gawker and Mozilla. For those that are unfamiliar the situation is pretty simple. These sites store user login information, usernames and passwords, that allow users access to their systems. Their systems were then breached and malicious users were able to get access to the information. Why is this something that I am blogging about in relation to DotNetNuke? Well without a bit of configuration your site could be at risk, should a malicious user get access to your system. This article will discuss a bit around how/why there is a risk and how that relates to DotNetNuke, then it will progress into an overview of the default configuration of DotNetNuke and the recommended changes to the system.

November 15, 2010

DotNetNuke Connections 2010 - My Highlights

I know that this is a little late with DevConnections being a little over a week-and-a-half ago, but I thought that it was still important that I get my highlights out here on the blog as i think there are number of incredibly good things coming in the future for DotNetNuke.  For a more detailed review I highly recommend that you check out Will Strohl's blog post, as he goes into a bit deeper discussion than I do.

September 27, 2010

DotNetNuke 5.5.1 Update and POET Security Vulnerability

For just a little over a week there has been a lot of buzz in the .NET and DotNetNuke community around the POET security vulnerability that was identified within the Microsoft ASP.NET technology stack.  For those of you unaware of the true details on this vulnerability I highly recommend you read the initial announcement from Scott Guthrie from Microsoft, as well as his Frequently Asked Questions post, and lastly his secondary followup posting, with a more detailed workaround.  So why do I bring this up now?  Well late last week DotNetNuke corporation released DotNetNuke 5.5.1 and in the materials that went out with that release they note that it includes a workaround fix for this vulnerability, I wanted to make sure that as always people have ALL information needed before they are doing upgrades.

 

August 24, 2010

DotNetNuke 5.5.x and Later Performance

Now that the DotNetNuke version 5.5.0 release has been out in the wild for a bit I wanted to take a moment to talk a bit about this release and one particular item that is of special interest to me with regards to the performance of the release.  In the past a common question posed to me would be "Which version of DNN runs the fastest?" The answer has always been an easy one, DNN 4.9.5 has been the release that could handle the heaviest load with the best overall relative performance.  I believe we have finally hit a tipping point.

July 27, 2010

Running DotNetNuke with .NET 4.0

As more and more people start working with DotNetNuke, IIS7, and .NET 4.0 it is important to note a few important potential problem areas when it comes to running DotNetNuke on the 4.0 framework.  Recently I took a DNN 5.4.4 installation and tried running it under .NET 4.0 and without modifications, it was a complete failure, in this blog posting I will show you what needs to change to allow DotNetNuke to work as expected.

July 26, 2010

Selecting a DotNetNuke Hosting Provider 2010 Edition

In past blog postings I have provided what has become a bit of a "Guide to Selecting a DotNetNuke Hosting Provider." As with previous years it is about that time where there have been enough changes in the market and to DotNetNuke in general that I thought it was necessary for a 2010-2011 version of this information. In this article I will talk though the thought process that I use when working with current and potential customers to select their hosting plan, environment and provider. This document has been updated based on current information, in addition, prior to going through the recommendations below I strongly recommend reading my article “Shared, Virtual Private Server, Dedicated of Cloud Hosting” to become familiar with the different levels of hosting and also to review my "DotNetNuke Performance Configuration Best Practices" document to ensure that your DNN hosting plan is up to date.

July 07, 2010

Reducing a DNN Site's Production Footprint

One of the most common questions that I get from users when it comes to deploying to deploying a DotNetNuke site is "DO I REALLY need all of those files?". My typical answer is something along the lines of yes and no. In this blog posting I want to talk in a bit more detail about some of the processes that I go through when installing a clean DotNetNuke installation and how I keep the footprint down on the disk space.

June 22, 2010

DotNetNuke Growing Pains and You, How to Cope

I have had this blog posting all ready to go now for a good three to four weeks, but have been in deep internal conversation in regards to the posting of the article.  I have decided that more than anything posting this publicly might stop some of the e-mails that I get bombarded with each and every day that start out with "what do I do" or "do you still believe in DNN".

Before I start the post I am NOT in any way, shape, or form pointing fingers or expressing any displeasure at the platform or any of the members involved.  I am still a DotNetNuke core team member, I believe fully in the platform, and I will continue to adopt and recommend usage of the platform for the foreseeable future.  The point of this post is very simple, to talk about what has been going on in the DotNetNuke community and my opinions on how to manage expectations and cope with the situation.  Please remember the disclaimer that is posted at the bottom of this blog, these thoughts are mine and mine alone.

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?

March 27, 2010

OpenForce 2010 Session Submissions

For those of you that follow me on Twitter, you might have noticed my posting the other day noting that I have submitted my session topics for OpenForce 2010. I thought I'd share with you the topics that I submitted, if you have any ideas for other sessions feel free to post a comment, and I might try to get something proposed for it.

March 23, 2010

The DotNetNuke Object Qualifier - Why I Think it is Evil

For those of you that have seen my comments on the DotNetNuke forums, my book, or the forum here on this site, you more than likely have noted my consistent notes that I recommend avoiding the "ObjectQualifier" setting within DotNetNuke at all costs.  Most of the time I have simply put, I don't use it and recommend that you don't either, but have not given a very detailed explanation as to why I'm not a fan.  Below I will share with you what the ObjectQualifer is, why it was created, and why I don't recommend using it.

February 09, 2010

DNN 5.2.x Changes to Module Create Process

In a few of the most recent versions of DotNetNuke, major changes have been completed in the way that a user manually imports a module definition to test a manifest file.  This is specifically the process that is mentioned in my book to test a module while developing, before it has been packaged for installation on another portal.  From what I gather, the behavior might change back a bit, but for now the process is slightly different that indicated in my book.  In this blog posting I'll document the changes, and a workaround solution.

December 16, 2009

Spell Check for DNN Module Developers

I have talked to many developers that have one common feature request that we would like to see for Visual Studio, Spell Check.  As a developer one of the most troubling things can be minor typo's in code after it has been completed.  Although simple to fix, it can be embarrassing to have a typo that goes out in a module that a client is reviewing or that you put up for sale on SnowCovered.  Well, today I got an email from Chad Nash at DataSprings, and they have a set of tools that are going to help us out on this front from a DNN module perspective.

December 02, 2009

Potential DNN 5.2 Upgrade Issues

After talking with a number of clients since last week, I thought it would be worthwhile to make a post here with a formal warning regarding upgrades to DotNetNuke 5.2.  As announced at OpenForce US, DotNetNuke 5.2 contains the Telerik Controls for ASP.NET, which is a very good thing for DotNetNuke as a whole, however, it can cause massive problems for individuals that are already using the Telerik Controls as a site upgrade can end up rendering portions, or the entire site unusable, until DLL versions are restored.  In this post I will give a bit of information regarding the scenarios that I have encountered and some guidance on how to protect yourself from upgrade issues.

November 15, 2009

OpenForce 2009 Recap

 Well, it has been a very busy week, but we can now record another OpenForce event in the books.  I'm sitting here still in Las Vegas going over various notes regarding various announcements that have occurred through the week and though it would be good to make a blog post with a few "highlights" as I see them from the week.  So, without future delay, here are my favorite highlights from the week, in no particular order!

October 30, 2009

Selecting a DotNetNuke Hosting Provider 2009 Edition

Back in May of 2008 I wrote an article “Selecting a DotNetNuke Hosting Provider Revisited”. Well, being almost a year-and-a-half later I thought it would be good to provide a 2009-2010 follow-up to the article to update based on new information, updates to hosting plans/offerings, as well as DotNetNuke performance in general. In this article I will talk though the thought process that I use when working with current and potential customers to select their hosting plan, environment and provider. This document has been updated based on current information, in addition, prior to going through the recommendations below I strongly recommend reading my article “Shared, Virtual Private Server, Dedicated of Cloud Hosting” to become familiar with the different levels of hosting.

October 14, 2009

DotNetNuke Bulk Extension Installation

About two months ago, I responded to a DotNetNuke question on StackOverflow.com with regard to automating the installation of modules within the installation.  This is a question that I have seen many times, but with different business requirements and end desires, but the trend is the same, installing extensions one-by-one is an inefficient process, and with a heavily used site can cause performance issues that would impact regular traffic for an extended period of time.  This is simply because there is a delay between each install, and with each install and update to the /bin directory the application recycles.  Thankfully there is a method built into DotNetNuke that easily allows you to bulk install extensions, the rest of this article will show you how.

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.


June 08, 2009

DNN Navigation Redirect With Parameters and No Control

When working with DotNetNuke I often find it necessary to do a redirection back to the current page, with additional querystring parameters.  Not actually switching views, but just back to the same page so that some other action could be taken for a specific module.  In the past most of the examples I found used this process.

DotNetNuke.Common.Globals.NavigateUrl(this.TabId) + "?mykey=myvalue"

Which would create a url such as

http://www.mysite.com/MyFolder/Default.aspx?mykey=myvalue

Although a fully functional URL that works 100%, it is not something that can be easily copied, and overall doesn't look all that fancy.  Looking through the functionality of the various NavigateUrl overloads, it didn't seem apparent that there was something that could be used to re-write that type of URL.  Well I missed something using the following code.

DotNetNuke.Common.Globals.NavigateUrl(this.TabId, "", "mykey=myvalue")

From this example we provide the tabId, a blank ControlKey, and then our added parameter value.  We could add additional parameters as well.

This results in a URL similar to the following.

http://www.mysite.com/MyFolder/mykey/myvalue/Default.aspx

Now, this is a fully re-written URL, and something much easier for a person to remember.  I hope this has been helpful!

March 02, 2009

Speaking Engagements

As we get moving into 2009, one of my personal goals this year was to get out and do more presentations to User Groups and at conferences.  Well ...
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.
February 06, 2009

DNN Performance Tip: Disable Unused Auth Providers

One of the most common questions I get regarding DotNetNuke performance is; "Why is the DotNetNuke login so slow?".  Well there are a number of reasons, but one of the most common issues is that every time you visit the login page it has to determine which provider to show you.  If you are using multiple providers, there is not much way around this.  However, if you are running a site that is NOT using any other providers, you have some options to really help speed up the performance of your login page.

View the full article for details.

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 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 31, 2008

Which Module Package Should You Purchase?

A while back when asking for input on blog postings a very common question was recommended as the topic.  That question was "How do I determine which module package I should purchase?".  Within the DotNetNuke Eco-System there are a number of different purchase options for third-party modules, however, in the end it boils down to two different package types.  Install packages and Source packages.  Which is right for you?  This answer isn't quite as clear as one might expect, and the following blog posting will walk through the different things that need to be considered before making that purchase choice.

December 25, 2008

DotNetNuke 4.9.1 Dashboard Module

As I mentioned in an earlier blog posting one of the big new items in DotNetNukr 4.9.1 is a Dashboad module.  This module was created to help the DotNetNuke Corporation work with the DotNetNuke Professional Edition users, however, there are also big benefits to the rest of us that help support users on DotNetNuke.  The following sections will discuss each of the views included in the Dashboard module, which can be accessed from "Host" -> "Dashboard".

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 29, 2008

Openforce 2008 Recap

It is amazing to think that OpenForce ended over two full weeks ago ever since returning home I have been swampped and haven't gotten around to my promised posting regarding the panel discussion that happened at the end of the session.  Although a bit late I thought I would share the notes that I made from the panel discussion on the final day of OpenForce.  The following items are not necessarily in any particular order, just the way they were scribbled into my notebook.

November 24, 2008

Why Dynamically Attached Databases Cause Problems

One item that many people find unusual about my DotNetNuke installation guides is my insistence on NOT using the Database.mdf, dynamically attached database file for the creation of a DotNetNuke database.  In my tutorials I have quickly dismissed the topic by noting that "issues" come up when trying to use a dynamically attached database and I leave it at this.  Well after seeing more questions on this topic recently in the DotNetNuke.com forums I wanted to take a moment to put my $0.02 out there as to WHY I don't like it.  I will do this by discussing quickly what the differences are in the two approaches, then I'll discuss the "downfalls" of each.
November 11, 2008

First OpenForce 2008 Update

Tom Kraak is doing a great job with Live Blogging over at Seablick.com, however, I thought it would be good to put a quick blog post up here about imp...

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.