iFinity Blogs 

Bruce Chapman
The craft of writing code. The outcomes from being crafty with code. Crafty Code is tales from the coding bench.

3 Advanced uses for the DotNetNuke MultiContent module

by bchapman on Monday, January 24, 2011 6:01 PM
Late last year, I quietly released a new free module from iFinity.  This new module is called the ‘MultiContent’ module.  The main reason for developing (and releasing) this module was to show a practical way in which to develop DotNetNuke modules so that the end-user of the module has freedom of choice when it comes to the Urls for the module. 

After speaking with a couple of people about the module, it occurred to me that the possible uses for the module skipped straight over peoples’ heads – something which tends to happen a bit with my more esoteric offerings that are designed to solve a specific problem rather than be designed from a snappy tagline.

To re-iterate, the MultiContent module is a simple Text/Html display module, which has the twist of being able to display different sets of content depending on a value in the Url for the page.  Within the one module, you can display any type of Html content, depending on the presence (or indeed, absence) of a value in the Url.  The value in the...

How to monitor the DotNetNuke Cache

by bchapman on Tuesday, January 18, 2011 4:59 PM
While trying to optimise the memory caching usage of the Url Master module, I routinely came up against the problem of trying to ascertain how exactly the cached items were behaving – how and when they were being removed and replaced in the cache.  A module like the Url Master module relies on the DotNetNuke cache heavily – without storing objects in the cache, the performance would render the module unusable.  However, the problem with trying to keep an eye on the cache is one of those things where observation changes the way the item works.  When testing performance, you can’t hang about in the code debugger and watch things.  There needed to be a better way.

In the end, I found the solution was to iterate through the entire ASP.NET cache and display the objects in a list.  Originally I made up a separate ASP.NET page to do this, but it soon occurred to me that this was better served by creating a DotNetNuke module, which could quickly and easily be installed on any DotNetNuke installation, thus speeding...

Building Friendly Urls into DotNetNuke Modules – Part 4 – Customised Urls

by bchapman on Friday, December 3, 2010 10:37 AM
This is the last post in the series about developing DotNetNuke modules to have Friendly Urls.  The prior entries in this series are:

Part 1 : Why Friendly Urls and Understanding DotNetNuke Module Urls

Part 2 : Models for Improving Module Urls

Part 3 : Implementing new Url Schemes for Existing Modules

If you don’t feel like reading those prior entries, here’s a quick recap:

Friendly Urls in modules is the responsibility of the developer of the Module The overall aim is to increase the keyword ratio of the Url, which is the number of keywords to words in the Url. ...

Building Friendly Urls into DotNetNuke Modules – Part 3 – Implementing new Url Schemes

by bchapman on Tuesday, November 23, 2010 6:47 PM

This is part 3 of a blog series about developing Friendly Url into DotNetNuke modules.  The prior versions are:

Part 1 : Why Friendly Urls and Understanding DotNetNuke Module Urls

Part 2 : Improving Module Urls

This third part in the series covers practical implementations of the ‘Level 1’ and ‘Level 2’ mentioned in Part 2.

Part 2 Recap

In Part 2 of the series, I introduced 3 levels of DNN improvement:

Incorporating contextual Keywords into the Url Reformatting the Url for length and increasing the keyword ratio Creating totally custom Url values with only keywords in them I’m happy to say that I’ve been contacted by several people developing new modules that have taken some of my advice on board and who are creating DNN modules right now with keyword-specific values. 

I’m going to cover how to implement the changes in levels 1 and 2, and give some important information about preserving existing links.

It’s time to delve in and look...

Building Friendly Urls into DotNetNuke Modules Part 2 – Improving Module Urls

by bchapman on Monday, November 15, 2010 2:34 PM
This is part 2 in a series covering friendly Urls in DotNetNuke modules.  It is adapted from the presentation I made at the DotNetNuke Connections Conference 2010.   Part 1 covers some background on friendly urls and how that relates to DNN modules, you may wish to read that first if you have arrived at this post from somewhere else.

In the previous post in the series, I expanded on which part of a Url is related to a DotNetNuke module.  This was the example given:


This Url gets rewritten to this one on the server:


In the rewritten Url, the ‘tabid=795’ is used by DNN to load the correct page (the one with the Forum module) and the rest of the Url (forumid=77&threadid=381676&scope=posts) is used by...

Building Friendly Urls into DotNetNuke Modules – Part 1

by bchapman on Wednesday, November 10, 2010 6:06 PM
This series of posts is a blog version of the presentation I did at the DotNetNuke Connections 2010 Conference.    It covers the background, theory and implementation of better Urls in DotNetNuke modules.

Part 1 of this series might be called the Friendly Url Manifesto.  I’m going to put forwards my case for why would even bother, and what’s wrong with many DotNetNuke module Urls.

