January 2011 - Posts
Last week Microsoft released a new tool called WebMatrix, a tool for developing web applications and easily installing existing web applications. You can learn more about WebMatrix by visiting http://www.microsoft.com/web/webmatrix/. What does this have to do with DotNetNuke? Well WebMatrix makes installing DotNetNuke very easy! Even easier than before when just using the Web Platform Installer also from Microsoft.
To be honest, using the Web Platform Installer alone unfortunately doesn’t work if you’re trying to install DotNetNuke on IIS 7.5 (Windows 7/2008r2) without a work around (demo’d in this video). The reason that WPI won’t work is related to the security model that IIS 7.5 uses and the fact that when SQL Express 2008 r2 gets installed the account that DotNetNuke will run under doesn’t have the ability to connect to the DotNetNuke database.
Doing some work with WebMatrix however shows that it actually works (at least in my testing on Windows 2008 R2). The installation process for WebMatrix is really straight forward, navigate to http://web.ms/ and click on the link to “Install WebMatrix”, the the Install Now link which will download the installation tool.
Once you have WM installed you can then choose from the Application options, DotNetNuke is listed as the first option when sorted by most popular applications. This will download the necessary software/tools to run DNN, including SQL Express 2008 R2, by default when WebMatrix installs it installs SQL Compact 4.0, which is a trimmed down version of SQL that doesn’t run Stored Procedures, and thus won’t work for DotNetNuke.
Once WebMatrix has installed the necessary files for DotNetNuke you will be presented with a URL in which you can click to navigate to your DotNetNuke site, this will fire off the DotNetNuke installation wizard, the easiest option is to just use the “Auto” option.
The process is very straight forward, but if you need help, you should just watch this video!
This is the fourth post in a series of blog posts about converting from CommunityServer to DotNetNuke.
A brief background: I had a number of websites running on CommunityServer 2.1, I decided it was finally time to ditch CommunityServer due to the change in their licensing model and pricing that made it not good for the small guy. This series of blog posts is about how to convert your CommunityServer based sites to DotNetNuke.
Previous Posts:
Part 1: An Introduction
Part 2: DotNetNuke Installation
Part 3: Converting users from CommunityServer to DotNetNuke
Part 4: Getting the conversion tables ready for CS to DNN
Part 5: Moving Forum threads from CommunityServer to DotNetNuke
Part 6, Community Server to DotNetNuke Moving Forum replies and attachments
Part 7: CommunityServer to DotNetNuke handling URLs
This is Part 4, Getting the conversion tables ready for CS to DNN
In the previous blog post we talked about our first conversion SQL Script. We skipped over a couple of sections in that SQL Script as we only focused on the User conversion that was going on in there. In this blog post we’re going to talk about the other things going on in the script.
First things first, you can find the scripts on the codeplex project http://cstodnn.codeplex.com/
This first script, besides bringing users over into DotNetNuke, configures a few tables that we are going to use in the latter scripts, and in our URL handling later on, to match up the data from CommunityServer Forums and Users to DotNetNuke Forums and Users.
The script starts off by deleting three tables
[TARGETDB].[dbo].[conversion_users] – mapping CS user ids to DotNetNuke user ids [TARGETDB].[dbo].[conversion_forums] – mapping CS forum ids to DotNetNuke forum ids. [TARGETDB].[dbo].[cs_forums_topics] – mapping CS forum post ids to DotNetNuke forum post ids. It then creates those three tables. They are pretty basic tables, take a look at the script for more details on the columns in each one. From there the script deals mostly with users for a while (See post #3) until we get commented section for “Get Forum Groups.
This section of the script gets all of the Forum “Groups” from CommunityServer and pulls them over into the DotNetNuke Forum_Groups table. These are just for grouping forums, which we pull over next. The Forums themselves are pulled into Forum_Forums with their corresponding group IDs.
After that we start populating the Conversion tables, mapping user ids, and forum ids. We don’t use the cs_forum_topics table until the later SQL scripts. The very last thing done in this script is to create a stored procedure called Forum_Post_Add_Conversion. This script will get used in the later scripts as we go through and import forum posts. This PROC is slightly different than the standard Forum_Post_Add stored procedure, tweaked slightly to make it work with the import process.
Once the conversion itself is done you could delete the procedure. You won’t be deleting the Conversion tables though anytime soon, in a future blog post we’ll show you how we use those for handling all the old CommunityServer URLs and mapping them to DotNetNuke URLs.
Two updates on the series in two days? Woah! So before you get into Part 3 of my CommunityServer to DotNetNuke series catch up if you haven’t read the previous posts.
A brief background: I had a number of websites running on CommunityServer 2.1, I decided it was finally time to ditch CommunityServer due to the change in their licensing model and pricing that made it not good for the small guy. This series of blog posts is about how to convert your CommunityServer based sites to DotNetNuke.
Previous Posts:
Part 1: An Introduction
Part 2: DotNetNuke Installation
Part 3: Converting users from CommunityServer to DotNetNuke
Part 4: Getting the conversion tables ready for CS to DNN
Part 5: Moving Forum threads from CommunityServer to DotNetNuke
Part 6, Community Server to DotNetNuke Moving Forum replies and attachments
Part 7: CommunityServer to DotNetNuke handling URLs
This is Part 3, Converting Users from CommunityServer to DotNetNuke
In this part we’re going to talk about the process used to get users from CommunityServer into DotNetNuke. This part uses some of the SQL scripts that you can download from the CStoDNN project on codeplex http://cstodnn.codeplex.com, before we talk specifically about the user accounts let’s cover some details of the SQL scripts in that project.
- You will need to be able to access both the CommunityServer database and the DotNetNuke database with the same user account, the scripts assume this to be the case.
- The scripts have a number of STRINGS that need to be swapped out before executing them (do a find and replace in each of the scripts for the following strings
- SOURCEDB = the name of the CommunityServer database
- TARGETDB = the name of the DotNetNuke database
- forumMODULEID = the Module ID of the Forum module (see Part 2 for where to locate this)
- PORTALID = should be 0 unless you are using a different portal
- admin@change.me = should be the email address you want to define for the email address of each portal, you can change this later in the Forum settings
- WEBSITENAME = The name of your website, this is the “name” that forum email notifications come from
- The SQL scripts are numbered, we are only dealing with the first script in this blog post, CsToDNN_1.sql (there are other things going on in this script, we will cover those in the next blog post)
- The default configuration for CommunityServer passwords is hashed, while DotNetNuke encrypts them. So changing things causes some issues. You are going to have to copy the MACHINEKEY section of the web.config file from your CommunityServer web.config file and replace it in DotNetNuke’s web.config. This will cause DNN to use hashed passwords as well. We go into details on this in a later blog post.
So let’s talk about the user conversion process for users. Users and data for users in CommunityServer are stored in the following tables, there is likely other info but we aren’t pulling over profile data, just the basics
- aspnet_membership
- aspnet_users
In DotNetNuke we’re going to insert User data into the following tables
- aspnet_membership – standard aspnet_membership tables holding out basic data, userid, password, password format, password salt
- aspnet_users – standard aspnet_users table holding the username, the userid, email address
- users – a DotNetNuke table storing basic user info, username, integer based userid
- userportals – mapping DotNetNuke users to Portals in the database (portals are individual websites in DNN)
- userroles – storing the User/Role relationships in DotNetNuke for permissions
- userprofile – stores DotNetNuke user profile info
- forum_users – a mapping of Forum information to users
- Conversion_users - a table created in the SQL script, used for referencing communityserver ids and dotnetnuke ids
The Script does the following for users (we skip over a few things not related to users, covered in the next blog post)
- Changes the ADMIN account in DotNetNuke to ADMIN2, this happens because in all likelyhood your CommunityServer database already has an ADMIN account and if you run the scripts you’ll get a conflict
- Resets the password/format/salt for the existing users in the DNN database (this should just be for HOST and ADMIN2 as you should be in a clean DotNetNuke install). The passwords are reset to ‘dnnpassword’ so after you’re done with everything be sure to reset the passwords!
- Drops the conversion_users table from the DotNetNuke database if it exists
- Creates the conversion_users table
- Gets all users from the CommunityServer aspnet_users table into the DotNetNuke aspnet_users table
- Gets info from CommunityServer aspnet_membership table into the DotNetNuke aspnet_membership table
- Inserts data into the DotNetNuke Users table
- Insert into DotNetNuke UserPortals table (associates the users with PortalID 0)
- Insert into DotNetNuke UserRoles table (add users to Registered Users role)
- Insert into DotNetNuke Forum_Users table, lots of data going in here, default settings for users primarily
There are a number of other things going on in this script, I’ll talk about those in the next blog post!
A reminder, for all of these scripts, and the conversion process, I recommend you do frequent backups! I found that I repeated a lot of steps while testing and writing these scripts, doing backups saved me from having to start over every time. Though ideally these scripts will work for you out of the box, and you won’t need to change/rerun them, but better safe then sorry.
(note: This script assumes your Portal has the RegisteredUsers role in DotNetNuke as RoleId =1)
A couple of weeks ago I started off this series, I didn’t intend for it to take this long to get to Part 2, but I’ve had a lot of other things going on.
A brief background: I had a number of websites running on CommunityServer 2.1, I decided it was finally time to ditch CommunityServer due to the change in their licensing model and pricing that made it not good for the small guy. This series of blog posts is about how to convert your CommunityServer based sites to DotNetNuke.
Previous Posts:
Part 1: An Introduction
Part 2: DotNetNuke Installation
Part 3: Converting users from CommunityServer to DotNetNuke
Part 4: Getting the conversion tables ready for CS to DNN
Part 5: Moving Forum threads from CommunityServer to DotNetNuke
Part 6, Community Server to DotNetNuke Moving Forum replies and attachments
Part 7: CommunityServer to DotNetNuke handling URLs
This is Part 2, Installing and Configuring DotNetNuke
The installation of DotNetNuke for this conversion process is pretty straight forward. I started with a fresh install of DotNetNuke 5.6.0, though I would recommend you use DotNetNuke version 5.6.1 as of this blog post. You can grab the latest INSTALL package from the DotNetNuke Downloads page (I don’t recommend using the Web Platform Installer at this point in time)
You could probably try to do this conversion with an existing DotNetNuke website, but I found that I was moving from CS entirely to DNN, so I didn’t already have a DotNetNuke site to worry about. Part of the conversion process is going to reset some passwords, if you want to run this on an existing site you likely will want to rework that portion of the scripts (discussed in a future post).
I won’t provide you the entire steps for installing DotNetNuke, they are covered in the Wiki, but I will provide you with a few items of note.
- Install DotNetNuke using a licensed version of SQL Server 2005 or 2008, not SQL Express
- When you configure the connection string portion of the installation wizard do not use an OBJECTQUALIFIER (leave it blank)
- Leave the DATABASEOWNER setting as DBO, do not change it.
After you have DotNetNuke installed you should do the following
- Login as Host
- Go to the Host/Extensions page
- Go to the Actions menu and choose Install Available Extensions
- Select (check) the Forum module (I used version 5.0.0, I would recommend starting at that version) and install
- Go to the Home page
- Create a new page called Forums (or whatever you want to name it)
- Place the Forum module on the page
- Go to the Admin interface for the Forum module
- Delete any Groups or Forums that exist
- Go to the Module Settings for the Forum module
- Make note of the MODULEID in the URL, you will need this later
That’s about it, at least for now. This will get you a clean DotNetNuke install with the Forum module on it. In the next blog post we’ll start talking about the database scripts (located at http://cstodnn.codeplex.com)
Earlier this evening I release a new version of my DNNSimpleArticle module for DotNetNuke. You can download the latest release from codeplex at http://dnnsimplearticle.codeplex.com/
This release is the first release of the module ONLY in C#, the previous release had both C# and VB.Net versions for example purposes. Going forward I want to keep things simple, and since my preference is C# all the future releases will be in C#.
Here are the highlights for this release.
Release Notes
Version 00.00.04
- First C# only source code release (no more VB releases for the time being)
- Added ability to display categories on the Article List page, defaults to True.
- Added ability to edit/delete an article from the listing page.
- Added edit/delete buttons on the article display page
- Added delete confirmation to Delete All link found in module settings
- Corrected missing resources for paging
- Fixed bug where paging with 1 article would generate an error
- Fixed issue with article list not properly encoding html (&)
Basic Features - Create and display articles
- Display a paged list of articles
- Articles get created as DNN ContentItems
- Categorization provided through DNN Taxonomy
- SEO functionality for article display providing HTML Title, Meta-Description and Meta-Keyword functionality
- Dynamically loaded Controls for ArticleList and ArticleView based on ArticleId parameter
- Displays list of Categories below Article on ArticleDisplay
- Compiled against DNN 5.5.1 (if you want to run against an older version you will have to recompile it)
- Uses MSBuild for automated packaging (requires MSBuildTasks from http://msbuildtasks.tigris.org/)
- FREE AND OPENSOURCE!
You can see the module in action on the home page of SCCAForums.com
I won’t regurgitate all of Joe Brinkman’s blog post announcing the fact that DotNetNuke 5.6.1 was released today.
There are a couple of new features added, Razor support, and better Portal Alias handling. There are a number of bug fixes, and even some security fixes included so I would encourage you to check it out, upgrade your sites in a test environment then get your production sites upgraded.
If you have never upgraded a DotNetNuke website it is actually pretty darn easy to do. Check out some upgrade instructions in the DotNetNuke Wiki, and check out the video below.
you should always backup the files and database before you perform maintenance on a site
This post was originally posted on my 350z website, Project350z.com
Some of you know I have a car problem, some of you don’t. So to explain this a bit. I started racing cars in a sport called Autocross back in 2000, and have been doing it pretty heavily since then. In late 2002/early 2003 I was building websites around my racing hobbies, and I was getting into .NET at the time for work. Well, low and behold I stumbled on what was to become DotNetNuke and the rest is history. I’ve had quite a few car websites on DotNetNuke over time, though if you compare the number of sites to the number of actual cars over that time, the number of cars wins!
I don’t have an Autocross event coming up for a couple weeks, but I couldn’t wait, I had to do something to the car. To see more detail check out this full blog post. It has DotNetNuke related content I swear 
So here she is, DotNetNuke logos on the front and the back of the 350z.

and

What is DotNetNuke? DotNetNuke is an open source platform for building web sites based on Microsoft .NET technology.
Why would someone put a DotNetNuke logo on their car? My car website, www.project350z.com, runs on DotNetNuke. My personal website runs on DotNetNuke, my wife’s site runs on DotNetNuke, my daughter’s website runs on DotNetNuke, SCCAForums.com runs on DotNetNuke. I work for DotNetNuke Corporation. I’ve used DotNetNuke for 8 years now. My life revolves around DotNetNuke, and has for a long time, and hopefully will for a long time as well.
So I found it fitting that I should try to help promote the product in any way I can. That includes putting the logo on my car, front and back. I’ve done it before, on a different car, so why not on my current car!
So what do you think? Am I crazy?
So I was doing some reading tonight on my Nerdkit, I had planned to actually do some playing around with it, but decided just to read a bit. I’ve never coded in C, I did C++ in College (not very well) and do most of my development in C# these days (when I’m doing code, mostly for fun). While all similar, there are a few differences, so doing things in C is a learning experience.
There was some practice questions for AND and OR using Binary. Here are some examples.
When comparing binary with AND you and up getting a 1 if both bits are 1, and 0 if they are not.
Example: 11111111 & 00001100 = 00001100
while OR would produce a 1 if either bit is 1.
Example: 111111111 | 00001100 = 11111111
But then I came across something I didn’t understand
11011010 & ~(1<<3)
~ is pretty easy, it means NOT, but what is (1<<3) ? I had no clue, so I did some Googling for (1<<3), (1<<2) and the like, w/ quotes, without quotes, etc. That produced absolutely nothing useful unless I was trying to get a third cup of sugar…. So I figured, well if Google can’t figure out what I want I would try to use Bing, that produced results just as useless.
So, what next? Well, I decided to try www.WolframAlpha.com
What do you know? It actually told me what it was, sort of.
http://www2.wolframalpha.com/input/?i=(1%3C%3C3)
It told me that it was performing a BitShift, which at least got me somewhere. A quick search for “C BitShift” and I found a page that explains it well enough. http://www.cs.umd.edu/class/spring2003/cmsc311/Notes/BitOp/bitshift.html
So what is the result?
11011010 & ~(1<<3)
Well 1 is really 00000001, shifted to the left 3 bits would be 00001000, (which is actually 8 as n integer)
11011010 & ~(00001000) so the & for that would be 11010010
There was another example in the Nerdkit documentation as well, for OR
11011010 | (1<<2)
11011010 | (00000100) = 11011010
So there you go. I learned something new for today. Hopefully this weekend I’ll actually get the Nerdkit doing something else besides the temperature sensor I have it configured for. Perhaps I’ll get it going and connected to Project350z.com (hey, it is a three day weekend).
Once again, it’s been far too long since the last show, this time just over 4 months, For Show #14 I am joined by Joe Brinkman. Take a listen and see what has been going on in the DNN world.
Length: 47:56
Size: 43.8mb
MP3 Download
- Welcome back to DNNVoice
- Welcome to guest Joe Brinkman (http://blog.theaccidentalgeek.com/)
- Introduction to Joe and
- Welcome back from Chris Hammond (http://www.chrishammond.com) and what he's been doing
- DotNetNuke Training
- Free Extensions
- Module Development Templates
- DNNSimpleArticle
- Baby
- NerdKit/NetDuino
- Latest News
- DotNetNuke 5.6.1
- WebCamp DotNetNuke Materials
- Ecosystem Highlight?
- Joe's Pick
- DNNBlogML
- Puure Skin
- Chris' Pick
- Ecozany Skin
- Ask a Question
- In order to ask a question to be answered on our next podcast visit Ask a Question on DNNVoice.com
- Upcoming events
- CodeMash
- Streaming link
- Razor Links
- Hackathon Link
- CMS Expo
- WebCamp February (link coming)
- Atlanta Give Camp
(originally posted on DNNDaily)
So I have been trying to figure out how best to do this blog post for a while now, though I think I will be better off doing it as a series of blog posts rather than one individual one. So this post will be the starting point for the conversion. I will update it with links to the other blog posts in the series as they get created and added.
Previous Posts:
Part 1: An Introduction
Part 2: DotNetNuke Installation
Part 3: Converting users from CommunityServer to DotNetNuke
Part 4: Getting the conversion tables ready for CS to DNN
Part 5: Moving Forum threads from CommunityServer to DotNetNuke
Part 6, Community Server to DotNetNuke Moving Forum replies and attachments
Part 7: CommunityServer to DotNetNuke handling URLs
Background (all in my opinion and based on my memory, as inaccurate as that may be):
Back in the early days of ASP.NET there were a few projects that many asp.net developers tried to use. There was a forum project at the time managed by Rob Howard at Microsoft, the ASP.NET Forums. There was a blog project called .Text and a photo gallery called nGallery.
Ultimately Rob left Microsoft and formed a company called Telligent, he took the ASP.NET Forums, and worked with the owners of the nGallery and .Text to merge them all into a product from Telligent called CommunityServer. CommunityServer progressed over the years, and a number of websites have been built with it. I believe www.asp.net once ran on CommunityServer, and I had a number of websites of my own that ran on it at one time. I don’t believe www.asp.net still runs on it, at least 100% but some forms of CommunityServer are still in use as seen by visiting the blogs at http://weblogs.asp.net including my own at http://weblogs.asp.net/christoc.
Initially CommunityServer was called “open source” and veiled under that banner, but over time that changed and it became what most would consider a very expensive piece of software. Over the past 6 months I have seen a lot of interest in converting off of CommunityServer
My history with CommunityServer
My background with CommunityServer begins before it started, I worked with the ASP.NET Forums project, and became (remain) good friends with one of the very first Telligent employees. I’ve had a number of websites that ran on .Text and CommunityServer throughout the years. My personal website ran on it, I had a few racing websites on it as well. As of late http://www.sccaforums.com/ ran on it, though at the end of November 2010 I converted it over to DotNetNuke. This series of blog posts will document all that was necessary for that conversion.
I’ve been using DotNetNuke since it was known as IBuySpy Workshop. I work for the DotNetNuke Corporation now. So it made sense for me to convert from CommunityServer to DotNetNuke.
When I converted moved from CommunityServer 2.1 to DotNetNuke 5.6.0 and the DotNetNuke Forum Module version 5.0. I did make a few customizations to the Forum module and I will talk about those.
What’s Coming
Here are some of the things that need to be covered in the conversion. I will link these posts as they are written, and also add to the list as I find other info to be covered.
- Installing DotNetNuke and background
- Converting Users (hashed passwords)
- Converting Forum Groups
- Converting Forums
- Converting Forum Threads
- Converting Forum Replies
- Implementing BB Code in DNN Forum Module
- Customizing the DotNetNuke Banner SkinObject
- Handling CommunityServer URLs and sending them to DotNetNuke
More Posts
Next page »