My (long overdue) SharePoint Conference 2014 wrap-up

So almost 4 months ago now I was lucky enough to attend SPC14 in Las Vegas. I was always intending to write a wrap up of my experiences but having committed to doing an internal presentation along the same lines, didn’t want to spoil the material before it ‘went to air’ so to speak. Long story short, that presentation didn’t happen until this month, hence this extremely delayed blog post. In the interest of preserving this experience (and probably only for my own benefit) I figured I’d still throw it up here, so here goes.

Given I delivered it in presentation form, i’ll write this post as I have some of my other presentations. The headings will match the slides, so click along for context.

 

Introduction

Over 40 hours on planes and in airports for a week in Vegas. Sounded like a fair trade at the time – turned out to be a bargain. Was totally worthwhile, would rate it right up there as a professional highlight (and right up there with some of the personal trips I’ve been on!) and would do it again in a heartbeat. Will hopefully get the chance to do it all again the next time around!

There was of course, Vegas being Vegas, a need for a disclaimer. Some of the stories would have been more suited to a chat over a beer at the pub rather than the office setting, so at the risk of being severely cliched.. Sometimes what happens in Vegas..

Networking

Looks like a bad case of name-dropping I must admit, but at the end of the day one of the most valuable aspects of these conferences is the networking. I was lucky enough to have been given the wise advice before I left – I asked my mentor what I should be focusing on for the week and without delay was told to speak to and meet as many people as I could. If you were to ask me now what the best part about the conference was it’d be exactly that – the people I met and the conversations I had with them.

The conversations at the time might not even be work or conference related – we met people on the first night over sushi, sake and mechanical bull riding that got 2 guys from Perth who knew almost no-one into private parties with CEOs and senior staff within Microsoft teams. We had discussions with people who I’ve since lent on for advice regarding problems I’ve faced on client sites. Connections with event organisers to discuss presenting opportunities for colleagues. Money-can’t-buy advice and insight from some of the best in the business. You get the idea. Worth the price of admission alone.

SharePoint TV and Hands-on labs

I thought it worthwhile to highlight some of the lesser known aspects of conferences for the uninitiated. SharePoint TV – the panel style interviews now available over on Channel9 – were a pretty cool concept I’d not seen before and the ones I decided to check out didn’t disappoint. Hands-on labs are another generally undervalued offering available. Unfortunately I didn’t find the time to do any at SPC, however I have done them before and rated them highly. There’s just too much to do at SPC it’s impossible to fit everything in!

The future of forms

I think something worth remembering with these types of events is that the sessions that get chosen and particularly heavily marketed are there for a reason – it’s always worthwhile taking notice of the messages being repeated in sessions to see where Microsoft is leading us. One of the major focuses of the event was along the lines of the future of forms. InfoPath has been the defacto standard for a while now however when the 2013 version of Office really offered no upgrades to the product the writing was kind of on the wall. The death of InfoPath was announced shortly before the conference so there was big hype around what the next direction would be.

To be honest this topic has been covered comprehensively in so many different places it’d be pointless for me to do the same – so if you’re interested in reading up I’d suggest checking out these posts here, here and here. However perhaps the most important messages to come out of this were the ones around continual improvement and the desire to listen to the community and take on board the feedback provided. This is actually a message which is being heavily pushed by Microsoft recently and in my opinion it’s a great thing.

The future of social

Another one of the golden topics throughout the week was the future of social – it’s probably been a big focus for a while now not just for the conference. There were a tonne of highly rated social sessions available. I didn’t delve too deeply into discussing this topic as a colleague of mine had presented on it a couple of months earlier. Long story short, it’s now blatantly obvious that Yammer is the way to go for social in SharePoint. The really cool innovations coming – some of which have already started making their way into Office 365 – are around embedding the social functionality throughout SharePoint and Office 365 which is something I highly recommend keeping abreast of, it really is becoming more and more powerful in terms of the immediate and contextual value it can deliver.

I guess just as important as the news delivered around social was the consistent messages being portrayed in the sessions. Microsoft obviously see the barriers to organisations harnessing these social technologies as organisational culture, adoption issues and a failure to extract or recognise the value they are delivering so almost any session highlighting what social could offer touched on these points as well – they’ve obviously invested a lot into acquiring Yammer and definitely believe in the value it can bring to organisations and thus making Office 365 an even more attractive offering.

Public facing sites / responsive design

Of course having a great interest in public facing sites I couldn’t help but keep an eye on what was being said during the conference about the topic. Funnily enough it actually wasn’t a great deal – I guess because it’s primarily the domain of on-premises installations. What was said focused a lot on mobility and responsive design, and trying to advertise the cloud for hosting public facing sites. The main messages I took here was that even with the device channel offering provided in SharePoint 2013, they really seem to be pushing the responsive design angle. Also, when it comes to public facing sites particularly if you are wanting to leverage the cloud, then hybrid is the way to go. Be that a hybrid solution between responsive design and adaptive design or hybrid around SharePoint Online and Azure websites.

The architecture and developer streams

Now this slide might seem a bit unbalanced but there’s good reason. The way I approached the conference and even how I approached the sessions I reviewed once I got back was to focus on an area I wanted to improve in and mix in topics that I thought I’d find really interesting or entertaining. At the end of the day I chose the architecture or IT pro stream given I’ve been more known as a developer for the majority of my SharePoint career. I think that’s an important lesson I took out of my experience across the week – at the end of the day there is going to be so much you want to see and learn and its simply impossible to do it all in that short amount of time. I feel I got more out of focusing my energies rather than spreading them across a range of topics but at the end of the day everyone will take a different approach when it comes to session selection.

On-prem v o365, the push to the cloud and the App Model

Another one of the beauties of conferences like SPC is that if you meet the right people at the right times (and that generally means after a few beers) you can often get some really interesting conversations happening! Obviously none of these conversations were going to see the light of day published on my blog, but what I will say is that my opinion on some of the more controversial topics I’ve expressed views on in the past (Why wouldn’t you use the App model for On-Premises SharePoint solutions?) have changed a little. Long story short – it’s happening, so either ride the wave or try and swim against it, choice is yours.

There was of course just as much within the carefully crafted message at the conference as there was in the hallway conversations. It’s becoming more and more obvious that Microsoft see the resistance of moving to the cloud as an IT battle and one they’re trying to win by shifting the perception of what IT should be. They’ve also almost given up on the desire to get everyone to the cloud ASAP and are being more realistic and pushing the virtues of staggered migrations and hybrid scenarios to get organisations used to the idea of using cloud technologies.

So many other great sessions

It goes without saying that there was a tonne of other quality content available throughout the week and there’s no way known I could have watched it all and spoken about it all in this presentation. Going through the sessions I noticed that Search was still positioned as a big ticket topic and there were numerous top rated sessions on that. Another concept that stood out was the user stories and case studies – a lot of these were really highly regarded too and it’s actually something I wish I dropped into a couple of sessions for and is still on my never ending catch up list.

Post Conference Training: Hybrid Scenarios with Office 365 and SharePoint 2013 Workshop

One thing worth mentioning about the conference are the pre and post conference training sessions that are made available to sign up for, most at an extra cost but a couple that were free. I signed myself up for the full day on Sunday and the half day that was available for the Thursday after all the sessions had finished. Overall I found it to be a bit of a mixed bag but that was largely of my own doing. Trying to step off the plane, into the pubs and then into a days’ worth of training was really never going to end well and it kind of showed in the value I got out of that day. That said, the post session I did was really impressive and the resources I got out of it are bound to be worth the price of admission alone. In future I’d probably more seriously assess the value I thought I’d get out of a session before signing up, given the time could have been spent networking for just as much value in some instances.

Ask the Experts

I know I flagged the networking as probably the most valuable part about the conference but if I had to choose a close second it’d definitely be the ask the experts session. This is something they have at Tech-Eds as well and I’ve always used as a chance to eat the free food and drink the free beer then kick on partying somewhere, but I decided to actually have a few chats that night and it turned out to be one of the best things I did. I was able to bring back all of the advice I got that night and use it at the client I was at which was extremely valued and appreciated. Highly recommend.

