<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>DotNetNuke Blogs On DNN, For DNN</title><link>http://www.dotnetnukeblogs.com</link><description>RSS Feed for DotNetNuke Blogs On DNN, For DNN</description><ttl>120</ttl><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/DotnetnukeBlogs" /><feedburner:info uri="dotnetnukeblogs" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>Diagnosing a DotNetNuke Server Outage caused by Schedule Service Errors</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/G8EGhZhddCY/Diagnosing-a-DotNetNuke-Server-Outage-caused-by-Sc</link><description>&lt;p&gt;Ever since I went to a full dedicated server for my websites a little over 6 months ago, I’ve had zero problems.   Zero as in none.  100% uptime for months on end.  This has been great, so good in fact that I almost forgot what it was like doing battle with shared hosting services.  If you’re at the point where you are questioning whether to go from shared services to a dedicated server (and by this I mean shared as in VPS or shared as in ‘all on one server’) – do it now.  Even though it costs a little bit more, the savings in less downtime more than offset the difference.&lt;/p&gt;  &lt;p&gt;But all good things come to an end, and about 12 hours ago, my site started going up and down like a yo-yo.   Once all the usual suspects have been sorted out (did I forget to renew the domain?) it became clear that this was a software issue on the server itself.&lt;/p&gt;  &lt;p&gt;If you use DotNetNuke as your platform of choice, and you’re faced with this situation, the first place to always go and look is the DotNetNuke scheduler.&lt;/p&gt;  &lt;p&gt;This is a great piece of software that allows even people on shared hosting to run scheduled services.  I posted a couple of weeks back the horror of having to work with a web platform that doesn’t have something like this built in.  &lt;/p&gt;  &lt;p&gt;But with great power comes the possibility of bad things happening.  And so it can with the scheduler.&lt;/p&gt;  &lt;p&gt;The problem with all scheduled services (and by this I mean the universe of unattended software, not restricted to any one platform) is that they can go rogue.  By rogue I mean consuming all of the resources of the host machine, and generally causing crashing and destruction.&lt;/p&gt;  &lt;p&gt;And so it goes that this would appear to be the cause in this case.&lt;/p&gt;  &lt;p&gt;This blog post is going to be about the troubleshooting process that I went through, to solve this problem.  Why post this?  So that others, if they find themselves in the same situation, might find the information and manage to solve the problem themselves.  &lt;/p&gt;  &lt;h2&gt;Finding out what is wrong with your non-responsive DotNetNuke website&lt;/h2&gt; &lt;p&gt;The first thing to do is get the server to the point where you can actually access it. Sometimes this might require a reboot – if so, get that done.&lt;/p&gt;  &lt;p&gt;If you can get a remote desktop connection to the server, or even just a remote Sql Server connection, get that going.&lt;/p&gt;  &lt;p&gt;If you can get an FTP connection going to the server, upload an ‘app_offline.html’ file to the website root.  This essentially shuts down further traffic to the site.  See &lt;a href="http://weblogs.asp.net/scottgu/archive/2006/04/09/442332.aspx"&gt;here for more information about app_offline.htm&lt;/a&gt;.  The first thing to do is to stop the server crashing again.&lt;/p&gt;  &lt;p&gt;Once you’ve got the ability to look at your DNN install, try and ascertain the size of both the ScheduleHistory and EventLog tables.   If these are large, you’ve probably identified your problem.&lt;/p&gt;  &lt;p&gt;In my case the ScheduleHistory table had grown to over 4 million rows.  Yikes.  Now that’s a problem.  It should be in the thousands, not the millions.  Note there is no exactly correct number, because the number depends on traffic and how many scheduled items you have, as well as how many errors you get.&lt;/p&gt;  &lt;p&gt;When your ScheduleHistory or EventLog tables grow to this size, they basically can’t be deleted properly, because deleting that amount of data from the tables fills up the transaction logs in your database.   The DNN Scheduler has two tasks in it, one which deletes excess rows from the SiteLog table, and one which deletes excess rows from the ScheduleHistory table.   And when you try and run a backup on that size of data, the backup can take forever and also consume too much CPU and memory.  Result : dead server.  The Scheduled task can’t delete the rows, and it kills the server stone dead while trying to.  It’s in a death spiral, and the only solution is to clean out those tables.&lt;/p&gt;  &lt;p&gt;But before you do that, you need to know what is causing the error.  If you’ve got a Sql Connection, I recommend selecting the top 50 or so rows from both the ScheduleHistory and the EventLog tables.&lt;/p&gt;  &lt;p&gt;The commands are these:&lt;/p&gt;  &lt;p&gt;select top 50 * from dnn_EventLog order by LogCreateDate Desc   &lt;br /&gt;select top 50 * from dnn_ScheduleHistory order by startDate Desc&lt;/p&gt;  &lt;p&gt;Note: dont’ do a ‘select *’ from these tables, or you’ll just cause more grief.  It’s imperative to limit the size of the result set.&lt;/p&gt;  &lt;p&gt;When doing this, I recommend copy/pasting the ‘LogProperties’ column of the EventLog table into a text file, and renaming it something like ‘errors.xml’ in your local machine (put it in a temp directory).  Then open that file by double clicking on it – this will open up the xml output in a browser window.  Reading raw XML with no formatting is an exercise in generating headaches, so I recommend doing it this way to save you grief.  You can copy/paste the LogProperties from multiple rows into the one Xml file, and have a way of viewing a selection of the errors.&lt;/p&gt;  &lt;p&gt;Of course, if you can still actually log onto your server and view the Admin –&gt; Log Viewer page, then do it that way!&lt;/p&gt;  &lt;h2&gt;The Discovered Issue - PurgeModuleCache Failure&lt;/h2&gt; &lt;p&gt;What I found from all of this was this error appearing over and over again:&lt;/p&gt;  &lt;p&gt;5/22/2012 8:24:12 PM &lt;/p&gt;  &lt;p&gt;Scheduler Event Failure &lt;/p&gt;  &lt;p&gt;THREAD ID 20 TYPE DotNetNuke.Services.ModuleCache.PurgeModuleCache EXCEPTI &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;THREAD ID&lt;/strong&gt;: 20&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;TYPE&lt;/strong&gt;: DotNetNuke.Services.ModuleCache.PurgeModuleCache&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;EXCEPTION&lt;/strong&gt;: String was not recognized as a valid DateTime.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;RESCHEDULED FOR&lt;/strong&gt;: 5/22/2012 8:24:42 PM&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;SOURCE&lt;/strong&gt;: STARTED_FROM_BEGIN_REQUEST&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;ACTIVE THREADS&lt;/strong&gt;: -1&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;FREE THREADS&lt;/strong&gt;: 2&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;READER TIMEOUTS&lt;/strong&gt;: 0&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;WRITER TIMEOUTS&lt;/strong&gt;: 0&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;IN PROGRESS&lt;/strong&gt;: 0&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;IN QUEUE&lt;/strong&gt;: 9&lt;/p&gt;  &lt;p&gt;Just below it, in every case, were two other exceptions, which looked like this:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;DefaultDataProvider&lt;/strong&gt;: DotNetNuke.Data.SqlDataProvider, DotNetNuke.SqlDataProvider&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;ExceptionGUID&lt;/strong&gt;: 5965365b-9f4c-40ab-b3fc-1b3268ded02e&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;InnerException&lt;/strong&gt;: String was not recognized as a valid DateTime.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;FileName&lt;/strong&gt;:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;FileLineNumber&lt;/strong&gt;: 0&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;FileColumnNumber&lt;/strong&gt;: 0&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Method&lt;/strong&gt;: System.DateTimeParse.Parse&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;StackTrace&lt;/strong&gt;:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Message&lt;/strong&gt;: System.FormatException: String was not recognized as a valid DateTime. at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles) at DotNetNuke.Services.ModuleCache.FileProvider.IsFileExpired(String file) at DotNetNuke.Services.ModuleCache.FileProvider.PurgeExpiredItems(Int32 portalId) at DotNetNuke.Services.ModuleCache.PurgeModuleCache.DoWork()&lt;/p&gt;  &lt;p&gt;So, from this it was pretty obvious that the ‘Purge Module Cache’ scheduled task was failing every time it ran.  Each time it failed,  it added 3 exceptions to the event log, and another two entries to the ScheduleHistory table.    Eventually so many errors are logged that the PurgeHistoryLog scheduled items start failing as well, which then sets off a snowball effect, the end result of which is an unresponsive server.&lt;/p&gt;  &lt;p&gt;Now, in my particular case I just happen to have a copy of the source code of the particular DNN version I was running (6.0.1, as it happened to be).   So I went into the DotNetNuke.Services.ModuleCache.FileProvider.IsFileExpired source, and took a look at what was there:&lt;/p&gt;  &lt;pre style="font-size:small;font-family:courier-new;"&gt;
        private bool IsFileExpired(string file)
        {
            StreamReader oRead = null;
            try
            {
                oRead = File.OpenText(file);
                DateTime expires = DateTime.Parse(oRead.ReadLine(), CultureInfo.InvariantCulture);
                if (expires &lt; DateTime.UtcNow)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
            finally
            {
                if (oRead != null)
                {
                    oRead.Close();
                }
            }
        }
&lt;/pre&gt;
&lt;p&gt;Straight away, I could see that there was a looming bug in this code - there is no handled exception if the first line of the read file doesn't contain a valid date.&lt;/p&gt;
&lt;p&gt;So, next thing to do was to check the source code of the latest version of DotNetNuke available (6.1.5 at time of writing).&lt;/p&gt;
&lt;pre style="font-size:small;font-family:courier-new;"&gt;
        private bool IsFileExpired(string file)
        {
            StreamReader oRead = null;
            try
            {
                oRead = File.OpenText(file);
                DateTime expires = DateTime.Parse(oRead.ReadLine(), CultureInfo.InvariantCulture);
                if (expires &lt; DateTime.UtcNow)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
	    catch
  	    {
	        //if check expire time failed, then force to expire the cache.
		return true;
	    }
            finally
            {
                if (oRead != null)
                {
                    oRead.Close();
                }
            }
        }
&lt;/pre&gt;
&lt;p&gt;Here we can see that the bug has been fixed - there is now a catch statement to catch an exception if the file doesn't exist, can't be read or doesn't include a valid date/time.
&lt;/p&gt;
&lt;h2&gt;The Easy Fix!&lt;/h2&gt;
&lt;p&gt;Once you have worked out what the problem is, then you no longer need the records in the EventLog or ScheduleHistory tables.  But you can't just delete them - deleting records puts them into the transaction log file of the database, so the deletes could be reversed if necessary to rollback the database.  This is what causes half the problems in the first place.  Instead you need to Truncate the tables.  In Sql Server, 'Truncate' is the command used to delete the rows from the table and don't bother with adding them to the transaction log.  Think of it like deleting something from your computer and not putting it in the recycle bin.&lt;/p&gt;
&lt;p&gt;The commands for this are:&lt;/br&gt;
 truncate table ScheduleHistory&lt;/br&gt;
 truncate table EventLog
&lt;/p&gt;
&lt;p&gt;Now you've identified the error, cleaned out the oversized database tables, but you still haven't fixed the original problem.&lt;/p&gt;
&lt;p&gt;At this point, it's obvious that the correct solution is to upgrade DotNetNuke to the latest version.  So that's what I did.  Problem solved - no more logs filled up with errors, site not crashing, everyone happy.  All that was needed was to delete the app_offline file, and let visitors back onto the site.&lt;/p&gt;

&lt;p&gt;Thanks goes to Antony Slater of &lt;a href="http://www.webpc.net/"&gt;WEBPC&lt;/a&gt; for both the server and the useful help in determining the problem.&lt;/p&gt;

&lt;h2&gt;Summary&lt;/h2&gt;
&lt;p&gt;If you face a problem like this:
&lt;ul&gt;
&lt;li&gt;1. Stop it from happening by restarting your server if possible, and upload an 'app_offline.htm' to your site&lt;/li&gt;
&lt;li&gt;2. Ascertain it if is a schedule / event log oversize table related issue&lt;/li&gt;
&lt;li&gt;3. Assuming (2) above is the correct diagnosis, work out what is filling the log and/or schedule history&lt;/li&gt;
&lt;li&gt;4. Fix whatever that problem is (in this case, fixed by upgrading DNN to the latest version)&lt;/li&gt;
&lt;li&gt;5. Truncate any oversized database tables&lt;/li&gt;
&lt;li&gt;6. Remove the app_offline.htm file again&lt;/li&gt;
&lt;li&gt;7. Closely monitor the server to make sure it's running OK again&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;&lt;a href=http://www.ifinity.com.au/2012/05/23/Diagnosing_a_DotNetNuke_Server_Outage_caused_by_Schedule_Service_Errors&gt;More ...&lt;/a&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6cMhFi1kOEFx_lUVhDKExvWVwwU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6cMhFi1kOEFx_lUVhDKExvWVwwU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6cMhFi1kOEFx_lUVhDKExvWVwwU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6cMhFi1kOEFx_lUVhDKExvWVwwU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/G8EGhZhddCY" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>iFinity.com.au - Bruce's Blog</dc:creator><pubDate>Wed, 23 May 2012 10:46:55 GMT</pubDate><guid isPermaLink="false">d2d77547-0a64-4dc7-9350-f3c90ec64232</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33866/Diagnosing-a-DotNetNuke-Server-Outage-caused-by-Sc</feedburner:origLink></item><item><title>Announce Team ITM America for the #LSCDavis</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/dquoiUY5Su4/Announce-Team-ITM-America-for-the-LSCDavis</link><description>&lt;p&gt;I am proud to announce that we have officially renamed Team Ride With Chris, to &lt;strong&gt;&lt;a href="http://laf.livestrong.org/site/TR?team_id=1581&amp;fr_id=1181&amp;pg=team" target="_blank"&gt;Team ITM America&lt;/a&gt;&lt;/strong&gt;, for our ride at the Team LIVESTRONG Challenge Davis, this June 24th, in Davis, California. You can continue to donate to the individuals on the team &lt;a href="http://laf.livestrong.org/site/TR?team_id=1581&amp;fr_id=1181&amp;pg=team" target="_blank"&gt;via the team page&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;We have been looking for a new team name for a while now, and were approached by ITM Consulting out of Germany about helping to promote their new brand being launched in the United States later this summer, ITM America (&lt;a href="http://www.itm-america.com"&gt;www.itm-america.com&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;ITM has stepped up with a large donation to the team, and has currently put us into the top 20 teams in terms of fundraising for the LIVESTRONG Challenge Davis.&lt;/p&gt;  &lt;p&gt;I have known the folks at ITM for a couple of years now through the &lt;a href="http://www.dotnetnuke.com" target="_blank"&gt;DotNetNuke&lt;/a&gt; ecosystem. They provide a wide array of IT services, including DNN integration with SAP and mobile solutions, custom module development and workflow implementations, and providing security assessments and risk abatement. &lt;/p&gt;  &lt;p&gt;Stay tuned for more information from ITM America on their website, &lt;a href="http://www.itm-america.com"&gt;www.itm-america.com&lt;/a&gt;, while they get things together over there you’ll find a picture of Natalie and myself at a recent bike ride we did in Santa Rosa, California.&lt;/p&gt;  &lt;p&gt;As part of the agreement we will be sporting brand new “kits” for the ride in Davis. Check out these fly threads!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.chrishammond.com/Portals/0/PublishThumbnails/Windows-Live-Writer/Announce-Team-ITM-America-for-the-LSCDav_11CDD/image_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://www.chrishammond.com/Portals/0/PublishThumbnails/Windows-Live-Writer/Announce-Team-ITM-America-for-the-LSCDav_11CDD/image_thumb.png" width="453" height="234" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qGsxyEUUchHrfyum6KxCbQEssCA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qGsxyEUUchHrfyum6KxCbQEssCA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qGsxyEUUchHrfyum6KxCbQEssCA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qGsxyEUUchHrfyum6KxCbQEssCA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/dquoiUY5Su4" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>ChrisHammond.com</dc:creator><pubDate>Tue, 22 May 2012 05:31:59 GMT</pubDate><guid isPermaLink="false">2e27aabe-d750-4a7d-8185-47502006e294</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33865/Announce-Team-ITM-America-for-the-LSCDavis</feedburner:origLink></item><item><title>Engage is heading to Charlotte for Day of DotNetNuke!</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/3YhSlO4wrp0/Engage-is-heading-to-Charlotte-for-Day-of-DotNetNu</link><description>&lt;p&gt;Join Brian, Jason, Oliver, and myself for this year's FREE &lt;a href="http://charlotte.dayofdotnetnuke.com/"&gt;Day of DotNetNuke&lt;/a&gt; in beautiful Charlotte, NC. Enjoy a full day of sessions packed with tips and techniques from DotNetNuke core team members, community members, and industry experts. This year's theme is "DotNetNuke Goes Social," and many of the session tracks will focus on the features of the latest release of the DotNetNuke application, version 6.2.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-Mg2lyhKi6OTsSmYvaGvXvpIuKE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-Mg2lyhKi6OTsSmYvaGvXvpIuKE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-Mg2lyhKi6OTsSmYvaGvXvpIuKE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-Mg2lyhKi6OTsSmYvaGvXvpIuKE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/3YhSlO4wrp0" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>Engage</dc:creator><pubDate>Mon, 21 May 2012 21:26:00 GMT</pubDate><guid isPermaLink="false">8c81de9b-5e51-4cdb-9fc2-778a758da0c2</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33864/Engage-is-heading-to-Charlotte-for-Day-of-DotNetNu</feedburner:origLink></item><item><title>10 Reasons to attend Day of DotNetNuke in Charlotte June 2nd.</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/nsLAzHly5Wc/10-Reasons-to-attend-Day-of-DotNetNuke-in-Charlott</link><description>&lt;p&gt;What was once a community event started by the honorable and great Will Strohl in Tampa Florida a few years ago…DayofDNN has grown into an ongoing series of events where the brightest minds in the DotNetNuke community gather to discuss all things DNN. Here are 10 great reasons to attend this year’s event in Charlotte NC on June 2&lt;sup&gt;nd&lt;/sup&gt; 2012.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/R5ejaxphhHnmU38E3gPilwV0Va0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/R5ejaxphhHnmU38E3gPilwV0Va0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/R5ejaxphhHnmU38E3gPilwV0Va0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/R5ejaxphhHnmU38E3gPilwV0Va0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/nsLAzHly5Wc" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>DotNetNukeFool</dc:creator><pubDate>Mon, 21 May 2012 01:13:22 GMT</pubDate><guid isPermaLink="false">f24d7549-0ac5-4692-a8f3-2033f599bfbf</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33863/10-Reasons-to-attend-Day-of-DotNetNuke-in-Charlott</feedburner:origLink></item><item><title>DotNetNuke - a New Collabrative Service Framework</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/Zphm9TTa4SE/DotNetNuke--a-New-Collabrative-Service-Framework</link><description>&lt;p style="text-align: left"&gt;While I completely agree with the recent focus of DotNetNuke on the Cloud, Mobile and Social aspects of DotNetNuke V6 as a way to increase the adoption of the product, I believe there is an alternative focus that the more technical among us can consider. This “other” focus is centered on strategic changes to the framework of DotNetNuke – the underlying bones.&lt;/p&gt;
&lt;p style="text-align: left"&gt;For many years, DotNetNuke was referred to as the DotNetNuke Framework that supported the creation of a Content Management System. For end-users, the term framework was lost – DotNetNuke &lt;span class="style1"&gt;&lt;strong&gt;was&lt;/strong&gt;&lt;/span&gt; a Content Management System. However, that framework provided a standardized way to build web pages with a defined plug-in infrastructure, security and underlying database. Over the years the framework aspect of the product(s) has been down played.&lt;/p&gt;&lt;a href=http://www.tressleworks.ca/Blog/tabid/73/EntryId/85/DotNetNuke-a-New-Collabrative-Service-Framework.aspx&gt;More...&lt;/a&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TcjP4Am2SVYiFmMI4bcKKwHdnxc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TcjP4Am2SVYiFmMI4bcKKwHdnxc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/TcjP4Am2SVYiFmMI4bcKKwHdnxc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TcjP4Am2SVYiFmMI4bcKKwHdnxc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/Zphm9TTa4SE" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>TressleWorks</dc:creator><pubDate>Wed, 16 May 2012 22:49:00 GMT</pubDate><guid isPermaLink="false">5481c5b7-51e1-4dc4-b9b1-867fd29ac733</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33862/DotNetNuke--a-New-Collabrative-Service-Framework</feedburner:origLink></item><item><title>XMod Pro 4 Easily Embed Data Feeds Using AJAX</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/4ES-SnvHj4A/XMod-Pro-4-Easily-Embed-Data-Feeds-Using-AJAX</link><description>&lt;p&gt;One of the un-sung heroes of the 3.0 release of XMod Pro was the Feeds feature. Sure you could use it to create CSV and Excel spreadsheet downloads for your DotNetNuke site. You could create RSS or customer XML feeds. You could even use a feed to display a printer-friendly HTML page that pops-up outside the DNN skin. Beginning in version 4, we’ve made leveraging feeds easier and more powerful than ever&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Aftri4cqTnWsK4AODYgeqluXnn8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Aftri4cqTnWsK4AODYgeqluXnn8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Aftri4cqTnWsK4AODYgeqluXnn8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Aftri4cqTnWsK4AODYgeqluXnn8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/4ES-SnvHj4A" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>DNNDev_Blog</dc:creator><pubDate>Fri, 11 May 2012 17:24:00 GMT</pubDate><guid isPermaLink="false">dcb6e986-88b8-4e0e-b808-355e90cee1ce</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33861/XMod-Pro-4-Easily-Embed-Data-Feeds-Using-AJAX</feedburner:origLink></item><item><title>Custom Login for your DotNetNuke Site in XMod Pro 4</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/GJjYHhFYjp0/Custom-Login-for-your-DotNetNuke-Site-in-XMod-Pro</link><description>&lt;p&gt;XMod Pro 4 is packed with new features. Among them is a brand new ability to leverage the customizable, highly flexible forms of XMod Pro to create a custom login form for your DNN website.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/sBoSFjbuFkvcT4OxGQKhmHJIJEw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sBoSFjbuFkvcT4OxGQKhmHJIJEw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/sBoSFjbuFkvcT4OxGQKhmHJIJEw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sBoSFjbuFkvcT4OxGQKhmHJIJEw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/GJjYHhFYjp0" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>DNNDev_Blog</dc:creator><pubDate>Wed, 09 May 2012 17:51:00 GMT</pubDate><guid isPermaLink="false">8a91f8be-9c20-42e3-b43c-6d9d42543c2e</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33859/Custom-Login-for-your-DotNetNuke-Site-in-XMod-Pro</feedburner:origLink></item><item><title>Integrate Your Data with DNN Search in XMod Pro 4</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/Cpsl1DxKH30/Integrate-Your-Data-with-DNN-Search-in-XMod-Pro-4</link><description>&lt;p&gt;XMod Pro makes it a pretty painless process to add, edit, delete, and view your data in a DotNetNuke website. However, until XMod Pro 4, you couldn't integrate that data with the built in site-wide search DNN offers. Now you can.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Whc-8WElpm3i7MItbIcuRpzlJn8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Whc-8WElpm3i7MItbIcuRpzlJn8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Whc-8WElpm3i7MItbIcuRpzlJn8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Whc-8WElpm3i7MItbIcuRpzlJn8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/Cpsl1DxKH30" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>DNNDev_Blog</dc:creator><pubDate>Tue, 08 May 2012 16:12:00 GMT</pubDate><guid isPermaLink="false">5a090664-d73f-4761-a2ad-97c925a86acb</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33858/Integrate-Your-Data-with-DNN-Search-in-XMod-Pro-4</feedburner:origLink></item><item><title>WillStrohl.com Moves to Mandeeps Live Blog</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/Jy1zSUNv6d8/WillStrohlcom-Moves-to-Mandeeps-Live-Blog</link><description>&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Writing a Blog" border="0" alt="Writing a Blog" src="http://www.willstrohl.com/Portals/1/LiveBlog/1142/header-writing-blog.png" width="524" height="254" /&gt;&lt;/p&gt;  &lt;p&gt;Since &lt;a href="http://www.willstrohl.com" target="_blank"&gt;WillStrohl.com&lt;/a&gt; has been up and running, its primary function or purpose has been to host my personal blog about many things, but mostly &lt;a href="http://www.dotnetnuke.com/" target="_blank"&gt;DotNetNuke&lt;/a&gt;.  During this time, it has always run on the “core” &lt;a href="http://www.dotnetnuke.com/Community/Extensions-Forge/view/ProjectDetail/project/dnnblog.aspx" target="_blank"&gt;Blog Module&lt;/a&gt;.  Say what you want about the core blog module, but it has always been a very functional way to build and maintain a blog presence on DNN.  There has always been a way to accomplish anything you wanted using it, whether it was adding other modules to the page, adjusting the design, or simply recompiling the module with any adjustments I’ve needed.  I’ve traditionally had time to do this, all with the intention of helping to make the blog module a better module.  Though, I recently changed blog modules, and that’s what this article is about.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;u&gt;Disclaimer&lt;/u&gt;:  First, I work for &lt;a href="http://www.dotnetnuke.com/" target="_blank"&gt;DotNetNuke&lt;/a&gt; Corporation, if you didn’t already know.  So, even though I have it posted everywhere, I should mention that this blog entry contains comments and opinions that are my own, and have no endorsement whatsoever from DNN Corp.  Second, I am doing a thorough write-up of my experience with a specific blog module.  While I feel that I have tried to not make this come off as an advertisement, I want you to know outright that I am not advertising for them.  &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The “core” blog module has had a very exciting, long, fun, and rough past.  At some points it was simply misunderstood.  Other times it was missing features.  And yet other times, it was laying dormant, waiting someone to give it some long overdue TLC (&lt;em&gt;tender loving care&lt;/em&gt;).  Such is the nature of a purely open source project.  It’s always at the mercy of those that hopefully have the necessary time needed to keep it updated.  I’ve always been very patient with the module myself because I love doing things with “core” modules first before going to the ecosystem.  After all, how else can the project know where and how to proceed if people are not using it and offering feedback, requests, fixes, code, and more?&lt;/p&gt;  &lt;p&gt;Well, these days I have much less time to dedicate to helping that project than I used to.  I mean, I already run or contribute to &lt;a href="http://www.codeplex.com/site/users/view/hismightiness" target="_blank"&gt;more than 15 other projects on CodePlex&lt;/a&gt;.  This entire time I was basically working on a fork of the blog module anyway, since I had some specific requirements (or ideas) about how I best wanted my blog to do things on my site.  After all, this is one of the many benefits of using an open source module to begin with.  Unfortunately for the module itself, I needed to take that off of my plate, so the search for other blog modules began…&lt;/p&gt;  &lt;h2&gt;The Blog Selection Process&lt;/h2&gt;  &lt;p&gt;The &lt;a href="http://www.dotnetnuke.com/" target="_blank"&gt;DotNetNuke&lt;/a&gt; ecosystem has several modules that are either built to support blogging, or can be configured to support a blog.  Whether it comes from the &lt;a href="http://store.dotnetnuke.com/?r=f8bbcdac65f347a39f0d" target="_blank"&gt;Store&lt;/a&gt; or the &lt;a href="http://forge.dotnetnuke.com" target="_blank"&gt;Forge&lt;/a&gt;, you’re given many quality options.  Among them are some really great choices, and even some very flexible ones that aren’t a blog out-of-the-box, but can be after some configuration (some requiring more configuration than others).  &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.mandeeps.com" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px 0px 5px 5px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Mandeeps Software" border="0" alt="Mandeeps Software" align="right" src="http://www.willstrohl.com/Portals/1/LiveBlog/1142/mandeeps-logo-tile.jpg" width="180" height="179" /&gt;&lt;/a&gt;After a bit of research, I decided to use &lt;a href="http://store.dotnetnuke.com/home/product-details/live-blog-v140/r/f8bbcdac65f347a39f0d" target="_blank"&gt;Live Blog&lt;/a&gt; by &lt;a href="http://www.mandeeps.com/" target="_blank"&gt;Mandeeps&lt;/a&gt;.  Mandeep Singh heads up &lt;a href="http://www.mandeeps.com/" target="_blank"&gt;Mandeeps&lt;/a&gt;, has long been in the &lt;a href="http://www.dotnetnuke.com/" target="_blank"&gt;DotNetNuke&lt;/a&gt; community, and their solutions have always had a positive reputation during this time.  All of their modules have regular releases and very responsive support.  I tested this through the &lt;a href="http://store.dotnetnuke.com/?r=f8bbcdac65f347a39f0d" target="_blank"&gt;Store&lt;/a&gt; before moving forward.  This was the first step to feeling better about choosing &lt;a href="http://store.dotnetnuke.com/home/product-details/live-blog-v140/r/f8bbcdac65f347a39f0d" target="_blank"&gt;Live Blog&lt;/a&gt; as my solution.  &lt;/p&gt;  &lt;p&gt;Next, with very few exceptions, all of his extensions that have been reviewed continue to have 5 star reviews.  Whether I looked there, on twitter, or in the DNN forums, &lt;a href="http://www.mandeeps.com/" target="_blank"&gt;Mandeeps&lt;/a&gt; overall has had great feedback from those that use their modules.&lt;/p&gt;  &lt;p&gt;The final piece that really sealed the deal was that it seemed that no matter which blog solution I was coming from, &lt;a href="http://store.dotnetnuke.com/home/product-details/live-blog-v140/r/f8bbcdac65f347a39f0d" target="_blank"&gt;Live Blog&lt;/a&gt; had the hardest part of the migration path already solved for me.  It would simply import all of my blog posts and comments for me, maintaining the original integrity of by blog with nearly no effort at all.  I tested this several times in a staging environment, and it always worked great!  This alone is highly impressive.&lt;/p&gt;  &lt;p&gt;The three components mentioned above were the critical first steps in my selection process.  &lt;a href="http://www.mandeeps.com/" target="_blank"&gt;Mandeeps&lt;/a&gt; &lt;a href="http://store.dotnetnuke.com/home/product-details/live-blog-v140/r/f8bbcdac65f347a39f0d" target="_blank"&gt;Live Blog&lt;/a&gt; had very responsive support, great reputation &amp; reviews, and it allowed me to easily migrate my content to it.&lt;/p&gt;  &lt;h2&gt;My Feature Requirements&lt;/h2&gt;  &lt;p&gt;Not every blog is created equal.  Although many blogs are created or used for the same general purpose, they all have their own agendas and goals.  My main goal is SEO.  I want to make sure that by blog entries can be found by people, regardless to whether those people were coming from Google, Bing, or {Gasp!} Yahoo.  Yes.  Yahoo is still around.  ;)&lt;/p&gt;  &lt;p&gt;Since my main goal was SEO, I needed a solution that practiced some very specific key things in order to not hurt whatever goodness my SEO had already attained.  I needed H1’s and H2’s in the right places, great looking page titles and URLs, categories with friendly URLs, site maps, and so on.  &lt;a href="http://store.dotnetnuke.com/home/product-details/live-blog-v140/r/f8bbcdac65f347a39f0d" target="_blank"&gt;Live Blog&lt;/a&gt; has all of these features and more.  &lt;/p&gt;  &lt;p&gt;Comments are important to any blog.  I have wanted to transition to use &lt;a href="http://disqus.com/" target="_blank"&gt;Disqus&lt;/a&gt; for my blog comments for a long time because their comment engine is unmatched in capabilities and stickiness.  Unfortunately, I’ve either been too busy or too lazy to write the code to export my comments using their WP standard.  There were two great things about &lt;a href="http://store.dotnetnuke.com/home/product-details/live-blog-v140/r/f8bbcdac65f347a39f0d" target="_blank"&gt;Live Blog&lt;/a&gt; in this area…  First, it already has them implemented as a forward only feature.  However, a very recent release also allows you to export your existing comments to &lt;a href="http://disqus.com/" target="_blank"&gt;Disqus&lt;/a&gt;, allowing you to choose to use their comment engine at any time!  Suh-weet!&lt;/p&gt;  &lt;p&gt;I also track my own feed status through Feedburner.  I have really grown to like this service and didn’t want to move away from it for my RSS links.  &lt;a href="http://store.dotnetnuke.com/home/product-details/live-blog-v140/r/f8bbcdac65f347a39f0d" target="_blank"&gt;Live Blog&lt;/a&gt; doesn’t get in the way here at all.&lt;/p&gt;  &lt;p&gt;The final requirement I had was to be able to make the new blog fit into my own design.  Luckily, my design isn’t terribly complicated.  Regardless though, the template feature in &lt;a href="http://store.dotnetnuke.com/home/product-details/live-blog-v140/r/f8bbcdac65f347a39f0d" target="_blank"&gt;Live Blog&lt;/a&gt; makes generating your own template to suit your needs incredibly easy.  &lt;/p&gt;  &lt;h2&gt;Any Bells or Whistles?&lt;/h2&gt;  &lt;p&gt;If you’re not familiar with the term “bells and whistles,” it is simply a slang way of talking about really cool add-ons or features.  &lt;a href="http://store.dotnetnuke.com/home/product-details/live-blog-v140/r/f8bbcdac65f347a39f0d" target="_blank"&gt;Live Blog&lt;/a&gt; has plenty of them.  &lt;/p&gt;  &lt;p&gt;Beyond what I’ve already mentioned, you get some really cool things like deep &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=8621" target="_blank"&gt;Windows Live Writer&lt;/a&gt; integration.  You can choose your own URL structure for each new blog post.  It has an easy to use control panel-style settings view.  It will automatically “ping” some common ping services for you such as blog search and feedburner.  You can simply paste in social bookmark code from sites like &lt;a href="http://www.addthis.com/" target="_blank"&gt;AddThis&lt;/a&gt; or &lt;a href="http://sharethis.com/" target="_blank"&gt;ShareThis&lt;/a&gt;.  It will also allow you to automatically post new blog entries to twitter, but I have to admit that I haven’t tried using this feature yet.&lt;/p&gt;  &lt;p&gt;I am sure that you will find some other things to be your own bells and whistles, but these few things are what stood out to me.&lt;/p&gt;  &lt;h2&gt;Is It Missing Anything?&lt;/h2&gt;  &lt;p&gt;Unfortunately, like with many 3rd party extensions, &lt;a href="http://store.dotnetnuke.com/home/product-details/live-blog-v140/r/f8bbcdac65f347a39f0d" target="_blank"&gt;Live Blog&lt;/a&gt; has the need to fill the use case requirements of a large range of customers, including customers on many different versions of &lt;a href="http://www.dotnetnuke.com/" target="_blank"&gt;DotNetNuke&lt;/a&gt;.  As a result, this prevents &lt;a href="http://store.dotnetnuke.com/home/product-details/live-blog-v140/r/f8bbcdac65f347a39f0d" target="_blank"&gt;Live Blog&lt;/a&gt; from implementing newer DNN features and APIs, such as editing pop-ups, client dependency framework, integration with the taxonomy API, cloud folder providers, mobile-friendly displays, and more.  This is not a deal-breaker (yet), but it will likely be frustrating for me moving forward since I always like to be on the latest version of &lt;a href="http://www.dotnetnuke.com/" target="_blank"&gt;DotNetNuke&lt;/a&gt;.&lt;/p&gt;  &lt;h2&gt;Did I Have Any Problems?&lt;/h2&gt;  &lt;p&gt;First, I would like you to know that I tested this module thoroughly in a staging environment before deploying this on my own website.  And even then, I made sure to retest everything since I was on my production website.  I highly recommend that you do this as well.  You never know what might creep up as a problem if you don’t.  I was able to do this side-by-side on my production site with the core blog module still actively in use.  However, in order to test on my own site and to mitigate any need to re-sync the data, I made sure to cease any blog posts during the testing phase, and I turned off comments during this time frame as well.  This made the migration path one that only needed to be followed once.  I wouldn’t categorize this as a problem, but you definitely need to be aware of this as well.  Otherwise, you will need to manually import and new blog posts or comments when you do the same thing.&lt;/p&gt;  &lt;p&gt;There was one specific problem.  Unfortunately, the URL structure in &lt;a href="http://store.dotnetnuke.com/home/product-details/live-blog-v140/r/f8bbcdac65f347a39f0d" target="_blank"&gt;Live Blog&lt;/a&gt; did not match that of my original URLs.  This is not an uncommon issue when switching module vendors or creating a new section on your website.  In this case, the original URLs used EntryId to denote the blog id number used to generate the blog post page dynamically in DNN.  &lt;a href="http://store.dotnetnuke.com/home/product-details/live-blog-v140/r/f8bbcdac65f347a39f0d" target="_blank"&gt;Live Blog&lt;/a&gt; does this same thing, but uses PostId instead.  Unfortunately, there is no way to change this in &lt;a href="http://store.dotnetnuke.com/home/product-details/live-blog-v140/r/f8bbcdac65f347a39f0d" target="_blank"&gt;Live Blog&lt;/a&gt;.  Along the same lines, the imported blog content did not respect the original ID numbers.  So a blog post that was previously 123 could be another value like 119 after import.  Finally, the URLs that are generated by &lt;a href="http://store.dotnetnuke.com/home/product-details/live-blog-v140/r/f8bbcdac65f347a39f0d" target="_blank"&gt;Live Blog&lt;/a&gt; follow a different set of rules when created.  Basically, this could result in a scenario where your new URLs are essentially very different from their original URLs.&lt;/p&gt;  &lt;p&gt;Initially, I looked to IFinity’s &lt;a href="http://store.dotnetnuke.com/home/product-details/ifinity-url-master-25---total-dotnetnuke-url-solution/r/f8bbcdac65f347a39f0d" target="_blank"&gt;URL Master&lt;/a&gt; to fix this since I use this on my site, but without a bit of development by &lt;a href="http://www.mandeeps.com/" target="_blank"&gt;Mandeeps&lt;/a&gt;, a solution wasn’t available here.  However, if you do have a vendor ready and willing to do so, Ifinity has a &lt;a href="http://www.ifinity.com.au/2011/10/26/Build_your_own_Custom_DotNetNuke_Module_Provider_and_start_creating_the_Friendly_Urls_you_need_for_your_SEO_strategy" target="_blank"&gt;module provider solution&lt;/a&gt; that allows you as a module vendor to map and generate URLs on sites that use &lt;a href="http://store.dotnetnuke.com/home/product-details/ifinity-url-master-25---total-dotnetnuke-url-solution/r/f8bbcdac65f347a39f0d" target="_blank"&gt;URL Master&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://dnnredirect.codeplex.com/" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Simple Redirect Module for DotNetNuke" border="0" alt="Simple Redirect Module for DotNetNuke" align="right" src="http://www.willstrohl.com/Portals/1/LiveBlog/1142/301-redirect.jpg" width="240" height="240" /&gt;&lt;/a&gt;At the end of the day, I couldn’t use a built-in or existing feature to re-map URLs to ensure that when search engines visited or visitors clicked on existing inbound links, the visitor would not only get the content they were looking for, but they would also get the SEO-friendly HTTP 301 redirect.  So, in order to fulfill this requirement, I ended up writing a slick little module called &lt;a href="http://dnnredirect.codeplex.com/" target="_blank"&gt;Simple Redirect&lt;/a&gt;.  It’s sole purpose in life was what you just read – and, to keep things simple in doing so.&lt;/p&gt;  &lt;h2&gt;What About the Future?&lt;/h2&gt;  &lt;p&gt;One of the things I am going to miss deeply is the ability to immediately support the latest and greatest features in &lt;a href="http://www.dotnetnuke.com/" target="_blank"&gt;DotNetNuke&lt;/a&gt; for the reasons mentioned above.  However, the convenience of being able to not need to maintain a separate code base right now is too great to ignore.  &lt;a href="http://www.mandeeps.com/" target="_blank"&gt;Mandeeps&lt;/a&gt; has been incredibly responsive to feature requests so far though.  &lt;/p&gt;  &lt;h2&gt;Summary&lt;/h2&gt;  &lt;p&gt;So that’s it.  I wanted to have a supported blogging solution that didn’t require me to have a forked and self-maintained version of the code base to achieve my blogging platform requirements.  I also wanted to see active releases that incorporated more and more features without the need for me to merge my codebase.  In looking for possible blog solution providers that could give my site what it needed and more, I found and moved forward with &lt;a href="http://store.dotnetnuke.com/home/product-details/live-blog-v140/r/f8bbcdac65f347a39f0d" target="_blank"&gt;Live Blog&lt;/a&gt;.  It was able to meet all of my needs, has great support, actively releases, and is extremely reactive to feedback.  At this point, I couldn’t be any happier with my chosen path.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WillStrohl-DotNetNuke/~4/dS4OiXobiP8" height="1" width="1"/&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/a4jSL9xY3P1_LpYvkDjdWhQG6R8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a4jSL9xY3P1_LpYvkDjdWhQG6R8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/a4jSL9xY3P1_LpYvkDjdWhQG6R8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/a4jSL9xY3P1_LpYvkDjdWhQG6R8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/Jy1zSUNv6d8" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>The Mighty Blog</dc:creator><pubDate>Mon, 07 May 2012 16:32:26 GMT</pubDate><guid isPermaLink="false">4ca383c2-e15e-4db2-b64f-3865b3633cd2</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33857/WillStrohlcom-Moves-to-Mandeeps-Live-Blog</feedburner:origLink></item><item><title>Are You jQuery Ready For This?</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/vtnI88BKSBk/Are-You-jQuery-Ready-For-This</link><description>&lt;p&gt;XMod Pro 4 leverages jQuery in myriad ways. Some are flashy, but this small feature is so useful, I wonder why we didn't add it earlier&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/PrarrNQ11L4XfG7mT3r92DSUN6E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PrarrNQ11L4XfG7mT3r92DSUN6E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/PrarrNQ11L4XfG7mT3r92DSUN6E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PrarrNQ11L4XfG7mT3r92DSUN6E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/vtnI88BKSBk" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>DNNDev_Blog</dc:creator><pubDate>Mon, 07 May 2012 15:48:00 GMT</pubDate><guid isPermaLink="false">769a31d1-664b-415b-8211-15fc5f2ee9b7</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33856/Are-You-jQuery-Ready-For-This</feedburner:origLink></item><item><title>Development and Test DotNetNuke Installations and Search Engines</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/0tFncS3fxes/Development-and-Test-DotNetNuke-Installations-and</link><description>It is quite often that when working on a new version of a site that you will have a development, test, upgrade copy of the site that might be around for a while.  It is also possible that if you are working for a third-party that you might stage client sites on your server for a period of time before go-live.  At first glance this all seems common place and not something that you would be concerned about.  However, that is not the case.  Search engines have become overly aggressive in indexing sites, including those that have no direct back links but have been e-mailed to individuals or similar processes. In this post I'll discuss some important considerations when working with these "non-production" installations to help you ensure that search engines will NOT index the content and cause confusion.
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MvU0dH5NpoQ1tlGEQUM3i85Omgg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MvU0dH5NpoQ1tlGEQUM3i85Omgg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/MvU0dH5NpoQ1tlGEQUM3i85Omgg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MvU0dH5NpoQ1tlGEQUM3i85Omgg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/0tFncS3fxes" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>Mitchel Sellers DotNetNuke Blog</dc:creator><pubDate>Mon, 07 May 2012 06:35:00 GMT</pubDate><guid isPermaLink="false">8bafea48-1637-4adb-9f40-959106406d56</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33855/Development-and-Test-DotNetNuke-Installations-and</feedburner:origLink></item><item><title>DotNetNuke Login and Auto Complete - How to Cope</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/QZNg_bAA-F0/DotNetNuke-Login-and-Auto-Complete--How-to-Cope</link><description>Recently I have been getting a lot of questions regarding the DotNetNuke login and why when you go to login that "auto complete" is disabled on the username/password fields.  The typical follow-up question to that is "how can I change that behavior".  So after answering this question individually around 5-6 times I though it would be best to get this out here, at least my opinion on the issue.
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/M-R8_lw2BDHQrxi1XMGNZjTV5nA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/M-R8_lw2BDHQrxi1XMGNZjTV5nA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/M-R8_lw2BDHQrxi1XMGNZjTV5nA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/M-R8_lw2BDHQrxi1XMGNZjTV5nA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/QZNg_bAA-F0" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>Mitchel Sellers DotNetNuke Blog</dc:creator><pubDate>Fri, 04 May 2012 18:31:00 GMT</pubDate><guid isPermaLink="false">211a2fc7-6858-4f52-9737-0f7ef4902f0a</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33853/DotNetNuke-Login-and-Auto-Complete--How-to-Cope</feedburner:origLink></item><item><title>Proudly Supporting the Charlotte Day of DotNetNuke</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/ZXYMKjt6ciE/Proudly-Supporting-the-Charlotte-Day-of-DotNetNuke</link><description>&lt;p&gt;&lt;a href="http://dnndev.com/Portals/4/Blog/Files/3/187/Windows-Live-Writer-d6434447fa67_DAB6-DoDNN_Banner_Med_4.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 20px 20px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="DoDNN_Banner_Med" border="0" alt="DoDNN_Banner_Med" align="left" src="http://www.dnndev.com/Portals/4/Blog/Files/3/187/Windows-Live-Writer-d6434447fa67_DAB6-DoDNN_Banner_Med_thumb_1.jpg" width="244" height="189" /&gt;&lt;/a&gt;On June 2nd, DotNetNuke Corp. will be releasing DNN 6.2. I doubt the numerology is lost on anyone. This year, they've chosen to announce this new release at the &lt;a href="http://charlotte.dayofdotnetnuke.com" target="_blank"&gt;Day of DotNetNuke&lt;/a&gt; (DoDNN) being hosted by the Charlotte DotNetNuke User Group (QCDUG).&lt;/p&gt;  &lt;p&gt;It's not surprising the &lt;a href="http://www.qcdug.com" target="_blank"&gt;QCDUG&lt;/a&gt; is hosting the event this year. They're group is really gaining traction in the area and brings a lot of positive energy to the DotNetNuke community.&lt;/p&gt;  &lt;p&gt;If you've never been to a DoDNN and you're anywhere near Charlotte, NC, you should definitely go... free sessions, free networking, and free food! It's a fabulous deal. Of course, the only way these events can be free is if they find sponsors.&lt;/p&gt;  &lt;p&gt;I'm happy to announce the DNNDev.com is proud to support the QCDUG and DotNetNuke by sponsoring the Day of DotNetNuke. So, check it out and eat some of the food we helped pay for :)&lt;/p&gt;&lt;br /&gt;&lt;a href=http://www.dnndev.com/Blog/tabid/347/EntryId/187/Proudly-Supporting-the-Charlotte-Day-of-DotNetNuke.aspx&gt;More ...&lt;/a&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3ghIXcqLQJ_2LeswYkQZVnkTbzk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3ghIXcqLQJ_2LeswYkQZVnkTbzk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3ghIXcqLQJ_2LeswYkQZVnkTbzk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3ghIXcqLQJ_2LeswYkQZVnkTbzk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/ZXYMKjt6ciE" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>DNNDev_Blog</dc:creator><pubDate>Fri, 04 May 2012 13:48:00 GMT</pubDate><guid isPermaLink="false">b6170488-cafa-497b-ad78-057f2211adeb</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33852/Proudly-Supporting-the-Charlotte-Day-of-DotNetNuke</feedburner:origLink></item><item><title>XMod Pro 4 Adding and Removing Users from DNN Roles</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/pPg0p9Ex4hQ/XMod-Pro-4-Adding-and-Removing-Users-from-DNN-Role</link><description>&lt;p&gt;Since there have been so many additions in the latest major release of this best-selling form application builder for DotNetNuke, we thought it would be best to cover them in serial fashion. In this series of blog posts we’re covering the major new features in XMod Pro 4. In this installment let’s look at the new form Actions: AddToRoles and RemoveFromRoles which allow you to and and remove users from DotNetNuke security roles.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0gFkg-l-KxiMd-XJ6YegV6u9XP4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0gFkg-l-KxiMd-XJ6YegV6u9XP4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0gFkg-l-KxiMd-XJ6YegV6u9XP4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0gFkg-l-KxiMd-XJ6YegV6u9XP4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/pPg0p9Ex4hQ" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>DNNDev_Blog</dc:creator><pubDate>Thu, 03 May 2012 13:01:00 GMT</pubDate><guid isPermaLink="false">5ca7013e-e77e-44de-beea-eb3c1ee8da23</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33851/XMod-Pro-4-Adding-and-Removing-Users-from-DNN-Role</feedburner:origLink></item><item><title>XMod Pro 4 Let There Be Color and Designers, Syntax Highlighting and Code Completion</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/sDowpRojfxU/XMod-Pro-4-Let-There-Be-Color-and-Designers-Synta</link><description>&lt;p&gt;Since there have been so many additions in the latest major release of this best-selling form application builder for DotNetNuke, we thought it would be best to cover them in serial fashion. In this series of blog posts we’re covering the major new features in XMod Pro 4. In this installment let’s look at the brand new code editor.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/WqgRaQKhJr9n4tQgxjHAlG9HkjM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WqgRaQKhJr9n4tQgxjHAlG9HkjM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/WqgRaQKhJr9n4tQgxjHAlG9HkjM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/WqgRaQKhJr9n4tQgxjHAlG9HkjM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/sDowpRojfxU" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>DNNDev_Blog</dc:creator><pubDate>Wed, 02 May 2012 15:07:00 GMT</pubDate><guid isPermaLink="false">85bc80ff-db0d-4be4-ae8e-ce0cb6e6a3d7</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33850/XMod-Pro-4-Let-There-Be-Color-and-Designers-Synta</feedburner:origLink></item><item><title>XModPro 4 - Our Biggest Update Ever</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/zS6UWtG2ex4/XModPro-4--Our-Biggest-Update-Ever</link><description>&lt;p&gt;It's taken us a little longer than normal to release version 4.0, but we think you'll agree it was well worth the wait. We added nearly 3 times the features to version 4 than we did to version 3.0. Read on for the scoop on the latest and greatest release of XMod Pro yet.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/A0H7vvg5DAvRgyn994LE4WOj0LQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/A0H7vvg5DAvRgyn994LE4WOj0LQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/A0H7vvg5DAvRgyn994LE4WOj0LQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/A0H7vvg5DAvRgyn994LE4WOj0LQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/zS6UWtG2ex4" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>DNNDev_Blog</dc:creator><pubDate>Tue, 01 May 2012 18:54:00 GMT</pubDate><guid isPermaLink="false">2eb8645a-8598-4afb-8477-f982bee5d16c</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33849/XModPro-4--Our-Biggest-Update-Ever</feedburner:origLink></item><item><title>Licensing Made Easier</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/wwXqgwhFQss/Licensing-Made-Easier</link><description>&lt;p&gt;With the release of XMod Pro version 4.0, we've modified our licensing to make it simpler and more straightforward.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hBJx0LM_YrqJlNuK1y2iUGw1J5E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hBJx0LM_YrqJlNuK1y2iUGw1J5E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hBJx0LM_YrqJlNuK1y2iUGw1J5E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hBJx0LM_YrqJlNuK1y2iUGw1J5E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/wwXqgwhFQss" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>DNNDev_Blog</dc:creator><pubDate>Tue, 01 May 2012 18:49:00 GMT</pubDate><guid isPermaLink="false">4bfceaef-b47d-4c3b-96ac-f228d364d2c9</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33848/Licensing-Made-Easier</feedburner:origLink></item><item><title>Forge, Codeplex and Friendly Urls</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/8HsUdpxyL70/Forge-Codeplex-and-Friendly-Urls</link><description>&lt;p&gt;Somehow I got a rumor mill going.   As most things with unexpected consequences, this caught me a bit by surprise.&lt;/p&gt;  &lt;p&gt;Let’s get the back story : last year, while at the DotNetNuke Conference in Orlando, Scott Wilhite and I had a little chat about the DotNetNuke Forge.  As the chief of the DotNetNuke community, it’s his job to make sure the community has the best tools at it’s disposal.   One of those is the DotNetNuke Forge.  And it’s where any open source extension for DotNetNuke should live.&lt;/p&gt;  &lt;p&gt;I’ve written a lot of bits and pieces for DotNetNuke in the last half-decade or so since I started doing this – some are trash-can fodder, some are ‘for my eyes only’, some are good enough to give to the community, and some are commercial products that keep my family fed and housed.&lt;/p&gt;  &lt;p&gt;Most of the stuff in the third category was sitting on my website as downloadable zip files.   It really wasn’t the right place for it.  Scott asked me when I was going to start putting stuff on the DotNetNuke Forge.  It was a good question, and I don’t remember what my answer was, but I mentally lodged myself a background task of ‘put stuff on Forge’.  This gives back to the community and also simplifies management of these projects for me – everybody wins.&lt;/p&gt;  &lt;p&gt;So, whenever there is a spare bit of time and I feel like doing something a bit different, I take one of my free downloadable apps, package it up properly, and create a DotNetNuke Forge project.  &lt;/p&gt;  &lt;p&gt;I’ve already done this for two other projects:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.dotnetnuke.com/Community/Extensions-Forge/view/ProjectDetail/project/cachemaster.aspx"&gt;iFinity Cache Master for DotNetNuke&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.dotnetnuke.com/Community/Extensions-Forge/view/ProjectDetail/id/928.aspx"&gt;DotNetNuke SkinObjectsEx&lt;/a&gt;      &lt;br /&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Coming up to last week, I decided it was time to do this for the iFinity Friendly Url Provider.   This piece of code was what got me noticed in the DotNetNuke chattering classes (ie, the Forums) and what directly led to the launch of the Url Master product (which was a fork of this code – now drastically different, though).    It still is used very widely by many different people.  Though basic, it has got enough improvements over the standard DotNetNuke Url Rewriter that it is still quite popular.   And from time to time people find bugs in the source code and send me fixes, which I try and incorporate in and release a new version.   It’s always been open source and free to download.&lt;/p&gt;  &lt;p&gt;So last week I finally ticked this one off my list.  I took a couple of the contributions from people, merged them in, and then created a new DotNetNuke Forge project &lt;a href="http://www.dotnetnuke.com/Community/Extensions-Forge/view/ProjectDetail/project/friendlyurlprovider.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I think that’s when some misunderstandings got going.   I think some people got the idea that I had decided to open source the Url Master module, then head off to the hills and herd goats.&lt;/p&gt;  &lt;p&gt;Well, as they say in the classics, reports of my demise are greatly exaggerated.  I’m still working madly on the Url Master module code to add features and fix bugs.   I’m coming up with some exciting new modules.   I’m still feeding and housing the family.&lt;/p&gt;  &lt;p&gt;I’ve just moved the original iFinity Friendly Url Provider code from my server to the codeplex server, so more DotNetNuke community members can find it, and where other community members can get involved in reporting issues and fixing bugs.  It was always open source – half of the code was derived from DNN, which is under BSD, so it’s under a BSD licence.  It’s just a got new home, that’s all.&lt;/p&gt;  &lt;p&gt;There’s more to come, as well.  I’ll keep looking through the code basement to find some interesting things to polish up and put on display.&lt;/p&gt;&lt;br /&gt;&lt;a href=http://www.ifinity.com.au/2012/04/30/Forge__Codeplex_and_Friendly_Urls&gt;More ...&lt;/a&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gi_MAQhrM5E5GMC4oAPEjcnZ1nM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gi_MAQhrM5E5GMC4oAPEjcnZ1nM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gi_MAQhrM5E5GMC4oAPEjcnZ1nM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gi_MAQhrM5E5GMC4oAPEjcnZ1nM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/8HsUdpxyL70" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>iFinity.com.au - Bruce's Blog</dc:creator><pubDate>Mon, 30 Apr 2012 02:39:46 GMT</pubDate><guid isPermaLink="false">c46050ef-c7f9-4447-99cd-06e8e7b658fb</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33847/Forge-Codeplex-and-Friendly-Urls</feedburner:origLink></item><item><title>You are going to use a CMS for that startup, aren't you?</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/BVjuFObgoL4/You-are-going-to-use-a-CMS-for-that-startup-aren</link><description>&lt;p&gt;My blogging has been a bit patchy in this first quarter of 2012, as has my open-source output.  The reason for this is that I have been involved and working on a new startup project that should hopefully launch soon and prove to be a big success.&lt;/p&gt;  &lt;p&gt;The investors behind the project hadn’t done a web startup before, so they obtained the advice of the first person they found. I don’t really know the history behind this choice, and it scarcely matters now anyway. By the time I arrived, technology choices were in granite and the runway end was fast approaching. &lt;/p&gt;  &lt;p&gt;Upon arrival I was disappointed to find out that this was what I call a ‘scratch build’.  The first person on the project literally went into Visual Studio and said ‘New Project…’.&lt;/p&gt;  &lt;p&gt;The first question I asked was ‘did the original person who chose this technology consider using a CMS of any type?’.  The answer was ‘Yes, but it was ruled out’.  &lt;/p&gt;  &lt;p&gt;Again, there is little value in turning over old rocks when there is a project to finish and the answers make no difference to the outcome of that project.  So I have left it at that.&lt;/p&gt;  &lt;p&gt;But I wanted to do a little analysis of this in case the topic ever comes up again with anyone else.&lt;/p&gt;  &lt;h2&gt;The true cost of scratch building&lt;/h2&gt;  &lt;p&gt;When you get to see the invoices for time that get paid to developers for building the different components of a fully functional subscription-based website, you get a good insight into how much ‘scratch building’ costs.&lt;/p&gt;  &lt;p&gt;What I have done is go through and develop estimates of how much time has been spent developing different subsystems.  Note that none of these subsystems are the actual bulk of the work.  They are just the peripheral bits and pieces that go into the bulk of sites of this type.&lt;/p&gt;  &lt;p&gt;As my personal CMS of choice is DotNetNuke, I’ll consider some of these features alongside their DotNetNuke equivalent:&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="10" width="600"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="223"&gt;&lt;strong&gt;Built Feature&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="261"&gt;&lt;strong&gt;DotNetNuke &lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="242"&gt;&lt;strong&gt;Difference / Notes&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="223"&gt;&lt;strong&gt;&lt;u&gt;Membership System*&lt;/u&gt;&lt;/strong&gt;(login,register,forgotten email, etc)          &lt;br /&gt;          &lt;br /&gt;Approx Time Taken:          &lt;br /&gt;60 hours of development time, email templates, custom mail sending code, skinning&lt;/td&gt;        &lt;td valign="top" width="261"&gt;         &lt;br /&gt;Built-in.           &lt;br /&gt;Skinnable.          &lt;br /&gt;Templated Emails.          &lt;br /&gt;          &lt;br /&gt;Approx Time needed:          &lt;br /&gt;8 hours of installing and editing emails&lt;/td&gt;        &lt;td valign="top" width="242"&gt;Additionally, DotNetNuke has option of custom login modules.         &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;52 hours longer          &lt;br /&gt;Probably still more bugs to find.  May yet require Facebook login integration or similar.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="223"&gt;&lt;strong&gt;&lt;u&gt;Scheduling System&lt;/u&gt;&lt;/strong&gt;          &lt;br /&gt;          &lt;br /&gt;Service to run scheduled tasks in the application.          &lt;br /&gt;          &lt;br /&gt;Approx Time Taken:          &lt;br /&gt;15 hours of development for a Windows scheduled service, configuration to make scheduled payments, send emails, etc&lt;/td&gt;        &lt;td valign="top" width="261"&gt;         &lt;br /&gt;          &lt;br /&gt;Built-in.          &lt;br /&gt;          &lt;br /&gt;Includes reporting and control.          &lt;br /&gt;          &lt;br /&gt;Approx time needed:           &lt;br /&gt;0 hours&lt;/td&gt;        &lt;td valign="top" width="242"&gt;The DotNetNuke scheduler doesn’t require any extra software to be installed on the webserver.         &lt;br /&gt;          &lt;br /&gt;15 hours longer&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="223"&gt;&lt;u&gt;&lt;strong&gt;Event Log&lt;/strong&gt;&lt;/u&gt;          &lt;br /&gt;          &lt;br /&gt;Implementation of text-based server log using open-source component.          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;Approx Time Taken:          &lt;br /&gt;10 hours of implementation&lt;/td&gt;        &lt;td valign="top" width="261"&gt;         &lt;br /&gt;          &lt;br /&gt;Built-in.  &lt;br /&gt;          &lt;br /&gt;Easily extended for custom applications through creating new event types.          &lt;br /&gt;          &lt;br /&gt;Nothing to build, all exceptions captured and logged, custom logging done in one line.&lt;/td&gt;        &lt;td valign="top" width="242"&gt;The DotNetNuke event log includes the ability to view remotely through the admin pages of the site, and can be filtered for different types of events.         &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;10 hours longer          &lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="223"&gt;&lt;u&gt;&lt;strong&gt;Design&lt;/strong&gt;&lt;/u&gt;          &lt;br /&gt;          &lt;br /&gt;Implementation of MasterPages design.  Conversion of designer-specified Html into .aspx pages.          &lt;br /&gt;          &lt;br /&gt;Approx Time Taken           &lt;br /&gt;(excluding designer)          &lt;br /&gt;40 hours.&lt;/td&gt;        &lt;td valign="top" width="261"&gt;         &lt;br /&gt;          &lt;br /&gt;Install skin through menu and apply to pages as needed.  Completely separate from code.          &lt;br /&gt;          &lt;br /&gt;Approx time needed          &lt;br /&gt;8 hours (to refine and apply to different pages)&lt;/td&gt;        &lt;td valign="top" width="242"&gt;DotNetNuke skins can be developed by a designer in Html and then converted by the platform itself into a DNN Specific skin.         &lt;br /&gt;          &lt;br /&gt;32 hours longer.          &lt;br /&gt;          &lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="223"&gt;&lt;strong&gt;&lt;u&gt;Menu System&lt;/u&gt;&lt;/strong&gt;          &lt;br /&gt;          &lt;br /&gt;Design and implementation of a 4-level menu system and breadcrumbs for all pages.          &lt;br /&gt;Static and requires config changes to add/remove pages.          &lt;br /&gt;          &lt;br /&gt;Approx Time Taken          &lt;br /&gt;40 hours&lt;/td&gt;        &lt;td valign="top" width="261"&gt;         &lt;br /&gt;          &lt;br /&gt;Built-in.  New choices in providers such as Mega-menu.          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;Approx time needed          &lt;br /&gt;1 hour&lt;/td&gt;        &lt;td valign="top" width="242"&gt;There are many different menu styles to choose from.  Menu designers can quickly and easily setup the styles.  From then on, you just choose which pages go into the menu, and where they go.         &lt;br /&gt;          &lt;br /&gt;Easily adjusted by the owner of the site.          &lt;br /&gt;          &lt;br /&gt;39 hours longer&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="223"&gt;&lt;strong&gt;&lt;u&gt;Content Display&lt;/u&gt;&lt;/strong&gt;          &lt;br /&gt;          &lt;br /&gt;Creation of a way to allow authorised end users to edit site content.          &lt;br /&gt;          &lt;br /&gt;Requires separate WYSIWYG Html editor and FTP program.          &lt;br /&gt;          &lt;br /&gt;Approx Time Taken          &lt;br /&gt; (excluding authoring content)          &lt;br /&gt;35 hours&lt;/td&gt;        &lt;td valign="top" width="261"&gt;         &lt;br /&gt;          &lt;br /&gt;Built-in, including different content for different authentication levels.          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;Approx time needed:          &lt;br /&gt;0 hours&lt;/td&gt;        &lt;td valign="top" width="242"&gt;DotNetNuke Professional versions include a content staging solution for approving content for live sites.         &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;35 hours longer&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;*note: the system is using the same asp.net Authentication provider that DotNetNuke uses.  This saves a significant amount of time, but there is still a lot of work in plugging all the ASP.NET components into an overall site, and refining the plainly-awful default ASP.NET designs.&lt;/p&gt;  &lt;p&gt;There is more I could list.  Search engine sitemaps.  Analytics integration.  Caching for performance. Administrator control panels.  User administration – if you want it, it all has to be built while the CMS packages it all up for you, tested, debugged and ready to use.&lt;/p&gt;  &lt;p&gt;To save you adding up, the calculated extra time taken is &lt;u&gt;183 hours&lt;/u&gt;.  Even to me, this sounds very conservative, as I’m just extracting the information in a rough manner from management reports.&lt;/p&gt;  &lt;p&gt;But let’s turn that into dollars and time, the two singularly most crucial data points for any startup.   Let’s assume you can average a developer hour at $100/hr – that is an extra $18,300, and close enough to 5 weeks of extra time.&lt;/p&gt;  &lt;p&gt;Some people in large organisations might laugh at that- $18k is probably their stationery bill – but in a scrappy small startup watching the pennies it is an enormous amount.  More crucially, every week the product isn’t launched is every week revenue doesn’t come in, and gets closer to the time when the runway end appears and the investors get nervous.&lt;/p&gt;  &lt;h2&gt;Where does the platform really end?&lt;/h2&gt;  &lt;p&gt;When building a project like this, it’s amazing how cheaply a site like this can be put together.  A similar startup ten years ago would have needed a 7 figure bankroll to get the same amount of functionality in the same amount of time.  Open source libraries, Microsoft helper code – it all helps to put something together quickly.  We’ve leveraged jQuery and jQuery UI, used Knockout.js to give great UI interactions, leveraged email and payment provider libraries to speed up things immeasurably.  &lt;/p&gt;  &lt;p&gt;The point here is that when you’re already using open-source libraries to speed up development and improve quality, then it’s bizarre to draw the line at the actual project itself.  Everything on the web runs on a huge stack of layers, so, in my view, it isn’t productive to dip down and build one more layer when a suitable candidate is there.  Nobody actually contemplates writing their own version of jQuery now, so why the actual Web Application?&lt;/p&gt;  &lt;h2&gt;But - It’s more than the cost&lt;/h2&gt;  &lt;p&gt;At this point, someone who was sceptical of implementing a CMS as a base for a startup might reasonably come back with ‘yes, but how much time would adapting the design to the CMS have cost’.  This is a fair point and one that needs expanding.  If you start with CMS-inexperienced developers, you may find that this time difference is soaked up in the developers trying to get their head around building an application on top of a CMS, instead of just creating a new codefile every time they need a new feature. &lt;/p&gt;  &lt;p&gt;It doesn’t need to be like that, though.  The pool of developers skilled in a platform like DotNetNuke is pretty vast, and pretty deep.  And even if you’re a bit green, there are endless online forums, Q&amp;A and other resources to tap into.   Code is code, no matter where it is written, so adapting to a different way of display is very low cost.&lt;/p&gt;  &lt;p&gt;My hypothetical sceptic might come back and say ‘but yes, now you’re tied into the project’.  This is true.  Your future and that of your donor CMS are now one and the same.  But that is why you would choose and open source solution like DotNetNuke.  Even if the entire project disappeared off the face of the Earth tomorrow, you’d still have all of the source code, all of the things required to build it, and you could continue to move forwards.   But I’ll throw it back the other way, without a major platform, you don’t get any new features for free.  You don’t get lots of people finding security problems and patching them for you.  You don’t get a vibrant developer community trying to push things forwards continually.&lt;/p&gt;  &lt;p&gt;A scratch-built solution has a talent-pool of a handful of developers deep.  When one of them walks out the door and onto other pastures, a ton of knowledge leaves with them.  This type of hidden reef is impossible to calculate in terms of cost, but it can be quite significant.&lt;/p&gt;  &lt;h2&gt;It’s also about the future&lt;/h2&gt;  &lt;p&gt;Already, the project is thinking about the future past launch day.  If all goes well, there will be plenty of site members and plenty of activity.  It’s about then that new ideas for site features will start popping up.   What about a company blog?  How about some social features to let users of the system compare notes, talk to each other, build a community?    With a scratch-built site, it’s back to square one.  With the authentication system built in, trying to tie in a stand-alone forum system would come across as clunky and poor.   Creating single-sign-on between different codebases is difficult.  Harmonising design is troublesome.  &lt;/p&gt;  &lt;p&gt;And that’s when a CMS like DotNetNuke really pulls out into clean air.  In the next couple of months, the platform will release the long-awaited Social Features and a new Services layer.   There is no way an individual team can possibly compete with a team of fulltime developers working on a single feature like this alone.  The startup site could really use some of those social features like the new Journal module.  But there is no way it is ever going to happen, save maybe for a buyout by Facebook like some others.&lt;/p&gt;  &lt;h2&gt;A Virtual Comparison&lt;/h2&gt;  &lt;p&gt;Perhaps the best way I can put it is this: if two teams funded by two different investors worked on this same project, and one decided to use DotNetNuke as the base, and the other decided upon a scratch build, the one based on DotNetNuke would be to market by now, with more features and less bugs.  And they’d have extra cash saved over for promotion.  They’d even have a ready-built community to show their new site off to for feedback and perhaps the first customers!&lt;/p&gt;  &lt;p&gt;It’s pretty obvious to me which one would be the eventual winner.  The ‘Not Invented Here’ syndrome is a costly one to acquire.&lt;/p&gt;  &lt;p&gt;So I’ll ask the question again, in case you’re just starting out and chewing over this question : You are going to use a CMS for that startup, &lt;strong&gt;&lt;em&gt;aren’t you!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href=http://www.ifinity.com.au/2012/04/17/You_are_going_to_use_a_CMS_for_that_startup__arent_you&gt;More ...&lt;/a&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/cgGLFvsfa0X30wlLTnfluUj__yk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cgGLFvsfa0X30wlLTnfluUj__yk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/cgGLFvsfa0X30wlLTnfluUj__yk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cgGLFvsfa0X30wlLTnfluUj__yk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/BVjuFObgoL4" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>iFinity.com.au - Bruce's Blog</dc:creator><pubDate>Tue, 17 Apr 2012 10:55:42 GMT</pubDate><guid isPermaLink="false">9909a464-308c-4d2a-a300-61ea90a164d2</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33846/You-are-going-to-use-a-CMS-for-that-startup-aren</feedburner:origLink></item><item><title>Plan Now for Day of DotNetNuke Charlotte 2012</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/OtokivVSMOI/Plan-Now-for-Day-of-DotNetNuke-Charlotte-2012</link><description>&lt;p&gt;&lt;a href="http://charlotte.dayofdotnetnuke.com/" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Day of DotNetNuke Charlotte 2012" border="0" alt="Day of DotNetNuke Charlotte 2012" src="http://www.willstrohl.com/Portals/1/LiveBlog/1142/CDoDNN_FB3.jpg" width="524" height="212" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Man… What a year.  Really.  A lot of things have happened, and it’s already 3/4 of the way over.  The best part is that we have a brand spanking new release of &lt;a href="http://www.dotnetnuke.com/" target="_blank"&gt;DotNetNuke&lt;/a&gt; that features social features for all editions of DNN in the 6.2 release.  That release is right around the corner, and DNN Corp folks have been busy blogging about 6.2 features quite regularly.  But wait, there’s more!  That’s right… This is my elevator pitch, or boardwalk pitch.  You choose.  Just don’t call me &lt;a href="http://en.wikipedia.org/wiki/Billy_Mays" target="_blank"&gt;Billy Mays&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/Vince_Offer" target="_blank"&gt;Vince Shlomi&lt;/a&gt;.  Go ahead, look them up.  One was great but passed away, and the other.  Well, let’s just not go there.&lt;/p&gt;  &lt;h2&gt;DNN 6.2 is Around the Corner&lt;/h2&gt;  &lt;p&gt;There are a ton of new capabilities coming in version 6.2 of DNN that include two huge areas:  social, and service framework.  The social topic is big enough at this point that we all understand it even if it’s only from a high level, but the service framework is the beginning of a much broader area that developers will simply love!&lt;/p&gt;  &lt;p&gt;This release marks the long anticipated integration of the beloved Active Social suite of social capabilities.  You see, a little over a year ago, DNN Corp acquired Active Modules, and their most popular app offering was a suite of features that made up a product called “Active Social.”  If you desired, Active Social nearly gives you a Facebook experience within minutes on your own website.  However, the features are much more powerful than that.  They allow you to build, maintain, and grow communities on your website that center around your brand, cause, or products.  This is the most powerful way to market to and engage with your customer base.&lt;/p&gt;  &lt;p&gt;The service framework is just the beginning of something bigger, but if you’re the techie type and look under the hood to see what it’s about, you can’t help but geek out over it!  The service framework lays the foundation of what will be centering &lt;a href="http://www.dotnetnuke.com/" target="_blank"&gt;DotNetNuke&lt;/a&gt; as your primary point of managing online content, and allowing content to broadcast from, or import to your website.  Integrate this feature into your website, and the possibilities are endless, regardless to the device or platform we’re talking about.  &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Got a PHP web property?  So what.  &lt;br /&gt;Have a cutting edge handheld device.  Check.  &lt;br /&gt;Need to integrate with a Java app?  Easy.       &lt;br /&gt;Want to have two way communication with the next social website?  Done.  &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This and more is what will be possible in the future using the service framework.&lt;/p&gt;  &lt;p&gt;All of this is great and all… But how in the world do you learn about how to use any of these new features?  What can you do to ensure that you will be productive with these features from day 1?  This is where the &lt;a href="http://charlotte.dayofdotnetnuke.com/" target="_blank"&gt;Day of DotNetNuke Charlotte&lt;/a&gt; comes in!&lt;/p&gt;  &lt;h2&gt;Attend the Day of DotNetNuke&lt;/h2&gt;  &lt;p&gt;The &lt;a href="http://dayofdotnetnuke.com/" target="_blank"&gt;Day of DotNetNuke&lt;/a&gt; has always been and always will be a free event to attend.  All you need to do is find a way to get there.  Once you do, you will be able to enjoy &lt;a href="http://www.dotnetnuke.com/" target="_blank"&gt;DotNetNuke&lt;/a&gt; swag, sponsored giveaways, numerous DNN sessions, and more.  You will also get to meet and chat with some of the very same engineers that built these features.  There’s nothing more geeky in the DNN world right now than that!  Oh, and don’t forget the always fun DNN After Dark party.  If you haven’t found out yet, attend and you will soon find out that the DNN community knows how to have a great time!&lt;/p&gt;  &lt;h2&gt;Be a Speaker&lt;/h2&gt;  &lt;p&gt;There are already a variety of speakers for the event, but anyone could potentially be chosen as a speaker.  Just create a compelling session abstract about DNN 6.2, or social on DNN, and &lt;a href="http://charlotte.dayofdotnetnuke.com/misc/SpeakerPages/CallforSpeakers.aspx" target="_blank"&gt;submit it&lt;/a&gt;.  This is easily one of the most rewarding ways to give back to the community, and make a name for yourself at the same time.&lt;/p&gt;  &lt;h2&gt;Be a Sponsor&lt;/h2&gt;  &lt;p&gt;Sponsors are what make this event great.  I’ve said it time and time again.  Without the generosity of sponsors, the event wouldn’t be free, and there wouldn’t be all of the great events and freebies that we’ve enjoyed in previous events.  If you are interested in sponsoring, just fill out the &lt;a href="http://charlotte.dayofdotnetnuke.com/Sponsors.aspx" target="_blank"&gt;sponsor form&lt;/a&gt; on the website.  The DNN community never forgets about the great companies that help support it.  This is easily one of the best ways to build and maintain your brand in the DNN ecosystem.  &lt;/p&gt;  &lt;p&gt;This is all well and good, but what can you expect?  Check out this video montage from the Chicago event!&lt;/p&gt; &lt;iframe height="292" src="http://player.vimeo.com/video/19614100" frameborder="0" width="520" mozallowfullscreen="mozallowfullscreen" webkitallowfullscreen="webkitallowfullscreen" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;  &lt;div style="height: 0.75em" class="dnnClear"&gt;&lt;!-- comment --&gt;&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/WillStrohl-DotNetNuke/~4/DpHu63iUods" height="1" width="1"/&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7w9dQUSGW64CGNlkjKM-POCg0nY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7w9dQUSGW64CGNlkjKM-POCg0nY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7w9dQUSGW64CGNlkjKM-POCg0nY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7w9dQUSGW64CGNlkjKM-POCg0nY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/OtokivVSMOI" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>The Mighty Blog</dc:creator><pubDate>Wed, 11 Apr 2012 22:34:04 GMT</pubDate><guid isPermaLink="false">4a2ff491-8037-4987-9a38-4997fee3fed5</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33843/Plan-Now-for-Day-of-DotNetNuke-Charlotte-2012</feedburner:origLink></item><item><title>Public Speaking Videos Including DotNetNuke Demonstrations</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/JXTwzXSD0B4/Public-Speaking-Videos-Including-DotNetNuke-Demons</link><description>&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="DotNetNuke Presentation" border="0" alt="DotNetNuke Presentation" src="http://www.willstrohl.com/Portals/1/LiveBlog/1142/dotnetnuke-presentation-room-header.png" width="524" height="254" /&gt;&lt;/p&gt;  &lt;p&gt;It’s always been a topic, but even more so recently…  People are asking more and more about various things that relate to public speaking.  Whether it’s for user group meetings, code camps, &lt;a href="http://dotnetnukeworld.dotnetnuke.com/" target="_blank"&gt;DotNetNuke World&lt;/a&gt;, meetings with colleagues, or strategic business meetings with partners and prospective customers – public speaking is a critical tool to have honed and in your professional toolbox for your career.  Honestly, many of us believe that we are good at speaking in front of an audience, or at least good enough.  This first part of the year, I took it upon myself to build some presentation-style videos to explore and teach some of the most important components for public speakers.&lt;/p&gt;  &lt;p&gt;I joined &lt;a href="http://www.dotnetnuke.com/" target="_blank"&gt;DotNetNuke&lt;/a&gt; Corporation in June of 2010.  I was already speaking at many events before accepting the position.  I had countless public events as well as business-centric presentations under my belt.  While I knew I wasn’t an expert at public speaking, I knew that I could hold my own and get things done.  The position I took was to not only do some of the very things I was already doing, but it also entailed representing a brand and company that I was pretty much obsessing over.  The last thing in the world I wanted to do was misrepresent the brand in any way through my presentations.&lt;/p&gt;  &lt;p&gt;As a result, I quickly did some research to find out who the “experts” on public speaking were.  I found a small handful of people that specialize in the topic and not only authored books, but also had businesses based on the subject.  Some of my favorite include &lt;a href="http://presentationzen.com" target="_blank"&gt;Garr Reynolds&lt;/a&gt; and &lt;a href="http://www.duarte.com/speaking-engagements/" target="_blank"&gt;Nancy Duarte&lt;/a&gt;.  I literally spent many hours reading their books, attending live webinars, reading their blogs, and more learning what they had through real world experience.  I had already &lt;a href="http://www.willstrohl.com/Blog/PostId/629/Suggested-Reading-for-Presenters" target="_blank"&gt;blogged on their books in the past&lt;/a&gt;, and I invite you to read them as well.&lt;/p&gt;  &lt;p&gt;What I put together over the past couple of months is the beginning of a larger amount of resources that are intended to help everyone, and especially the &lt;a href="http://www.dotnetnuke.com/" target="_blank"&gt;DotNetNuke&lt;/a&gt; community, become better at public speaking as well.  Introducing, the &lt;a href="http://www.youtube.com/playlist?list=PL3B22109665D46FB7" target="_blank"&gt;public speaking series of videos on the DNN YouTube channel&lt;/a&gt;…  The channel is also embedded below.&lt;/p&gt; &lt;iframe height="264" src="http://www.youtube.com/embed/videoseries?list=PL3B22109665D46FB7&amp;hl=en_US" frameborder="0" width="519" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;  &lt;div style="height: 0.75em" class="dnnClear"&gt;&lt;!-- comment --&gt;&lt;/div&gt;  &lt;p&gt;As of today, there are nearly 2 hours of videos that introduce ideas, experience, tips, best practices, and more that all help you to ensure that you always have the best presentation possible, regardless of your audience.  The videos start from the very beginning, and continue through to &lt;a href="http://www.dotnetnuke.com/" target="_blank"&gt;DotNetNuke&lt;/a&gt; demonstrations.&lt;/p&gt;  &lt;p&gt;There are of course plans to add more resources just like this.  Hopefully, you enjoy this as well.&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WillStrohl-DotNetNuke/~4/jDFwcBAavAo" height="1" width="1"/&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/301CSlRjgosQ-Y7631At-V5mZ_Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/301CSlRjgosQ-Y7631At-V5mZ_Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/301CSlRjgosQ-Y7631At-V5mZ_Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/301CSlRjgosQ-Y7631At-V5mZ_Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/JXTwzXSD0B4" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>The Mighty Blog</dc:creator><pubDate>Mon, 09 Apr 2012 21:24:08 GMT</pubDate><guid isPermaLink="false">a5c3307b-89f6-44f0-be2c-aaaa13b64244</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33841/Public-Speaking-Videos-Including-DotNetNuke-Demons</feedburner:origLink></item><item><title>Day of DotNetNuke Charlotte Website is Live</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/rvb1JOc3PPk/Day-of-DotNetNuke-Charlotte-Website-is-Live</link><description>&lt;p&gt;&lt;img src="http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/Portalshttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/0http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/Bloghttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/Fileshttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/1http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/23http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/Windows-Live-Writer-Day-of-DotNetNuke-Charlotte-2012-Announc_F512-Charlotte-Uptown-Skyline_thumb_1.png" http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/&gt;&lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/p&gt;  &lt;p&gt;Unless your head has been buried in the sand like an Ostrich might do, there is going to be a &lt;a href="http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/" target="_blank"&gt;Day of DotNetNuke&lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/a&gt; this year, and it is being held in the beautiful City of Charlotte.  Charlotte is also known as the Queen City, among other things – hence the name of the local user group, &lt;a href="http:http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/www.dotnetnuke.comhttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/Communityhttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/User-Groupshttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/Details-Wizardhttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/viewhttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/1http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/idhttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/40.aspx" target="_blank"&gt;Queen City DotNetNuke User Group&lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/a&gt;, or &lt;a href="http:http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/www.dotnetnuke.comhttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/Communityhttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/User-Groupshttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/Details-Wizardhttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/viewhttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/1http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/idhttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/40.aspx" target="_blank"&gt;QCDUG&lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/a&gt;.  These guys have been hard at work organizing, and their work is clearly being seen – most recently with their brand spanking new website!&lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/p&gt;  &lt;p&gt;The &lt;a href="http:http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/charlotte.dayofdotnetnuke.comhttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/" target="_blank"&gt;Day of DotNetNuke Charlotte website&lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/a&gt; has nearly all of the information you need to get your plans in order today…  Hotels, venue information, and more.&lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/p&gt;  &lt;p&gt;Mark your calendars now…  The Charlotte event is happening on &lt;strong&gt;June 2, 2012&lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/strong&gt;.  Get there early to make sure you can enjoy yourself.&lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/p&gt;  &lt;h2&gt;Register Now!&lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/h2&gt;  &lt;p&gt;It’s not too early to let the crew know you’re coming…  You can already &lt;a href="http:http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/charlotte.dayofdotnetnuke.comhttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/register.aspx" target="_blank"&gt;register to attend&lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/a&gt; and join their mailing list to keep in the loop and help them plan for your arrival.&lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/p&gt;  &lt;p&gt;There’s plenty of reasons to attend.  Just ask anyone that has ever attended a &lt;a href="http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/" target="_blank"&gt;Day of DotNetNuke&lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/a&gt;.  They will let you know in no uncertain terms that you should never pass up this opportunity.  From meeting community members face-to-face, meeting the vendors that are making your site great, to learning how to use and build on DNN, there’s no downside…  It’s all FREE!&lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/p&gt;  &lt;p&gt;And let’s not forget the infamous DNN After Dark party.  One thing is clear when you join the DNN community after hours… We know how to have a good time – no exceptions!  :)&lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/p&gt;  &lt;h2&gt;Speakers&lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/h2&gt;  &lt;p&gt;If you’re a speaker or want to be, simply &lt;a href="http:http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/charlotte.dayofdotnetnuke.comhttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/mischttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/SpeakerPageshttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/CallforSpeakers.aspx" target="_blank"&gt;submit your session abstract(s)&lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/a&gt; on the site.  Just remember the theme of the event – it’s all about social.  Your must be about of use &lt;a href="http:http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/www.dotnetnuke.comhttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/" target="_blank"&gt;DotNetNuke&lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/a&gt; 6.2 or just social in general.  DNN 6.2 has &lt;a href="http:http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/www.dotnetnuke.comhttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/Resourceshttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/Blogshttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/EntryIdhttp:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/3339http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/DotNetNuke-6-2-Beta-Available-Now.aspx" target="_blank"&gt;already moved into Beta&lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/a&gt;, so you have plenty of time to learn about and use 6.2 before the event.&lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/p&gt;  &lt;p&gt;Get your write on and submit at least 2 sessions today…  The more you submit, the better chance you have of being chosen to speak.  And speakers are always treated special…  Hint, hint!!!&lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/p&gt;  &lt;h2&gt;Sponsors&lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/h2&gt;  &lt;p&gt;It’s still not too late to become a sponsor for the Charlotte event.  Sponsors are what make &lt;a href="http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/" target="_blank"&gt;Day of DotNetNuke&lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/a&gt; so fantastic for everyone, so make sure you don’t get left behind.  The first sponsors always get the better perks.  And the faster you sponsor, to sooner you can begin enjoying the extra advertising and community love.  Your sponsorship is noticed by the community.  And the community never forgets…  &lt;http:http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/http:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/dayofdotnetnuke.comhttp:http://dayofdotnetnuke.com/http://dayofdotnetnuke.com/dayofdotnetnuke.comhttp://dayofdotnetnuke.com/p&gt;&lt;br /&gt;&lt;a href=http://dayofdotnetnuke.com/Blog/EntryId/24/Day-of-DotNetNuke-Charlotte-Website-is-Live&gt;More ...&lt;/a&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/DayOfDotnetnuke?a=RPnrOI5-J8s:xfVhWvTStf4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DayOfDotnetnuke?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DayOfDotnetnuke?a=RPnrOI5-J8s:xfVhWvTStf4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DayOfDotnetnuke?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DayOfDotnetnuke?a=RPnrOI5-J8s:xfVhWvTStf4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DayOfDotnetnuke?i=RPnrOI5-J8s:xfVhWvTStf4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DayOfDotnetnuke?a=RPnrOI5-J8s:xfVhWvTStf4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DayOfDotnetnuke?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DayOfDotnetnuke?a=RPnrOI5-J8s:xfVhWvTStf4:-BTjWOF_DHI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DayOfDotnetnuke?i=RPnrOI5-J8s:xfVhWvTStf4:-BTjWOF_DHI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/DayOfDotnetnuke?a=RPnrOI5-J8s:xfVhWvTStf4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/DayOfDotnetnuke?i=RPnrOI5-J8s:xfVhWvTStf4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/DayOfDotnetnuke/~4/RPnrOI5-J8s" height="1" width="1"/&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TgJ37HCq7B-4gt3YyP6WAzAkX0s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TgJ37HCq7B-4gt3YyP6WAzAkX0s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/TgJ37HCq7B-4gt3YyP6WAzAkX0s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TgJ37HCq7B-4gt3YyP6WAzAkX0s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/rvb1JOc3PPk" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>Day of DotNetNuke</dc:creator><pubDate>Mon, 09 Apr 2012 16:52:19 GMT</pubDate><guid isPermaLink="false">f7d8631f-ce84-4727-8863-fbe45b1a6804</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33839/Day-of-DotNetNuke-Charlotte-Website-is-Live</feedburner:origLink></item><item><title>Meet DotNetNuke Community Member Adam Humphrey</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/cQXzfkSxJ5s/Meet-DotNetNuke-Community-Member-Adam-Humphrey</link><description>&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Adam Humphrey: Pushing Pixels in the DotNetNuke Ecosystem" border="0" alt="Adam Humphrey: Pushing Pixels in the DotNetNuke Ecosystem" src="http://www.willstrohl.com/Portals/1/LiveBlog/1142/pushing-pixels-header.png" width="524" height="254" /&gt;&lt;/p&gt;  &lt;p&gt;If you have not heard of Adam Humphrey, I wouldn’t be surprised.  While he is an excellent &lt;a href="http://www.dotnetnuke.com/" target="_blank"&gt;DotNetNuke&lt;/a&gt; community member, much of his participation is under the radar.  However, he is in my opinion one of the better designers that our community and ecosystem have.  He is most importantly, the owner of &lt;a href="http://adammer.com" target="_blank"&gt;Adammer.com&lt;/a&gt;, which is the flagship company that he does most of his work out of.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.adammer.com" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Adam Humphrey" border="0" alt="Adam Humphrey" align="right" src="http://www.willstrohl.com/Portals/1/LiveBlog/1142/Adam-Humphrey-avatar.jpg" width="154" height="154" /&gt;&lt;/a&gt;Chances are, you’ve used one of Adam’s skins for &lt;a href="http://www.dotnetnuke.com/" target="_blank"&gt;DotNetNuke&lt;/a&gt;.  Chances are even better that you’ve even used a DNN site that has one of his skins or a derivative of it applied to the site.  The skin design I am talking about is much better known as &lt;a href="http://skinsbyadammer.com/greytness" target="_blank"&gt;Greytness&lt;/a&gt;.  As far as free designs for DNN go, this seemingly one of the most popular and widely used free designs for &lt;a href="http://www.dotnetnuke.com/" target="_blank"&gt;DotNetNuke&lt;/a&gt;.  There are many reasons that I could guess as to why…  It’s more complete than most free skins, has built-in WAI compliance, fully commented CSS, and more.  Anyhow, I will let you put your own eyes on it.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://skinsbyadammer.com/greytness" target="_blank"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Greytness - A DotNetNuke skin by Adammer.com" border="0" alt="Greytness - A DotNetNuke skin by Adammer.com" src="http://www.willstrohl.com/Portals/1/LiveBlog/1142/Adam-Humphrey-Greytness.png" width="524" height="423" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Adam has also been a speaker at the &lt;a href="http://baydug.org/" target="_blank"&gt;Bay Area DotNetNuke User Group&lt;/a&gt;, or &lt;a href="http://baydug.org/" target="_blank"&gt;BayDUG&lt;/a&gt; (&lt;a href="https://twitter.com/#!/baydug" target="_blank"&gt;@BayDUG&lt;/a&gt;).  A presentation he gave recently was called “&lt;em&gt;Pushing Pixels in the DotNetNuke Ecosystem: Principles of DotNetNuke Skin Design&lt;/em&gt;.”  Having been in the DNN community for as long as I have, I have seen countless presentations about skin design, many of which were given by people I would call friends and experts.  However, this is by far one of the most useful presentations about skin design that I’ve ever seen.&lt;/p&gt;  &lt;h2&gt;Pushing Pixels&lt;/h2&gt;  &lt;p&gt;Adam Humphrey did an excellent job presenting his ideas and experiences with the fellow members of &lt;a href="http://baydug.org/" target="_blank"&gt;BayDUG&lt;/a&gt;.  We enjoyed a similar presentation that he did last year so much, that we invited him back to do it again since DNN 6.x has changed a few things.  He did not disappoint.  I know most of you have no opportunity to join us at &lt;a href="http://baydug.org/" target="_blank"&gt;BayDUG&lt;/a&gt;, so we recorded this amazing presentation!&lt;/p&gt; &lt;iframe height="281" src="http://player.vimeo.com/video/39996450" frameborder="0" width="500" webkitallowfullscreen="webkitallowfullscreen" mozallowfullscreen="mozallowfullscreen" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt; &lt;div class="dnnClear" style="height:0.75em;"&gt;&lt;!-- spacer --&gt;&lt;/div&gt;  &lt;h2&gt;Interview with Adam Humphrey&lt;/h2&gt;  &lt;p&gt;Since I know that most of you are not familiar with Adam, I also asked him to do a quick interview so that he could be properly introduced to the DNN community overall.  The resulting interview was great, and you can view both parts below.&lt;/p&gt; &lt;iframe height="282" src="http://player.vimeo.com/video/40017197" frameborder="0" width="500" webkitallowfullscreen="webkitallowfullscreen" mozallowfullscreen="mozallowfullscreen" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;  &lt;div class="dnnClear" style="height:0.75em;"&gt;&lt;!-- spacer --&gt;&lt;/div&gt; &lt;iframe height="281" src="http://player.vimeo.com/video/40017198" frameborder="0" width="500" webkitallowfullscreen="webkitallowfullscreen" mozallowfullscreen="mozallowfullscreen" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt; &lt;div class="dnnClear" style="height:0.75em;"&gt;&lt;!-- spacer --&gt;&lt;/div&gt;  &lt;h2&gt;DNN User Groups&lt;/h2&gt;  &lt;p&gt;There are many reasons to join, attend, and speak at &lt;a href="http://www.dotnetnuke.com/Community/User-Groups.aspx" target="_blank"&gt;DotNetNuke user groups&lt;/a&gt;.  Hopefully, some of this information has inspired you to join or lead a user group yourself.  But user groups are always looking for people to show up too.  Participate in any way that you feel comfortable with – but &lt;u&gt;PARTICIPATE&lt;/u&gt;!&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/WillStrohl-DotNetNuke/~4/wcILtCT5-RI" height="1" width="1"/&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/0rKuL2YQ2o1FIkvGrDQpF_W18Ng/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0rKuL2YQ2o1FIkvGrDQpF_W18Ng/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/0rKuL2YQ2o1FIkvGrDQpF_W18Ng/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/0rKuL2YQ2o1FIkvGrDQpF_W18Ng/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/cQXzfkSxJ5s" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>The Mighty Blog</dc:creator><pubDate>Mon, 09 Apr 2012 10:46:30 GMT</pubDate><guid isPermaLink="false">a9da0566-4899-45f0-a996-9def22e9150c</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33840/Meet-DotNetNuke-Community-Member-Adam-Humphrey</feedburner:origLink></item><item><title>DotNetNuke Module Development 101: 2 - What is a Module?</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/ArA4eyv6c8w/DotNetNuke-Module-Development-101-2--What-is-a-M</link><description>&lt;p&gt;In the &lt;a href="http://charlesnurse.com/post/DotNetNuke-Module-Development-101-1-I-did-it-My-Way.aspx"&gt;first post&lt;/a&gt; in this series I pointed out that DotNetNuke places few requirements on module developers, and this is often daunting to new developers – “where do I start?” being a common refrain.&lt;/p&gt;
&lt;p&gt;So where do you start? &lt;/p&gt;
&lt;p&gt;Before we actually start to build our first module lets look at what constitutes a module.  In the default DotNetNuke skin/template that is used when installing DotNetNuke there are a number of examples of Text/HTML modules. &lt;/p&gt;
&lt;p&gt;As an example Figure 1 shows 3 such modules on the Home Page.&lt;/p&gt;
&lt;table style="width: 650px;" border="0" cellspacing="0" cellpadding="2"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="650" valign="top"&gt;
&lt;h6&gt;Figure 1: Examples of HTML modules on the Home Page of the Default Template&lt;/h6&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="650" valign="top"&gt;&lt;a rel="lightbox" href="http://www.charlesnurse.com/image.axd?picture=image_7.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" src="http://www.charlesnurse.com/image.axd?picture=image_thumb_5.png" border="0" alt="image" width="644" height="409" /&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Some of the content on the page is provided by the module and some of the content is provided by the framework.  In figure 1, while all three modules are HTML modules they all have slightly different “headers”.&lt;/p&gt;
&lt;p&gt;Module 1’s heading is in a larger font than Module 2 and Module 3 doesn’t have a heading at all.  This module “chrome” is provided by the container which has been applied to the module.  The module header text is provided by the framework (Figure 2 – red box), the styling of the chrome is provided by the container, and the text/images in the “body” of the module are provided by the module itself (Figure 2 – blue box).&lt;/p&gt;
&lt;table style="width: 650px;" border="0" cellspacing="0" cellpadding="2"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="650" valign="top"&gt;
&lt;h6&gt;Figure 2: The components of a Module&lt;/h6&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="650" valign="top"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" src="http://www.charlesnurse.com/image.axd?picture=image_8.png" border="0" alt="image" width="644" height="417" /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;This means that as a module developer, I don’t need to worry about the external chrome – or the module header – this is done for me, I can focus on the content inside the blue box.&lt;/p&gt;
&lt;h2&gt;IModuleControl&lt;/h2&gt;
&lt;p&gt;DotNetNuke is built on top of Microsoft’s ASP.NET Web Framework, using the Web Forms model.  This model is based on Web Forms (.aspx files) and Web User Controls (.ascx files), as well as Web Controls (which are compiled as part of a class library). &lt;/p&gt;
&lt;p&gt;Every page in DotNetNuke is a Web Form – in fact every page is the same Web Form – Default.aspx.&lt;/p&gt;
&lt;p&gt;Sections of the page are made up of dynamically injected Controls – most of which are Web User Controls, and in most cases a module is implemented as a Web User Control (.ascx).  So in order to create a module we need to first create a User Control. &lt;/p&gt;
&lt;p&gt;But not just any User Control. &lt;/p&gt;
&lt;p&gt;DotNetNuke needs to know certain things about a module – and conversely the module might need certain things from the DotNetNuke core, so there is an additional requirement that the User Control needs to implement a DotNetNuke interface – IModuleControl&lt;/p&gt;
&lt;table style="width: 650px;" border="0" cellspacing="0" cellpadding="2"&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td width="650" valign="top"&gt;
&lt;h6&gt;Figure 3: The IModuleControl interface which defines a Module Control&lt;/h6&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td width="650" valign="top"&gt;
&lt;pre class="brush: csharp; ruler: true;"&gt;    public interface IModuleControl
    {
        Control Control { get; }
        string ControlPath { get; }
        string ControlName { get; }
        string LocalResourceFile { get; set; }
        ModuleInstanceContext ModuleContext { get; }
    }&lt;/pre&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;To make life easier for module developers, the core provides a few base classes which already implement this interface and which can be used as a base by module developers.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;PortalModuleBase&lt;/strong&gt; – this was the original base class for all modules – In DotNetNuke 5.0 the requirement was modified to implement IModuleControl, and this class was refactored to accomplish this.  It exposes a lot of extra properties and methods (in addition to the 5 properties that constitute IModuleControl) – most of which can also be accessed through the ModuleContext property. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ModuleUserControlBase&lt;/strong&gt; – this new (in DotNetNuke 5.0) base class is a simple implementation of IModuleControl, based on the UserControl base class.  In addition to the 5 members of IModuleControl it adds a simple method LocalizeString which is a helper method for localization. &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ModuleControlBase&lt;/strong&gt; – this base class (introduced in DotNetNuke 5.0) is based on the WebControl base class (rather than UserControl).  To use this base class the module control would be compiled as part of a class library. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Basically all we have to do then is to create a “control” which inherits from any of these 3 base classes.  This is the &lt;strong&gt;&lt;em&gt;only&lt;/em&gt;&lt;/strong&gt; requirement for building a DotNetNuke Module.  There is much more that DotNetNuke offers to module developers, but the minimum requirement is to create a “control” which implements the IModuleControl interface. &lt;/p&gt;
&lt;p&gt;For most of the rest of this series we will be using the ModuleUserControlBase class as our starting point, and in part 3 of this series we will actually create our first DotNetNuke module.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JH4C-gj_LeWIYlOQQxWxErHXhSw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JH4C-gj_LeWIYlOQQxWxErHXhSw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JH4C-gj_LeWIYlOQQxWxErHXhSw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JH4C-gj_LeWIYlOQQxWxErHXhSw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/ArA4eyv6c8w" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>Charles Nurse</dc:creator><pubDate>Wed, 04 Apr 2012 03:47:00 GMT</pubDate><guid isPermaLink="false">56bbc204-6e33-4cb5-b864-ab8120a681db</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33854/DotNetNuke-Module-Development-101-2--What-is-a-M</feedburner:origLink></item><item><title>DotNetNuke Module Development 101: 1 - I did it My Way</title><link>http://feedproxy.google.com/~r/DotnetnukeBlogs/~3/hMFEFeYLNNA/DotNetNuke-Module-Development-101-1--I-did-it-My</link><description>&lt;p&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px 0px 10px 20px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" border="0" align="right" src="http://images2.layoutsparks.com/1/112578/nice-kids-puzzle-piece.png" width="239" height="240" /&gt;DotNetNuke has a rich eco-system of Modules, both Open Source and Commercial.  In many ways this is our biggest strength as a CMS platform.  No matter what you want to do with your site – there is often a module that already does it.&lt;/p&gt;  &lt;p&gt;In my opinion this is due to the flexibility provided by the core DotNetNuke Framework.  Many other platforms are very prescriptive – as an extension developer you have to follow a fixed shopping list of rules – there is invariably only one way to create an extension, which may not work for what you want to do.  &lt;/p&gt;  &lt;p&gt;But DotNetNuke places very few requirements on what must be done to build an extension.  This frees developers to be creative – to think outside the box – which I feel explains the rich ecosystem of modules that already exists and continue to be developed.&lt;/p&gt;  &lt;p&gt;I have been working as a developer on DotNetNuke for nearly 8 years now.  During that time I have built many modules for personal use as well as a number of modules that are now part of the core distributions.  In addition, I have designed and created many of the hooks in the core which Module Developers can take advantage of.&lt;/p&gt;  &lt;p&gt;Recently, I have heard comments that “Module Development with DotNetNuke is difficult”.  &lt;/p&gt;  &lt;p&gt;I don’t agree with this sentiment – but, I think that our strength (flexibility) that I described above is also our weakness. There are a multitude of ways to build DotNetNuke modules -  and we don’t provide a prescriptive method of development.  While this provides flexibility, it can be somewhat daunting for new DotNetNuke developers – where do I start? is a common refrain.&lt;/p&gt;  &lt;p&gt;My goal in this series of posts is to provide some guidance – from my perspective – for both the beginner module developer and for more advanced developers, who may not be aware of all the hooks/features that DotNetNuke provides.  &lt;/p&gt;  &lt;p&gt;This is not “The Definitive Way of Module Development” – its not even “A Definitive Way of Module Development”, but (with apologies to Frank Sinatra) it is “My Way”.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/2ep9qjYk4RbiwNU_rMluC9uXvI0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2ep9qjYk4RbiwNU_rMluC9uXvI0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/2ep9qjYk4RbiwNU_rMluC9uXvI0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/2ep9qjYk4RbiwNU_rMluC9uXvI0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/DotnetnukeBlogs/~4/hMFEFeYLNNA" height="1" width="1"/&gt;</description><thumbnail /><dc:creator>Charles Nurse</dc:creator><pubDate>Fri, 30 Mar 2012 18:58:06 GMT</pubDate><guid isPermaLink="false">8285a039-bc37-4c01-8ef4-bb11caf62bf0</guid><feedburner:origLink>http://www.dotnetnukeblogs.com/Home/Articles/itemId/33836/DotNetNuke-Module-Development-101-1--I-did-it-My</feedburner:origLink></item></channel></rss>

