Will "the Mighty" Strohl

WillStrohl.com Moves to Mandeeps Live Blog

Writing a Blog

Since WillStrohl.com has been up and running, its primary function or purpose has been to host my personal blog about many things, but mostly DotNetNuke.  During this time, it has always run on the “core” Blog Module.  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.

Disclaimer:  First, I work for DotNetNuke 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. 

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 (tender loving care).  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?

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 more than 15 other projects on CodePlex.  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…

The Blog Selection Process

The DotNetNuke ecosystem has several modules that are either built to support blogging, or can be configured to support a blog.  Whether it comes from the Store or the Forge, 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). 

Mandeeps SoftwareAfter a bit of research, I decided to use Live Blog by Mandeeps.  Mandeep Singh heads up Mandeeps, has long been in the DotNetNuke 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 Store before moving forward.  This was the first step to feeling better about choosing Live Blog as my solution. 

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, Mandeeps overall has had great feedback from those that use their modules.

The final piece that really sealed the deal was that it seemed that no matter which blog solution I was coming from, Live Blog 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.

The three components mentioned above were the critical first steps in my selection process.  Mandeeps Live Blog had very responsive support, great reputation & reviews, and it allowed me to easily migrate my content to it.

My Feature Requirements

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.  ;)

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.  Live Blog has all of these features and more. 

Comments are important to any blog.  I have wanted to transition to use Disqus 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 Live Blog 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 Disqus, allowing you to choose to use their comment engine at any time!  Suh-weet!

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.  Live Blog doesn’t get in the way here at all.

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 Live Blog makes generating your own template to suit your needs incredibly easy. 

Any Bells or Whistles?

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.  Live Blog has plenty of them. 

Beyond what I’ve already mentioned, you get some really cool things like deep Windows Live Writer 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 AddThis or ShareThis.  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.

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.

Is It Missing Anything?

Unfortunately, like with many 3rd party extensions, Live Blog has the need to fill the use case requirements of a large range of customers, including customers on many different versions of DotNetNuke.  As a result, this prevents Live Blog 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 DotNetNuke.

Did I Have Any Problems?

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.

There was one specific problem.  Unfortunately, the URL structure in Live Blog 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.  Live Blog does this same thing, but uses PostId instead.  Unfortunately, there is no way to change this in Live Blog.  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 Live Blog 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.

Initially, I looked to IFinity’s URL Master to fix this since I use this on my site, but without a bit of development by Mandeeps, a solution wasn’t available here.  However, if you do have a vendor ready and willing to do so, Ifinity has a module provider solution that allows you as a module vendor to map and generate URLs on sites that use URL Master.

Simple Redirect Module for DotNetNukeAt 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 Simple Redirect.  It’s sole purpose in life was what you just read – and, to keep things simple in doing so.

What About the Future?

One of the things I am going to miss deeply is the ability to immediately support the latest and greatest features in DotNetNuke 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.  Mandeeps has been incredibly responsive to feature requests so far though. 


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 Live Blog.  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.

blog comments powered by Disqus