Conclusion

To wrap things up I thought I’d finish on a fun note. It may sound like the SharePoint conference was a non-stop learn-fest filled with early nights, early mornings and cramming as much information into ones head as possible but there’s definitely another side to it though and it’s a massive challenge trying to do it all on a few hours’ sleep a night. The parties were awesome though. I know of some people who avoid them but to be honest unless you already know a lot of people it’s the best way to meet the people you’ll have some of the best and unique conversations with. There’s something on every night, everything is free, the food and the drinks, and it’s hard not to kick on with new friends after each one and enjoy everything Vegas has to offer. I’ll finish up on that note with a nod and a wink and leave the rest of those stories for another time. Thanks for reading!

Implementing redirects when upgrading a site to SharePoint

Late last month we launched the best site i’ve ever had the pleasure of working on, Education + Training International (ETI). The pure size and scope of the site, particularly everything which drives it behind the scenes, is something which everyone who has worked on (and will continue to work on) it should be proud of. Having taken the site from inception to launch, the number of hurdles we came across along the way would be enough to fill this blog for the year. This post will touch on just one small aspect of it – ensuring that the URLs from the old site accurately redirected to those in the new.

I actually touched on this topic in some sense a couple of years ago in my post 301 vs 302 Redirects in SharePoint so it was good to get the opportunity to revisit it again, explore options and implement a solution. This post is quite long, so I’ve broken it up into headings outlining what is being discussed – feel free to skip ahead to what interests you.

Requirements and Caveats

There were 2 main considerations for requiring the redirects (and we wanted all URLs redirected – there wasn’t a ridiculous number we’d need to handle – around 130 or so). First and perhaps most importantly was user experience. The last thing I wanted was for our users to be consistently hitting a generic 404 page. The other consideration was for Search Engine Optimisation – ETI had previously invested in SEO on their existing site and we did not want to lose those search engine gains which had been realised.

There was a caveat to the decision making process (isn’t there always). The infrastructure team was not prepared to take on the burden of managing the redirects and had reservations anyway around the feasibility of managing them at the reverse proxy level.

I also personally wanted to avoid any manual deployment steps both out of principle and for disaster recovery and future maintenance reasons – those kinds of steps are often lost over time as people leave and documentation becomes outdated and ignored.

Finally, ideally the process would be able to be managed down the track, preferably through a SharePoint list within the site.

Rejected Solution #1 – custom web part on PageNotFound

My first investigation centred around the concept of placing a custom web part on the 404 PageNotFound page (having easy, editable access to this page from within SharePoint is a great improvement over previous versions). The idea was that a list would exist which managed the old URLs and the mapping to the new URL, if the ?requestUrl= found a match, we’d serve up a 301 redirect to the new URL, otherwise we’d provide the next best thing – perhaps a search within the site for some of the terms within the URL. The user experience was actually seemless with this approach, however a quick look at Fiddler showed that the 404 response was still served before my code hijacked it and served up the 301, meaning the search engines would assume the pages were gone. Back to the drawing board.

Rejected Solution #2 – storing URL rewrite mappings in a separate file

It was at this point that I gave up on my desire to have a user-editable list of redirects (perhaps prematurely). Our specific requirement was simply to redirect the old URLs to the new, future redirections were more of a nicety I was trying to provide. I knew a bit about managing redirects in IIS (I referenced Jeremy Thake’s post How we did it: 301 Redirects in IIS 7.5 on Windows Server 2008 R2 in my previous blog post) so figured I’d explore that track (I did have some reservations about blowing out the web.config particularly in relation to the 250kb file size cap, so I intended to use Ruslan’s Storing URL rewrite mappings in a separate file – I figured this would also allieviate the ‘adminstrative burden’ of managing them through IIS). The approach worked great – I could manage a set of old URL/new URL pairs in a separate configuration file, but to avoid the manual deployment steps I’d want it managed and deployed via our solution.

Unfortunately, that separate file had to exist along side the web.config in the IIS virtual directory for the site. I wasn’t able to reference an absolute path and deploy my configuration file somewhere within the SharePoint layouts directory. I investigated the ability to Deploy Files to SharePoint Web Application Virtual Directories At Feature Activation via Brian Jackett but the noted flaws in that system and the complexity around it quickly turned me off. Back to the drawing board.

Implemented Solution – writing URL rewrite mappings to web.config via feature

My next approach was to take a look at managing the redirects within the web.config itself. I did have concerns regarding blowing out the file and the maximum size limit for it – but tests soon proved that we wouldn’t even get close to that figure, so it wasn’t as much of a concern as I had made it out to be. So this approach worked fine too, the challenge was to remove the manual administration/deployment steps out of the process. Enter Using SPWebConfigModification to Update the Web.config in SharePoint 2013. I think i’ve explained how to do that reasonably well in that post (which i’ve also now updated to include some new information) so i’ll jump straight into some code snippets you can use in combination with that post.

            SPWebConfigModification modification = new SPWebConfigModification();
            modification.Path = "configuration/system.webServer";
            modification.Name = "rewrite";
            modification.Sequence = 0;
            modification.Owner = "ETIWebConfigModifications";
            modification.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode;
            modification.Value = "<rewrite />";
            webApp.WebConfigModifications.Add(modification);

            modification = new SPWebConfigModification();
            modification.Path = "configuration/system.webServer/rewrite";
            modification.Name = "rewriteMaps";
            modification.Sequence = 0;
            modification.Owner = "ETIWebConfigModifications";
            modification.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode;
            modification.Value = "<rewriteMaps />";
            webApp.WebConfigModifications.Add(modification);

            modification = new SPWebConfigModification();
            modification.Path = "configuration/system.webServer/rewrite/rewriteMaps";
            modification.Name = "rewriteMap";
            modification.Sequence = 0;
            modification.Owner = "ETIWebConfigModifications";
            modification.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode;
            modification.Value = "<rewriteMap name='Redirects' />";
            webApp.WebConfigModifications.Add(modification);

            modification = new SPWebConfigModification();
            modification.Path = "configuration/system.webServer/rewrite/rewriteMaps/rewriteMap";
            modification.Name = "redirect-1";
            modification.Sequence = 0;
            modification.Owner = "ETIWebConfigModifications";
            modification.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode;
            modification.Value = "<add key='/eti-overview/profile-of-education-training-international.html' value='/about-eti' />";
            webApp.WebConfigModifications.Add(modification);

            modification = new SPWebConfigModification();
            modification.Path = "configuration/system.webServer/rewrite";
            modification.Name = "rules";
            modification.Sequence = 0;
            modification.Owner = "ETIWebConfigModifications";
            modification.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode;
            modification.Value = "<rules />";
            webApp.WebConfigModifications.Add(modification);

            modification = new SPWebConfigModification();
            modification.Path = "configuration/system.webServer/rewrite/rules";
            modification.Name = "rule";
            modification.Sequence = 0;
            modification.Owner = "ETIWebConfigModifications";
            modification.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode;
            modification.Value = "<rule name='Redirect rule1 for Redirects' />";
            webApp.WebConfigModifications.Add(modification);

            modification = new SPWebConfigModification();
            modification.Path = "configuration/system.webServer/rewrite/rules/rule";
            modification.Name = "match";
            modification.Sequence = 0;
            modification.Owner = "ETIWebConfigModifications";
            modification.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode;
            modification.Value = "<match url='.*' />";
            webApp.WebConfigModifications.Add(modification);

            modification = new SPWebConfigModification();
            modification.Path = "configuration/system.webServer/rewrite/rules/rule";
            modification.Name = "conditions";
            modification.Sequence = 0;
            modification.Owner = "ETIWebConfigModifications";
            modification.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode;
            modification.Value = "<conditions />";
            webApp.WebConfigModifications.Add(modification);

            modification = new SPWebConfigModification();
            modification.Path = "configuration/system.webServer/rewrite/rules/rule/conditions";
            modification.Name = "add";
            modification.Sequence = 0;
            modification.Owner = "ETIWebConfigModifications";
            modification.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode;
            modification.Value = "<add input='{Redirects:{REQUEST_URI}}' pattern='(.+)' />";
            webApp.WebConfigModifications.Add(modification);

            modification = new SPWebConfigModification();
            modification.Path = "configuration/system.webServer/rewrite/rules/rule";
            modification.Name = "action";
            modification.Sequence = 0;
            modification.Owner = "ETIWebConfigModifications";
            modification.Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode;
            modification.Value = "<action type='Redirect' url='{C:1}' appendQueryString='false' />";
            webApp.WebConfigModifications.Add(modification);

