To blog about SharePoint on SharePoint or not to blog about SharePoint on SharePoint. The question has been answered for me.
From this point forward, I’m blogging on WordPress. And, for now, I’m hosting my blog on Azure Websites.
I’ll walk you through my thought process about the transition in case in can help you in a similar situation.
SharePoint 2010 Foundation on FPWeb
I’ve been hosting tomresing.com on SharePoint 2010 Foundation for the last 3 and 1/2 years. Previously, I had blogged for a couple years on SharePoint 2007 CKS:Enhanced Blog Edition. Before that, I’d blogged on WordPress and Blogger.com.
Caption: blog.resing.net, A Point to Share, circa 2007. Custom header image photographed by me at ISS Control Center NASA Houston. WordPress.
SharePoint 2010 Foundation provides an adequate, basic blogging experience with the blog site template. Not much has changed with the site template since it was introduced in 2007. You get rich text text post editing in the browser, blog category and comment maintenance, rollup and archive pages and syndication through RSS. Foundational blogging features plus some level of branding. In addition, I took advantage of integration with Windows Live Writer to author posts. I will continue to do that with WordPress. In fact, I’m authoring this post on a plane flight in Windows Live Writer which provides an excellent offline authoring capability.
I’m grateful to FPWeb.com for sponsoring my blog hosting on SharePoint 2010. They were the first to offer SharePoint 2010 Foundation public internet site hosting soon after release of the product. Using their offering was very helpful for me in various SharePoint projects including preparing for writing 3 chapters of SharePoint Foundation 2010 Inside Out.
Caption: The old TomResing.com custom front page in SharePoint 2010 Foundation at FPWeb
When SharePoint 2013 was released with little change to the blog site template and even less of that exposed in SharePoint Online from Office 365, it was a wakeup call for me. SharePoint blogging is not getting better. Microsoft is not investing in the platform and it’s time to move on. But to where? There are so many options today compared to when I first started blogging on blogger.com so many years ago.
WordPress on Azure
There are two basic blogging decisions for a public blog, what platform to choose and where to host it. Sometimes the 2 go together. Blogger.com is a platform and a host in one. So is WordPress.com.
Caption: Custom Front Page. Color theme from fiverr.com caricature. Header by me in Paint.net. Text Widget for About Me section in Sidebar.
I chose Azure because I currently have a $100/month to spend as part of my Microsoft MVP Award MSDN Membership. That’s more than enough to use the shared hosting model of Azure Websites which allows for custom domains and allows me to scale if necessary in the future. Another reason for Azure is the ability to author custom .Net code to deploy to the website, which I dig into a little deeper below.
Once I chose my platform and my host, there was quite a lot of work involved in getting all my content across. I actually made the decision to move away from SharePoint as my platform around the time I joined Jive Software in August. You can see from my blog archive that my normal cadence of 2 posts a month was interrupted until now. 4 months without a post! It was very hard for me to break my continuity of delivery as I believe I’ve delivered on my goal for more than 5 years. A large part of the delay was working on the content migration, though some of the time when into researching platforms, hosts, themes, plugins, configuration, branding, layout and minimal creative work like the header, sidebar and the static pages.
I explored a few migration options before settling on my final path. To start with, I thought it might be just as easy as importing the RSS Feed from SharePoint into WordPress. WordPress has an Import Plugin you can install for importing RSS and it almost worked. It didn’t get the categories right, the comments weren’t included and there was the nagging issue of needing to go in and manually update each blog post because there were a few issues the import didn’t get quite right and they effected each and every post. That first attempt was so disheartening, I got temporarily sidetracked trying to move to SharePoint Online which I also have as part of my MVP Award. I tried using ShareGate, and when that Damn Simple option didn’t work, Metalogix. Metalogix got more of my content over to Office 365, but it wasn’t much better than the RSS Import on WordPress, plus SharePoint Online isn’t nearly as good a platform for blogging as WordPress.
Finally, twitter, and real life, friend and SharePoint MVP Developer @dougware pitched in some code to get me started on the successful migration. I’ll let Doug blog on the code, but suffice it to say his example of SharePoint API calls to pull the content out and a templated approach with String.Format to populate a WordPress Export XML file really put me on the right path.
After the initial results were so good, I spent a couple weeks of spare time on the project and got to the point where all my comments and categories were making it over along with the correctly formatted body content. It even inspired me to go back to my posts authored on SharePoint 2007 I had never migrated to 2010 and run the code over them. After some search and replace massaging with Notepad++, some picture extraction and upload to Azure, along with the redirects documented below, I think all of the images and hyperlinks are mostly working.
Caption: Uploading Images to Azure
One thing I’ve had to give up is the live SharePoint examples I used to do. I’ve partly moved some to http://sasug.net hosted at http://rackspace.com and http://tomresing-public.sharepoint.com on Office 365, but I know I didn’t catch all of them. If you notice something glaringly incorrect that you’re very interested in seeing working, feel free to @mention me on twitter or email me – firstname.lastname@example.org.
One huge deciding factor for me on the hosting choice was the ability to write custom redirects in ASP.Net. I chose to use ASP.Net Web Forms for the redirects. I looked at web.config changes and ASP.Net MVC, but in the end, I decided it was just easier for me to do it in Web Forms.
Caption: Publishing Code from Visual Studio 2013 to Azure Websites
I coded two types of redirects and published them using Visual Studio 2013. The first is a massive case statement where I hand coded in the old post.asp?postid=X format to my new, people friendly /YYYY/MM/DD/Post-title-with-dashes address format. I copied and pasted each URL from the two SharePoint Export files and each from the newly imported WordPress site. It took me about four hours on a plane flight a couple weeks back. I made use of my offline time where email, Jive Inbox, twitter @mentions and Facebook Notifications couldn’t reach me to get some real work done, just as I’m doing writing this post on this flight from Seattle back to Texas. What will I ever do when United gets Wifi on it’s flights!?
The second type of redirect was taking the archive and the categories and mapping them over to WordPress. Honestly, at the time of writing this, I haven’t completed that step, but at least I’ve proved it out!
I chose http://themforest.com premium theme U-Design because of it’s popularity, continued development, responsive design, focus on blogging and support for many browsers. Choosing a them only came after much review of blogs I like, reading some chapters of http://safaribooksonline.com WordPress development books and lots of trial theme installations.
Caption: U-Design as it shows in the WordPress Admin Control Panel
There are plenty of great free themes available for WordPress.org. I could have easily chosen one of them. Considering the amount of time I put into migration and other blogging related activity that didn’t involve writing for the blog over the past 4 months, I decided paying $50 for a theme was a great investment if it would save me any time and provide a better user experience. I think it did both.
Some of the features of U-Design, I’m taking advantage of are the custom front page option, the custom blog archive and the custom contact page each with respective custom sidebar widget options. I’m using the U-Design Recent Posts in two different ways and using the Recent Comments widget in my sidebars.
One example of how U-Design saved me time is the custom color admin section. I was able to experiment with different color choices pulled from the palette of a caricature I commissioned on http://fiverr.com. In the end, I added some colors that were the inverse of the colors in the palette to create more contrast in a palette I hope you find attractive while also easy to read even if you are color blind. No joke. I have friends who are color blind and I want them to read the blog, too!
My old SharePoint 2010 blog, and the blog site template it was based on, was limiting it’s audience because of technical issues. Two main pain points stood out. Number 1, users of Chrome could not read the blog because of a SharePoint authentication change that required configuration on the server I didn’t have access to. Basically, they would get prompted to login and I’m pretty sure most people didn’t know, or care to know, my FPWeb username and password. Secondly, the mobile version was pretty much unusable. SharePoint 2010 has a mobile view, but it’s not pretty. With the old blog, I had accepted that iPhone, Android and Windows Phone viewership was cut to close to zero by SharePoint’s mobile limitations.
Caption: Responsive web design of the premium theme adapts to the size of the device viewing the site. Above, the test site before URL change viewed on iPhone.
SharePoint is a very broad platform with many workloads it can deliver. Many of the out of the box features are not best of breed and blogging is one of them. If you’re looking to have the best blogging experience use the best blogging platform for you. WordPress is a solid option for a public blog because of it’s reach feature set, continued innovation through open source and paid contributions and because of so many great 3rd party plugins and themes available.
If you’ve got significant blog content currently stored in SharePoint, you have options for moving to another platform. The most straightforward is importing the RSS Feed. It doesn’t catch everything, but it’s easy to do. Beyond that, the SharePoint API and the WordPress XML Import format give you the capability to automate most of your migration.
You’ll most likely look at an entire new user experience for your new blog. Use the rich theme and plugin ecosystem to accomplish your goals. Don’t forget to spend time exploring the configuration options. You can make your WordPress blog unique and upgradable without touching PHP code in many cases.