Short History of Urls Urls have changed as the world wide web has changed.  I’ve identified 7 stages of Urls throughout the last 15 or so years of the World Wide Web*. 

In the beginning…

Everything at the dawn of the Web was a filename.  In fact, that was the driver of the invention – in order to access all the different papers, information and data available at CERN, the web made it possible to look at anything on any internet-connected server by ensuring that every piece of content had a Unique name.  That was called the URL or Uniform Resource Locator.

So all things looked like this : http://example.com/example-page.htm


DotNetNuke Connections Conference 2010 Roundup

by bchapman on Tuesday, November 9, 2010 1:31 PM
It’s hard to believe that just 7 days ago I was sitting in the Keynote talk delivered by Shaun Walker at the DotNetNuke Connections Conference.   I decided to dedicate a Blog post to the conference before the memories in my head are replaced by the minutiae  of day-to-day operations of this site.

DevConnections Keynote Presentation – Windows Phone 7 If you’re not aware – DotNetNuke Connections is a conference within a conference.  It’s embedded in the larger DevConnections conference that takes in many tracks, including Sharepoint, Sql Server, Exchange and many others.  Accordingly, the opening Keynote is something that all of the attendees are interested in.  This year it was the Windows Phone 7 introduction by Joe Belfiore, the Corporate Vice President for the Windows Phone Program.  The interesting thing to note here is that Joe’s career in Microsoft is definitely a track in the user experience (UX) field.  Which tells you a lot about the...

Lessons learned from a site outage

by bchapman on Monday, October 18, 2010 10:36 PM
If you’re a regular visitor to this site, or follow my twitter feed (and you should be!) you’ll have seen that there was a major outage of this site over the weekend.  While there is always some pain in airing the dirty laundry of a site outage, in this case there are valuable lessons to be learnt for anyone with an ASP.NET site, so I’m going to take some personal pain in the hope of greater community gain on this one.

The outage was related to a total server meltdown.  As in, completely dead, no boot, nothing.  Start over from scratch and put everything together from backups.  Here’s the gory details:

Timeline : Friday – just before lunch.

‘Bing’ goes the email – another reminder from dotnetnuke.com to install the patch for the Microsoft ASP.NET ‘Padding Oracle’ vulnerability.  It’s in big bold letters on my ‘to do list’ : PATCH ASP.NET SITES.  I had waited a little, figuring that if there were any issues with the patch, I’d hear about...

Friendly Urls for Multi-Language DotNetNuke Sites with only one Domain Name

by bchapman on Friday, October 1, 2010 3:05 PM
Since DotNetNuke 5.5 was released, and the Url Master module version 2.0 was released, I’ve received an increasing number of questions with regards to setting up sites to take advantage of Friendly Urls.  While DotNetNuke 5.5 allows you to create a true multi-language site, it does so at the cost of Friendly Urls, as the introduction of the /language/xx-XX path in the Url causes the core Friendly Url Provider to start putting the /tabid/yy back into the Url.

Assuming you only have one domain name registered for your site, and you want to run both Multi-Language and Human Friendly Urls, how do you do it?  That’s what this post is going to cover.

Standard DotNetNuke Multi-Language Urls If you switch on Multi-Language features for a DotNetNuke 5.5 site, you’ll get Urls that look like this (note, all Urls for the ‘Blog’ page in a site):

Url Language example.com/Blog.aspx en-US (default) example.com/Blog/tabid/61/language/en-US/Default.aspx...

Fixing ASP.NET Security Vulnerability in a DotNetNuke Install

by bchapman on Monday, September 20, 2010 4:19 PM
Scott Guthrie posted about an important ASP.NET security vulnerability over the weekend.  If you have a DotNetNuke website, this vulnerability affects you, so take the time to read this and check if your site might be affected.

So far there has been no patch for the operating system, but there is a workaround which is very simple.

Basically, the vulnerability is that malicious users can probe your site and, from certain error codes, can break the cryptography securing important files like your web.config file.

The fix involves updating your website to provide a generic error page for all server errors.  Many people will already have such a setup in place, although others (like me) might have left more descriptive error messages switched on for working out what has gone wrong.

Update [21st September] : DotNetNuke has an official post out on this one, so I think take...
Bruce Chapman
Hi, I'm Bruce Chapman, and this is my blog. You'll find lots of information here - my thoughts about business and the internet, technical information, things I'm working on and the odd strange post or two.
Connect with Bruce Chapman on Google+

Share this page
Get more!
Subscribe to the Mailing List
Email Address:
First Name:
Last Name:
You will be sent a confirmation upon subscription

Follow me on Twitter
Stack Exchange
profile for Bruce Chapman at Stack Overflow, Q&A for professional and enthusiast programmers
Klout Profile