The only concerns I had left were around the performance implications of managing so many redirects within IIS/the web.config, but they were soon allayed via How to check for performance in URL Rewriting and IIS Rewrite Module rewrite map performance.

Was there a better option?

In the end I was pretty happy with the end result. I managed to take the burden off the infrastructure team (activating a web-app scoped feature is no significant task), managed to take the manual administrative steps (such as deploying files to specific locations which would need to be repeated if new WFE’s were added to the farm) out of the process and provided a seemless experience for the users while maintaining good SEO practices. The only thing I didn’t achieve was providing the user the ability to manage the redirects and I couldn’t help wonder if that was possible.

Thankfully I have the pleasure of working with someone who’s seen it all before and had a chance to try a few different approaches to this problem over time! Faced with this same challenge (but at a much larger scale), his solution was to create a custom IIS module which inspected the 404 requests going to the redirect page and converted them to 301’s, then a custom web part on that page did another 301 if it found an item in the old-new URL list, otherwise it wrote 404 to the response header for the nicely branded 404 error page.

The only downside to this approach I could see was the need to install the custom IIS module on each server – however is that really worse than having to install the IIS rewrite module on each server? Probably not. The approach also had a significant unexpected upside – by monitoring the analytics on the 404 page they were able to identify legacy links which were still being used across the web, and had the ability to redirect those to a new URL on the fly and provide ongoing functionality to redirect merged/renamed/moved pages on the ever evolving web site.

So hopefully this post has given you a few ideas regarding how to implement your redirects when upgrading a legacy site into SharePoint. As always there are pro’s and con’s to each approach but there are definitely options available to achieve a decent result to meet a number of different requirements.

Thoughts on the Salem™ Certified Practitioner Online Course

It’s been a while since I’ve completed a course for SharePoint, generally sourcing new knowledge myself from where ever I can get it. I recently however had the great opportunity to undertake the Salem™ Certified Practitioner online course and thought it worthwhile jotting down my thoughts on both the content and the course itself. In the interests of full disclosure it’s important to note that I was given this opportunity complementary for my contributions to the SharePoint community, particularly my writings around Governance in SharePoint, however it in no means came with the promise of a favourable (or any) review so I can assure you the following is written with an open and unbiased point of view.

I first came across Salem™ as a company when I stumbled across Step By Step Search Engine Optimization for SharePoint Internet Sites while reviewing existing material for my own series on Search Engine Optimisation (SEO) for SharePoint Sites. I was highly impressed that a lot of the content that I already knew and wanted to communicate through my writings was so well structured into a complete and sequenced approach to implementing the topic – its a book that I’ve recommended to a number of people already. It motivated me to read through all 150 pages of SharePoint Governance & the Seven Pillars of Wisdom (which it now seems is only available through taking the practitioner course) that I came across during my readings for the Governance series I mentioned previously – this again left me highly impressed with the methodical approach to the topic.

It’s therefore no surprise that I now find out that the whole premise behind the name Salem™ is that it represents a Structured and Logical Enterprise Methodology to approaching SharePoint implementations. To be honest it couldn’t have come at a better time for me personally – I was consuming a lot of great information but was struggling to identify how it could all be applied at a client (read: sell the ‘complete’ message rather than always approaching tasks with a specific focus). All of the presentations in this area tend to focus on a specific topic (for instance governance, adoption) which while they all have merit tend to be harder to sell to an organisation individually.

I’d go as far as saying that was the most valuable take away I received from completing the course. Even though Salem™ is a great delivery methodology and logical in its approach, more importantly it serves as a vehicle to sell the story of approaching SharePoint implementations as a complete and business-focused programme of work.

I found the framework itself to be very solid. From looking at it initially it wasn’t obvious how all the pieces would fit together, however after taking the course I’m comfortable that every piece to the puzzle is justified and covers the wide breadth of what SharePoint has to offer as a platform.

Salem™ is essentially broken up into 15 different business service modules which are often inter-related and positioned in the framework diagram for specific reasons. While I’d love to be able to show the diagram to better explain the process, you’ll have to take the course yourself to see how succinctly it encapsulates a complete body of work. The modules are divided into different channels which also have a logical separation, supported by a number of layers which remove the focus of technology and supporting concepts from the business services themselves (while still emphasizing their importance to the ‘whole’) – allowing you to focus in on a particular service and break them down through various workshops.

As you can probably tell, i’m quite a fan of the framework and find it hard to fault, so i’ll turn my attention to the course itself and the certification it enables. I’d highly recommend if you have an interest in these topics that you take the course yourself and discover what it has to offer.

There is a bunch of information regarding the course which is worth a look if you have an interest in taking it or finding out a bit more about what it is all about. The Genius! website has a short synopsis and video which explains what the course will contain (it is the introduction video to the course so you get a feel for what the video material will be like, and if you have super human eyes you may even be able to gain a sneak-peak into what the Salem™ diagram will end up looking like!) while if reading is more your thing then take a look at the course summary at The Independent which contains a great deal of information.

I found the course content to be well structured in terms of breaking up a huge amount of information into consumable parts. Most sections within the course contain an introduction text, slides, a video and associated study reading material – you’re then required to take a short multiple question test. I did have a number of suggestions to improve the overall aspects of the course (for instance including contextual notes in the slides, not providing the answers to the tests until they’re passed and explaining why particular answers within the tests were right or wrong) which was all taken on board and thoroughly explained – some was even already known and in the process of being adjusted. From what I could gather the small number of improvements I could see were already well on the way to being improved before I had mentioned them which is testament to the quality of the course in that it will continually improve.

I found the length of the course suitable – it covered off the information you needed to know in enough forms for it to sink in. I was also highly motivated at the start to consume the information which never faded throughout, also testament to the quality of the content. I’ve read that the course is meant to take roughly 40 hours however I managed to do it in less than half of that (granted I had already read the Governance book which shaved some time).

The one thing I did find is that the course left me craving more – particularly its minimal focus on breaking down each individual business service into separate workshops. Of course this is where the Master course comes in so it’s no great surprise this is the case – but i’d just warn that you should be prepared for the same desire and/or strongly consider purchasing one of the packaged course offerings for a cheaper price! I’m looking forward to the opportunity of completing both the Master course and the Presenting the Salem™ Framework Workshop Masterclass in the near future.

After completing the course you’re granted full membership of the World Association of SharePoint Business Strategists. I love the idea of the group and particularly as a way of grouping like-minded individuals, disseminating information and providing a code to work by, however i’m unconvinced such a group should be associated with one particular proprietary framework and also feel it would be given further significance if it was backed by Microsoft themselves. Those points aside, I admire the entrepreneurial mindset that identified the gap in the market and filled it initially and still consider myself a proud member!

If you’re left with any doubt about the quality of Salem™ then it’s worth having a read of Gartner’s Competitive Landscape: Microsoft SharePoint Consulting and Implementation Services, North America and Western Europe. While it is discussing it in the context of consulting services, it does give a strong insight into how a company like Gartner rates the framework itself. For another opinion on the Salem™ Certified Practitioner Online Course you can have a listen to Dell’s Simon Farquharson discuss his experiences with the course.

So that about covers it. I’d be happy to answer any questions anyone has about the framework or the course itself, and i’m sure Ian himself would be more than happy to do so as well going by how generous he has been with his time and replies to the questions I had – so feel free to fire away.

Building public facing websites on SharePoint 2013 – Part 2

Following on from my slides discussion at Building public facing websites on SharePoint 2013 – Part 1, this article will dive into the 4 demonstrations which accompanied the session.

Branding with the Design Manager

Before I started, I had performed the following steps:

  1. Took the home page template, moved all resources into the same directory and adjusted the links (resources could be stored anywhere really, this is how the examples generally have it)
  2. Removed any ‘form’ elements and replaced them with DIVs (these could be made functional later)
  3. Ensured the template was XHTML compliant
  4. Created a new web application with a site collection using the Publishing template

Using the Design Manager to create a custom branded Master Page:

  1. Click on the Design Your Site link on the welcome page or access it via the ‘cog’ which represents site actions and select Design Manager (this page gives you a wizard type interface to complete the process – however a lot of the steps are just information regarding how to carry out a particular step)
  2. The first step we’re interested in is uploading our design files and to achieve this we need to map the network drive
    1. Open File Explorer
    2. Right click on ‘Network’ and click ‘Map network drive’
    3. Connect to the Master Page catalogue (which is linked to on that page)
    4. Copy the entire design folder in there
  3. Once we’ve done that we want to publish all the files in SharePoint either by going to the Master Page gallery in Site Settings or using Manage Content and Structure (which has been removed from the Site Actions, you now have to go to Content and Structure in Site Settings or just type in the address manually)
  4. Back to Design Manager and Convert an HTML file to a SharePoint Master Page (select our html file and click insert)
  5. Click on the link to the new master page to open it up and see if there are any issues – note that the content placeholder is placed at the bottom of the HTML file
  6. Open up the HTML file again via the mapped drive and move the snippet to the right location – we can grab the placeholder main snippet and paste it where we want it to be, removing the temporary display div (you can see that a number of snippets have been inserted into the HTML file so it’s important not to mess around with them if you’re not sure of what you’re doing)
  7. Save the changes – that automatically updates the master page, we can now publish it and assign it to be the master page for our site
  8. View the home page – the master page has been implemented

A few other features I showed but didn’t delve into:

  1. You can create a linked page layout by going to Edit Page Layouts in the Design Manager and clicking on Create a page layout (if we go into our mapped drive we can see that the HTML has been created and can then edit that like we did the master page which will automatically update the layout)
  2. We also have the snippet generator which we can get to by opening one of our master pages and clicking the Snippets link (there’s a bunch of pre-defined snippets which you can customise and copy into your master page or layouts – you can also use the custom ASP.NET Markup snippet to insert pretty much anything you can think of including references to custom controls you’ve deployed)

A couple of things worth mentioning:

When I was first looking into the suitability of the design manager I weighed it up against the starter master pages Randy Drisgill creates (he has 2013 versions). I ended up going down that path for a number of reasons:

  • for highly customised sites the whole snippet generator function didn’t seem efficient
  • the source control and deployment story for the branding elements is less than optimal, even though you can export packages it’s easier to keep everything together in one solution
  • editing the HTML with all the snippets in there seemed more confusing, particularly for page layouts which are generally much more simple in VS
  • my general impressions were that the Design Manager was great for designers and that was its purpose – if you’re a SharePoint developer, the standard VS method of development was more efficient

However later when I was figuring out a bug which existed in an earlier version of the starter master pages (and still appears to be there), it became apparent that the master page generated from that process was almost identical to the starter master page – so in future I would use the Design Manager to create the initial Master Page, bring it into Visual Studio and take it from there.

Another thing worth mentioning is that if you are trying to peel back the Master Page to make it as minimal as possible, you may be tempted like I was to remove the AjaxDelta elements which exist for the Minimal Download Strategy which is unfortunately not available for Publishing Sites. SharePoint however relies on the one surrounding the main content placeholder to insert the web part property editing toolbar so make sure you at least leave that in (that was actually the bug in the early version of the starter master page). I also wouldn’t advise on removing the DIVs with the IDs s4-workspace and s4-bodyContainer unless you want to lose your scrollbars.

Managed Navigation & Friendly URLs

  1. Firstly you need to ensure that the Managed Metadata Service application is available for your web application as it is what drives the friendly URLs
  2. You also need to ensure that a default Managed Metadata Service has been selected – you do this in Central Administration (if this has been done before the web application is created then the site will use managed navigation by default)
    1. Go to Manage Service Applications
    2. Click on the Managed Metadata Service connection (the proxy) and click Properties
    3. Check the ‘This service Application is the default storage location for column specific term sets’ checkbox
  3. If your site is still defaulting to the /Pages/Page.aspx URL then you need to set up Managed Navigation as the default in site settings
    1. Go to Site Settings and the Navigation link
    2. Select the Managed Navigation options and create a term set and click OK (the Add new pages automatically and create friendly URLs automatically are selected by default – this can be changed if desired)
  4. Go back to the site and see that the URL is now in a more friendly fashion
  5. Add a new page from the site actions menu to see that it is automatically given a friendly URL to access the page by
  6. Go back into the Navigation settings where we can open the Term Store Management Tool and configure our managed navigation – if we select our managed navigation term set there are a few useful options which will come in handy for setting up the managed navigation for a site
    1. Custom Sort is particularly useful if you want a navigation order different to the default alphabetical
    2. You can move the terms around if you want a particular navigation structure other than what was created by default
    3. For a term which is acting as a container rather than a page itself you can select the Simple link or header navigation node type
    4. You may also want a particular page to not appear in the navigation – particularly pages like disclaimers and copyright statements etc – you can uncheck the Visibility in Menus options in these cases
    5. You have the ability to customise the friendly URL if you weren’t happy with the default value automatically assigned via the pages title
    6. If you’re creating the navigation structure after the fact for pre-existing pages, or if you create additional duplicate navigation for a page, you can set the Target Page for this Term to associate the term with the relevant page

3 major points I’ve come across when working with Managed Navigation:

  • If you’re creating a custom navigation control or using something like Waldek Mastykarz’ Templated Menu you’ll need to access the Global or Current NavigationTaxonomyProvider rather than the Global or Current NavSiteMapProvider. One issue to consider here as well is that because you can access the page via the friendly URL or the standard structured URL the taxonomy provider will only work if you accessed it via the friendly URL
  • If you’re editing content and want to link to your page, you should no longer use the Link from SharePoint option and browse to the page you want to link to, because it will use the structured URL in the link. Even though the page will load at this URL you lose the friendly URL when you visit the page and you also cause search engines to think there is duplicate content on your site if it can hit the page from 2 different URLs – so unfortunately you should only use the Link from address option
  • The third point is more of an annoyance than anything else, but I’ve noticed a lot if you do particular actions on a page such as editing the page properties, when you’ve finished that task you’re taken back to the structured URL rather than the friendly URL, so I think there are still a few kinks to iron out

Content by Search & Display Templates

In the network connection to the Master Page Gallery set up earlier there is a folder called Display Templates – depending on what sort of template you want to edit or create, in general you’ll find that for content by search web parts you’ll need to edit within the Content Web Parts folder and for search results you’ll need to edit within the Search folder.

You’ll see both HTML and JavaScript files within there – this is similar to the link between the Master Pages and the HTML files we saw before – you only need to edit the HTML file and the JavaScript will automatically be updated. Similarly so if you are creating a new display template then you just need to drop the new HTML file in there and the JavaScript will be automatically created.

The best technique I’ve found to work with these templates is to grab an existing HTML file, edit it to suit your needs then drop it back in to the folder. This will automatically create the JavaScript which you can then take and deploy in your solution.

What is important in this process is how you define the template within the feature – I’ve identified a subset of data that if you happen to leave out then your display template won’t appear for selection in the various web parts (this subset was discovered after some research following reading the thread How to deploy display templates via feature).

 <Module Name="SearchDisplayTemplates" Url="_catalogs/masterpage/display templates/search" Path="Display Templates" RootWebOnly="TRUE">
    <File Url="Item_ETI.js" Type="GhostableInLibrary">
      <Property Name="Title" Value="ETI Item" />
      <Property Name="TemplateHidden" Value="FALSE" />
      <Property Name="TargetControlType" Value=";#SearchResults;#" />
      <Property Name="DisplayTemplateLevel" Value="Item" />
      <Property Name="ManagedPropertyMapping" Value="'Path'{Path}:'Path','Title'{Title}:'SeoBrowserTitleOWSTEXT','ETIDescription'{ETIDescription}:'ETIDescriptionOWSMTXT'" />
      <Property Name="_ModerationStatus" Value="0" />
    </File>
    <File Url="Control_ETI_HelpAndAdviceSearchResults.js" Type="GhostableInLibrary">
      <Property Name="Title" Value="ETI Help and Advice Search Results" />
      <Property Name="TemplateHidden" Value="FALSE" />
      <Property Name="TargetControlType" Value=";#SearchResults;#" />
      <Property Name="DisplayTemplateLevel" Value="Control" />
      <Property Name="_ModerationStatus" Value="0" />
    </File>
  </Module>

When taking a look at the elements file snippet above which deploys the templates you can see the subset of data which is required. The target control type and display template level are both quite important fields as they determine where the template is available to select within the web parts, for instance a SearchResults Item template will be available from within the search results web part at the item level. The only difference among these entries is the managed property mapping property which is required if the template is dealing with non-standard fields – anyone familiar with editing XSL for the content query web part to display managed properties will see this as being a fairly familiar process.

Aside from the obvious use cases of determining the display of both content by search and search results web parts the other use I’ve found for editing these templates is to modify the hover over effect from within the search results – for anyone who’s not seen it basically when you hover over a search result you get a hover item come up to preview the document or page similar to how current web search engines respond and then there are some link options available such as open, share, alert and so forth – however on public facing sites it may not make sense to show some of these links, particularly for alerts where the anonymous user won’t be able to sign up for them, so you can create a new template which hides those links and associate the new template with the particular file type via the manage result types interface in site settings.

SEO features in SP2013

This one was nice and quick. As a prerequisite you need the publishing feature activated to access the SEO properties.

For any given publishing page across your site you can edit the page, go to the Page tab in the ribbon, drop down Edit Properties and select Edit SEO Properties.

The main features here are the ability to set a browser title, the meta description and keywords. We also have the ability to exclude a page from the generated XML site map if we don’t want it to be crawled.

Once we’ve entered in those values, we can view the source of the page and see that the page title is the Browser title and the meta description and keywords exist on the page.

Funnily enough the Browser Title feature (which seems almost redundant) had an unintended benefit for a current site I was building – the design included a heading structure whereby the largest title was one reflected on a parent node (could be many levels deep) and the sub-heading was the title of the page – I was able to set the Browser Title to be that of the page and set the page title to be that of the parent’s title which needed to be shown and rendered that through a field control without fear that the incorrect title would affect the Browser bar’s title or have any SEO implications.

The other SEO features are in Site Settings under Search Engine Optimization Settings which allows you to do a couple of things:

  • Firstly, you can enter in other meta fields which will be inserted onto your page
  • Secondly, you can list Canonical URLs which are basically where a given page would display the same content even if the query string was different – you can get the search engines to ignore those query elements

Another SEO feature requires you to activate a Site Collection Feature being the Search Engine Sitemap feature – this ensures SharePoint generates a Sitemap.xml and robots.txt file for the site. That feature exposes another link in Site Settings called Search Engine Sitemap Settings where the robots.txt entries can be customised. Your site is required to have anonymous authentication enabled for the sitemap feature to work.

Building public facing websites on SharePoint 2013 – Part 1

Yesterday I had the great opportunity to present at the Perth leg of SharePoint Saturday for 2013. Overall the event was a resounding success – the turnout was reasonable considering it was the day of the state election and while the numbers may have fluctuated across the entire day, a number of sessions were well attended in all of the time slots. I had roughly 25 in my session which didn’t reach the great heights of my user group session on Harnessing Client-Side Technologies to Enhance your SharePoint Site however seemed a decent turnout considering there were 2 other quality sessions on at the same time and the overall numbers would have been less than the many which attend the monthly UG sessions.

After having some success with my previous session linked above I decided to follow the same presentation format – half an hour dedicated to slides and theory and another half hour dedicated to demonstrations. At the end of the day I probably whipped through the slides a little quicker than I expected which guaranteed I had enough time to finish off the 4 demo’s I had hoped to get through.

This post will run through the background to each slide shown below, then part 2 will give a run through of the steps and comments associated with each demonstration performed.

Building public facing websites on SharePoint 2013

The cover slide gave me an opportunity to thank everyone for supporting SharePoint Saturday in Perth and particularly choosing my session for the time slot – it’s definitely something I appreciate and is worth repeating in this post. I covered off a little bit about myself and explained my public facing website journey on SharePoint starting at Tourism on the now infamous westernaustralia.com website and various partner sites to my more recent experiences at the Department of Training and Workforce Development on various departmental and TAFE institution web sites – the most recent being developed on SharePoint 2013.

Agenda

There were 2 main things I wanted to get out of my session – firstly I wanted to generate some excitement on the possibilities that existed around building public facing websites on SharePoint 2013 but also transfer some knowledge around the key areas which are often neglected when building an internet facing site. I wanted to cover off how each version of the platform performed in each area then explore the new and exciting features which exist for web content management on SharePoint 2013, backed up by a number of demonstrations on my favourite features.

Branding & UX

Most people think branding SharePoint is all about slicing and dicing images into Master Pages and Page Layouts – and while this is a large part of it, there are a number of other factors which should be considered for a successful site. Implementing Custom Error Pages is one factor which is often forgotten about and can make the difference between your site looking professional or incomplete. The client-side and search experience is another area which can transform your site from something which looks good to something which performs great.

Search Engine Optimisation

SEO is often neglected or considered as an afterthought once the website has already gone live and traffic is not up to expectations – it is a crucial factor to consider to maximise the number of visitors to your public facing site. The topic is worthy enough of a presentation of its own however I have a 3-part blog series on Search Engine Optimisation for SharePoint Sites and Ian McNeice has written a great global SEO strategy book which cover the details. The main takeaway from this slide was that effective SEO requires a 3-phased approach – identify the keywords and phrases which are most effective to optimise for, optimise your site for those keywords and phrases and finally think outside the box for ways in which you can drive traffic to your site – rating well in the search engines in merely one component to an overall strategy.

Performance Optimisation

If SEO is all about bringing people to your site then Performance Optimisation is all about keeping them there. There are some great statistics and studies on the web which link bounce rates to page performance so it is most definitely an important factor to consider when building a site. There is a common misperception that SharePoint is inherently slow but that’s not a theory I subscribe to – a poorly developed and optimised site will perform badly on any platform – it’s just that SharePoint is easy to blame. Again this is another area in which an entire presentation could be dedicated and while I have another 3-part series on Performance Optimising SharePoint Sites the main takeaway was that while there are a number of generic and SharePoint-specific tasks you can target to optimise a site, there are also a number of great free tools available to benchmark and measure the performance of your pages including webpagetest.org, ySlow and Google Page Speed.

Accessibility

From a couple of topics which are often neglected or postponed to one which is often discarded completely. While it’s understandable how accessibility sometimes falls by the wayside due to its at-times difficult and time consuming implementation on SharePoint it’s interesting to note the time often dedicated to cross-browser compatibility for browsers with a lower percentage of use compared to the numbers that would benefit from an accessible site. This is particularly important for WA Government Organisations who have a mandate to ensure all websites are WCAG 2.0 compliant by the end of 2013. Vision Australia has written a great whitepaper on Achieving Accessibility in SharePoint 2010 which should be read for more information.

SharePoint 2007

So how does each version of SharePoint fare in these areas? Before I start it’s important to point out that any discussion on Licensing is generic and ballpark – I’m no licensing expert and the numbers have been taken in US dollars and at the time they were relevant – see the hyperlinks for the source.

Licensing: MOSS was fairly expensive to host public facing sites. At roughly 40k per internet server plus external connector licenses and with best practice guidance recommending a staging server with content deployment to production you can quickly see how even with a small web farm of 2 front end web servers and an application server how costs would add up.

Branding: Nothing to write home about here – we had ASP.NET 2.0 Master Pages and Page Layouts but that’s about it. Guidance was low in the early days, the starter master pages had yet to become mainstream. Custom Error Pages (other than 404) were particularly difficult to implement. jQuery had yet to take hold which left us with the AJAX toolkit and UpdatePanels which unfortunately required a number of manual web.config modifications to get working. MOSS for internet sites required an enterprise license, so at least we had enterprise search.

SEO: Practically non-existent. Even targeting the most basic of generic techniques generally required custom development.

Accessibility: If SEO was bad then accessibility was worse. View source of a MOSS-hosted site and you’ll see table hell – I pity anyone who had the task of getting MOSS 2007 accessible.

SharePoint 2010

Things were a little better in 2010, this is generally how it measured up:

Licensing: While we were no worse of in 2010, we weren’t really much better off either. Enterprise internet servers were still around the 40k ballpark although the external connectors were a bit cheaper. We did have the ability to purchase Standard licenses for internet sites which would be about 25% of the price – however there were a few caveats which often meant this wasn’t feasible, particularly the inability to host multiple domains on the server.

Branding: The Master Page and Page Layout story was the same, however there was far more information available plus the starter master pages had become widely used. jQuery had taken off and there were a number of blog posts regarding how to include it in SharePoint and a number of plugins which could be leveraged, and if you were still stuck with the AJAX toolkit then at least it was supported out of the box. We had the option of using FAST search for internet sites (for an additional license cost) which gave some flexibility around search. The custom error page story was much better – far easier to implement across the board compared to SharePoint 2007.

SEO: Unfortunately much the same – custom development was still required.

Accessibility: Thankfully much better – SharePoint 2010 launched with the goal to being WCAG 2.0 AA compliant and while it didn’t quite get there, the HTML rendered was much cleaner (aside from the tables generated by web part zones) and there was guidance around making 2010 completely compliant via the whitepaper I’ve mentioned above.

SharePoint 2013

Definitely the best of the bunch which is no surprise considering I dedicated an entire presentation to it.

Licensing: While there may be no official licensing details available, a number of sources suggest that the licensing for 2013 will be far more affordable. No longer do we need internet server licenses – an enterprise license with internal CALs will suffice. FAST search is now also inbuilt rather than being an additional licensing requirement.

Branding: Has changed completely in 2013. While we can still use the tried and true method of Master Pages and Page Layouts in our VS solutions, we now have the Design Manager which puts the power into the Designer’s hand and removes the need to have SharePoint developers implementing branding. There is also webdav support to connect to the master page gallery directly with an ability to edit linked HTML files which will automatically update the associated master page. A custom 404 page is provisioned and editable straight out of the box in 2013 and the other error pages are just as easy to implement as 2010.

SEO: Finally the platform has treated SEO with the respect it deserves – a number of generic SEO requirements being available straight out of the box.

Accessibility: The HTML markup is cleaner again, web part zones no longer rendering out tables. I’m unsure if 2013 is completely WCAG 2.0 compliant however if it is not, it would definitely take less effort to ensure that it was.

New Features for WCM in SP2013

A large number of new features exist for web content management in SharePoint 2013 however these are the ones I believe will be the most useful for building public facing sites.

Pasting content directly from word: Previously the experience of pasting content directly from word was a painful one – embedded styles would remain and cause certain pages to look completely different from the rest of the site’s style. This new ability will remove the need to use notepad as a go-between when pasting content from word to SharePoint.

Image renditions: This feature is getting a lot of airplay currently over the web and for good reason – it’s a great new feature. Essentially allowing you to upload one larger image and create different ‘renditions’ of the image at different dimensions, this feature will be great for mobile versions of websites which will allow a smaller file-sized image to be downloaded for rendering. Requires the BLOB cache to be enabled.

Cross-site publishing: Another highly useful feature in SP2013. Allows content to be published from one site collection to another. Many practical uses include separating editing/publishing environments, variations and particularly relevant for myself and government departments who host multiple sites – being able to share content between them while maintaining the individual branding of each department’s site.

Managed navigation / friendly URLs: My favourite feature of the lot – managed navigation is a step away from the structured navigation we’ve grown accustomed to. Allows you to define a taxonomy hierarchy which will drive navigation. Most importantly it allows you to implement friendly URLs which users have been crying out for for some time but also allows you to decouple structure from navigation ensuring you no longer have to create numerous sub-sites just to position a particular page at a given URL.

Search driven content: Used significantly for the purposes of cross-site publishing, it also has other uses including amalgamating content. Similar in theory to the content query web part however uses search as its content source – necessary if you want your friendly URLs to be rendered via the query. The best part is that XSL is no longer required to style the output – we can now use HTML and JavaScript via Display Templates.

Design Manager + Device-specific targeting: While I mentioned the Design Manager previously, another great feature is device-specific targeting. This allows you to use the same pages and content but recognise the device accessing it so you can use different master pages and styles to render that content – highly valuable for mobile sites.

SEO features: Some search engine optimisation techniques are now available out of the box which is fantastic news for those building public facing websites on SharePoint 2013.

WCM Feature Demos

Refer to Building public facing websites on SharePoint 2013 – Part 2 for a run through of the demonstrations which were performed in this session and some of the comments surrounding them.

Questions? Comments? More info..

While no questions were asked on the day it probably had as much to do with the session running its full hour and lunch having already been served rather than the presentation being so comprehensive that no questions were necessary! If anyone has any questions or comments feel free to leave them on this post or get in touch with me directly.

Thanks for listening

And thanks for reading! It was a pleasure being able to present this session on such a great day at such a well organised event, Brian Farnhill and the team did a great job putting everything together, the sponsors came on board to offer a great venue, food and prizes for the day and I look forward to being a part of it sometime again in the future.

Share Conference 2012 Wrap up

Late last month I was fortunate enough to attend Share 2012 in Melbourne. I went in with mixed expectations with my initial impressions being that the presenters were a mix of well known international personalities, business leaders and vendors with the topics having a focus towards social SharePoint and business-relevant concepts around successful implementations. At the end of the 3 days I have to say my expectations were easily exceeded. The conference was professionally run and the majority of sessions I attended were well delivered on relevant topics with a scattering of world-class presentations thrown into the mix. The number of valuable takeaways from the conference was impressive.

I’ve attended a few conferences in the past, most being large scale Microsoft run Tech-Eds or low-key single day events. Surprisingly, at the end of the day I felt that I got more out of my 3 days at Share than I had at any other conference I’ve experienced. There were certainly areas for improvement with the social networking night events lacking in comparison (possibly a factor of the comparatively low price or lack of major Microsoft backing/subsidising) but overall from a quality and value standpoint the conference was top-notch.

A previous bugbear of mine when attending conferences was that the sessions I really wanted to see always seemed to clash and at other times I had no particular interest in any of the topics available to select from. Thankfully Share managed to avoid this with the major international ‘headliners’ rarely if ever clashing and a clear delineation between session tracks which meant that almost always there was a clear choice for me. Whether this was down to the fact that the conference had less sessions to schedule compared to other major conferences or whether it was all down to the planning I’m not sure, but it was certainly appreciated.

Rather than turning this post into a gushing review of the conference I want it to be more about the sessions I attended and the takeaways I got from each one. If you ever have the chance to watch a webcast or view these sessions at another event I’d highly recommend it.

Opening Keynote Presentation: Deliver SharePoint Success – Achieve Organisational Buy-In to Transform Your Enterprise

Dux Raymond Sy, Innovative-e, Inc. (USA)

I’ve always wanted to see Dux in action. My only exposure to him in the past has been over twitter with a constant stream of tweets, but the feedback and aura he seems to have made it worth it alone. I wasn’t disappointed. This session was a great start and set the tone for a great couple of days – plus a little Gangnam style never goes astray.

Key takeaways:

  • The 5 steps to achieve Organisational buy-in
  1. Gain executive engagement
  2. Educate & engage the business
  3. Assess enterprise readiness
  4. Establish SharePoint roadmap
  5. Promote sustainable adoption

Keynote Presentation: How eBay Built One Integrated Social Network to Increase Adoption on Collaboration With SharePoint!

Ramin Mobasseri, eBay Inc. (USA)

This one was a really interesting presentation to see how a major company like eBay was leveraging social and building upon SharePoint. The insights were great and inspiring, identifying how much can be achieved by integrating other networks into a SharePoint hub.

Key takeaways:

  • Develop a world-class intranet and don’t be afraid to integrate multiple tools

IM – Bridging the Gap Between the Technology and the Business

Megan Skapin, Santos Ltd

This session was a bit of a surprise packet and an excellent case study into how a major organisation implemented their information management strategy on SharePoint. Megan came across as someone who has gained so much experience from the process and had so many valuable insights into the lessons learnt throughout.

Key takeaways:

  • Executive buy-in is critical for success
  • Identify technology champions to promote the system internally
  • Start small, manage scope and continually add value in phased roll outs

Managing Demand, Responding to Change and Sustaining Adoption

Andrew Jolly, OBS

Continuing the theme of how to successfully implement a SharePoint solution, this session was another which helped ram home some of the key concepts and themes that were being delivered at this conference. It was good to get an insight from someone in a similar consulting situation as our company.

Key takeaways:

  • Changing perceptions, setting expectations and educating users is a major key to success
  • Don’t fear change, ensure that the system is able to change to meet business needs

Achieving Accessibility in SharePoint

Neil King, Vision Australia

Accessibility is a personal interest of mine and this was one of the sessions I was most looking forward to. Unfortunately, having previously read the white paper in which this presentation was largely based upon, it didn’t offer too many new insights – but the benefits were there for the crowd which hadn’t delved too deeply into accessibility, and the greater the awareness is amongst business the better.

Key takeaways:

  • Accessibility is achievable in SharePoint 2010 with appropriate customisation and governance

Other takeaways:

Aligning SharePoint to the Business – Why It’s Important

Garth Luke, AvePoint, Inc. (USA)

I loved this presentation. I was curious to see how it would pan out considering we at Ignia are AvePoint partners, plus I’ve had some exposure to Garth via twitter. Overall the content was thorough, expansive and well delivered – I really have no idea how it all fit in to one session.

Key takeaways:

  • Understand the business vision and goals – map the technology to the business
  • Ensure compliance and governance is in place
  • Build a structure, process and change management methodology to sustain growth

Leveraging the Power of Social Media, Without Using the F-Word

Josh Sewell, Velrada

While I’m already a convert to the Benefits of Harnessing Social in SharePoint for the Enterprise, I thought I’d come along to this one to support a fellow Perth-based consultant. It was good to see another consultant peddling a similar message, the more it’s heard around Perth the sooner organisations will start embracing social in a big way.

Key takeaways:

  • For social to be a success, in needs both organisational buy-in and the right organisational culture
  • Measuring the benefits of social will be a key to future social success

Discussion Session 2: How to Best Develop Requirements for SharePoint Projects

Dux Raymond Sy, Innovative-e, Inc. (USA)

This was a bit of a different type of session and based on the track I attended could be deemed to be a success. The discussion-based way of delivering the concepts worked well, and while I don’t think it was particularly better than if it was done as a presentation or workshop, it added value in terms of getting attendees talking to each other and networking.

Show Me the Money – A Practical Framework for SharePoint Metrics

Susan Hanley, Susan Hanley LLC (USA)

Somewhat sheepishly I must admit that this was my first introduction to Susan as a presenter or even as a ‘SharePoint personality’. What an eye opener – brilliant presenter, absolute gun on the topic and clearly world-class. I enjoyed this session immensely and if I was having any doubts about attending the closing keynote later in the day this session put that to rest.

Key takeaways:

  • Identify the business objectives, stakeholders, the metrics and how to collect them
  • Metrics should be SMART (Specific, Measurable, Achievable, Realistic, Time-bound)
  • Have a baseline and a target
  • Metrics should be used to optimise and improve the process

Other takeaways:

Microsoft Purchase Yammer: What Does This Mean to My Social Strategy?

Ramin Mobasseri, eBay Inc. (USA)

I attended this session because I wanted a little bit of an insight into what Yammer was, how it was being integrated into SharePoint and the story moving forward. It only touched on these things briefly – the session was decent, however with the other social sessions across the conference and the keynote session Ramin presented the previous day, it may have been overkill for me.

Key takeaways:

  • Yammer will only grow and be more widely adopted moving forward
  • Reinforcement that part of the reason for the Yammer acquisition was to gain insight into their rapid release cycles

Deliver Project Management on Your Terms With SharePoint

Dux Raymond Sy, Innovative-e, Inc. (USA)

What can I say, Dux is a gun. Little did I know that his keynote from the day before was just a warm up for what I considered to be one of the most valuable sessions of the conference. In terms of inspiring and educating the audience about project management on SharePoint it was top-notch. If you have any desire to pursue SharePoint as a project management tool, give this session a watch as a starting point.

Key takeaways:

  • Too much project management is dealt with in emails and file systems – SharePoint can help alleviate this issue
  • You can start small or with Project Server reach Enterprise levels
  • Using familiar tools will help adoption and ultimately success

Other takeaways:

A webcast of this session has found its way onto the net, take a look

A Brave New Hybrid World – What SharePoint 2013 Really Means to You

Dan Holme, Intelliem (USA)

Just when I thought the conference had peaked, up stepped Dan. This was my other highlight session of Share 2012 and one which inspired me to come back to my client and fight the good fight. Dan came across as a world-class presenter with a consistent message which was highly relevant to me right now.

Key takeaways:

  • SharePoint 2010 is essentially based on 2006 trends – 2013 bridges that gap
  • There will forever be a push to the cloud, but on-premise is not dead yet
  • Gone is the 3-year product release cycle, the cloud will be up-to-date and on-premise will catch up in stages
  • Don’t wait for SP1 – RTM quality is very high, Microsoft is now catering for a larger client audience and therefore has to mitigate initial take-up pain
  • Migrate from 2007 to 2013 – skip 2010

Other takeaways:

  • Dan has released a blog series regarding why you should migrate from 2007 to 2013 if you’re in that position: read parts 1 and 2

Closing Keynote Presentation: SharePoint Governance – Love It or Hate It – You Can’t Live Without It!

Susan Hanley, Susan Hanley LLC (USA)

It was a great way to end the 2nd day of Share with yet another fantastic presentation in a row – 3 of the best to bring the whole thing to a close. Governance has always been an interest of mine and it’s an area I tend to throw myself into significantly in the near future, so this closing keynote was perfectly timed.

Key takeaways:

  • Governance requires planning and commitment
  • Start with something worth governing, empower a team, have the right conversations
  • Align governance around business goals and policies
  • The final output should be limited – no big documents!
  • Incorporate governance into training – governance does not replace training

Other takeaways:

Workshop 2: The Practical SharePoint Business Analyst and Information Architect

Ruven Gotz, Senior SharePoint Consultant & Microsoft MVP (Canada)

The third day of the conference was based around 2 parallel workshops which, at a guess, were attended by 15-20% of the conference crowd. The others definitely missed out – the workshop was a highlight of the conference and definitely delivered as much if not more value than the 2 days of sessions combined.

The only downside was limited time, but Ruven did a great job condensing a full days worth of content (maybe even 2!) into the 5 hours or so we had to absorb it. As a bonus he introduced the audience to a couple of tools (one which I’ve had exposure to before) and gave us a copy of his book Practical SharePoint 2010 Information Architecture which will definitely be on my reading list.

Tools:

  • Mind mapping – xmind has a free version to use
  • Wire framing – Balsamiq is a great and relatively inexpensive option (one I can personally recommend)

So overall the conference in my opinion was a complete success. Not only was it hosted in one of my favourite cities in the world, it was a highly valuable 3 days of business-relevant content with a high number of practical takeaways. If you ever get the opportunity to attend one of these conferences I’d highly recommend it, and hope that I’ll get the opportunity to attend again in the future.

Harnessing Client-Side Technologies to Enhance your SharePoint Site

Yesterday I had the privilege of presenting at the Perth SharePoint User Group. The experience was sensational; the session went off without a hitch, the crowd was large, attentive and full of questions. Feedback both immediately after the session and that which filtered through later was very positive. As promised and to wrap up the event I thought it was only fitting that I posted my slides and a summary of the presentation – this is that post.

The day started off with a little milestone – something I’ve yet to see myself previously and which I expect is relatively rare for the PSPUG

100 tickets – the last one snapped up only hours before the event. I’ve been told Microsoft (who I must thank for allowing us to use their excellent facilities every month) was contacted on the day to hunt down some more chairs for the room. At best guess I’d say there was about 70-80 people who made it – evident by the few chairs left empty and the speed at which 15 family sized pizzas were demolished.

But enough with the background, onto the presentation itself. I had set it up to be roughly 30 minutes of slides and discussion and 30 minutes of demo. In the end I cut the demo’s a bit short – I figured it was more important to answer a few questions than explain the detail of what was going on for each one. I’ll fill the blanks in this post pointing off to the resources you’ll need to replicate the demos yourself. Along with posting the slides I’ll also jot down some of the main points I was trying to get across in each one.

Who am I

You may think this slide needs no explanation but I want to stress the point I made in the session again. While i’ve only recently joined twitter, the little gems of information I’ve been able to garner in that time have been extremely valuable. I avoided twitter like the plague, mostly due to an impression it was predominantly noise. It is. But if you can get past that you can get to its true value and keep in touch with what’s going on in the wider SharePoint community.

Agenda

I was tossing up between deep diving into one of the technologies or doing a broad brush overview of the lot – clearly the latter approach was taken. The goal of the session was to inform and inspire – there is plenty of information out there to read up on at a later date – some of which i’ll outline in this post.

JavaScript

Not much to say here – bit of an obligatory slide to round out the presentation as a whole. We’ll move on.

jQuery & The basics

Aside from the information, the main point I want to highlight is that jQuery really isn’t that scary. It simplifies JavaScript a great deal and the learning curve really isn’t that steep compared to the benefits you’ll gain from using it. It’s quite performant and efficient when compared to some of the .NET based AJAX libraries out there, it’s become one of my favourite technologies to use when creating public facing websites and I hope I impressed at least a few in the audience enough to give it a shot. For a primer on some of the basics and functions jQuery provides, have a read of the documentation.

Tips and Tricks

There was a fair few tips and tricks to cover in the session – rather than explain each one i’ll attempt to link off to a resource which will do the job for me.

Putting jQuery into noConflict mode

Making use of jQuery(document).ready()

Leverage callbacks

Don’t write scripts directly into the Content Editor Web Part

(Keep in mind it may not be suitable for staged environments with content deployment – converts the link to an absolute url!)

Know your options for referencing jQuery

(Although I don’t have a problem with referencing on the master page)

Enable Intellisense in Visual Studio

Know your options for debugging

(Don’t forget about the console window in Firefox! Can be very useful. Also, remember that different browsers can often end up shedding the light on your issue, so don’t discount debugging in multiple browsers)

It would be remiss of me not to give a shout out to Chris O’Brien considering the last 2 links are from his blog. In fact, all the posts of that series are worth a read so I’d definitely encourage you to do just that.

Plugins!

The true power of jQuery lies in the multitude of plugins available to be used. They can be a huge time-saver and with a bit of knowledge you can often customise them to suit your needs. There are hundreds of quality resources out there explaining which plugins are great – i’ll leave it up to you to explore!

Knockout

Knockout is fantastic. I can’t speak of it highly enough – do yourself a favour and check out the documentation and live examples to get a taste of what it is capable of. I could have done a whole presentation on Knockout itself – John Liu does a great one in his session SSPUG retrospective: Creating Knockout user experiences in SharePoint with JavaScript for those Aussies amongst us, definitely check it out if you get a chance. I hope I did it justice to peak your interest enough to dive deeper into the technology. Keep in mind that Knockout works brilliantly with both the jQuery templating libraries (jquery-tmpl or jsRender) and jQuery itself. I mentioned that while I’ve used jquery-tmpl in the past, it has been discontinued so you may want to look into jsRender instead.

SignalR

This is another topic that could have had a session to itself. In fact, Christian Heindel already did – it was nice to see myself in someone elses slides half a world away! I didn’t dive too heavily into this, it was more of a primer to spark some interest and simply let the demo do the talking.

Retrieving Data on the Client Side

To date I had only discussed the tools available to present information on the client – this slide was all about how we got that information in the first place. Rather than link to resources here (it should be really easy to search for them yourself) what I’ll do is outline my main points discussed.

Client Object Model: handy tool provided in SP2010. Need to learn the syntax which is different from the standard OM and should definitely know some CAML. Important to consider performance when writing this code.

REST services: absolutely love them. Extremely valuable with their ability to return JSON data simply by structuring the URL with query string. Their ability to return JSON makes them great to combine with Knockout or jQuery.

SPServices: extremely valuable library written by a member of the SharePoint community Mark D Anderson. Perfect for those stuck on SP2007 but also valid for SP2010. Have a read of the debate going on regarding when you should use one or the other.

HTTP Handlers: another tool at your disposal in SP2007. To be honest the main reason I have used these is because I wasn’t truely aware of the power of SPServices. The general premise is you fire off to the HTTP Handler which runs some server side code, serializes the data into JSON and returns it back via Response. Still handy if you simply MUST have JSON in SP2007.

Content Query Web Part: not strictly a client side technology, but it is so powerful out of the box that it deserved a mention. Combined with a bit of XSL it is truely one of if not the best web parts provided to us in SharePoint.

Demos!

And then it was time for the fun stuff. I considered recording all of the demo’s to place here but it wouldn’t have been as relevant without the accompanying dialogue, and I didn’t really want to record my own voice. I’ve settled for links to the inspiration behind each demo – if you have any questions feel free to ask and I will go into more detail.

Demo 1: Client Object Model & jQuery

This one came from a tweet I noticed a week before my presentation. Take a look at Using the SharePoint Client Model to populate a jQuery AutoComplete box by Douglas Leung. The delay you get before the autocomplete kicks in is because we’re waiting for SharePoint to load the relevant scripts before we bind the event.

Demo 2: SPServices & jQuery

Thankfully I dropped the right name in my presentation! It was Mark Rackley responsible for the inspiration behind An Easy to Use Content Slider. Sure his version isn’t as good as the one which featured some of the best the mighty Fremantle Dockers have to offer, but the general vibe of the slider is the same 😉

Demo 3: Content Query Web Part + XSL + jQuery

I’ve said all I need to say about this one in my post Using the Content Query Web Part and jQuery to create a staff desk locator so if you’re interested pop over to that post and take a look at the nuts and bolts holding it together. One point I did mention in the presentation is that the solution kind of grinds to a halt in the older versions of IE due to the struggles it has with larger-scale manipulation of the DOM.

Demo 4: REST services + Knockout + TMPL + jQuery slider + jQuery validation + jqPlot

Yes, there was a lot to this one. I did create this demo specifically for the session but my post on Applying the MVVM pattern to create SharePoint list-driven interactive tools using Knockout covers the jist of it. If not, just drop me a line.

Demo 5: SignalR

Definitely a topic which gets me pretty excited. The demo I showed was the same one I posted in Harnessing SignalR in SharePoint – complete with video! So check it out if you want a look under the hood at how we made that happen.

And that pretty much covers it. There were some great questions to follow the session, enough so that all of the left over SP Saturday ‘limited edition’ USB key’s were given away. I truely appreciated the opportunity to present again at the user group and was humbled by the turnout. I hope a few people were inspired to go out and try some of the technologies presented in their own SharePoint environments.

I’ll sign off with a couple of tweets I received after the session – one in particular that made the whole session worth while!