Category Archives: Developer

SharePoint 2013, Office 2013, Lync Server 2013, Visio 2013, Exchange 2013 and Office Web Apps 2013 hit MSDN!

A few weeks early, so this was a very nice surprise. We’ll get some precious time before SharePoint Conference 2012 in Las Vegas to learn what’s changed, and if things are more stable now than with the betas.

After a few hours of running with Office 2013, I have to say that Outlook 2013 and Lync (client) 2013 are much more faster and stable now. Lync 2013 (Preview) crashed against Lync Online constantly, and so far – no issues!

I’m still missing Project Server 2013, although Project Professional 2013 (the client, that is) seems to be available.

You can get all these sweet bits at MSDN and/or Technet.

This morning I had a cup of coffee and MCSM: SharePoint

Not a bad way to start the day.

We’re using the Paulig Cupsolo –coffee maker at our training facilities in Helsinki, and even though I don’t normally like super industrial coffee, I’d say this little machine outputs pretty decent java. While sipping my first (huge) cup of coffee I also learned that all existing Microsoft Certified Masters on SharePoint 2010 can now start using the new Microsoft Certified Solutions Master: SharePoint branding. I knew about the grandfathering policy for MCM, but I’m very happy to be able to use and share the branding of future SharePoint certifications. If you’re interested in my experiences on achieving MCM, or ramping up for MCSM: SharePoint 2013 (for which I’ll need to upgrade), stay tuned – I’ll be posting thoughts and tips on those in the near future.


Also worth noting is the fact that the following exams are now visible on Microsoft Learning, but the actual exams are still dated for early February 2013:

  • MCSA: Windows Server 2012
  • Exam 70-331: Core Solutions for Microsoft SharePoint Server 2013
  • Exam 70-332: Advanced Solutions of Microsoft SharePoint Server 2013

Anyone can do the MCSA: Windows Server 2012 Upgrade exam today. It’s available at Prometric – go take a look. We’re running a Prometric certification day once a week on Thursdays in Helsinki, Finland – see details (in Finnish, sorry) here.

Targeting multiple browsers and devices in SharePoint 2013 using Device Channels

One of the truly great and new features in SharePoint 2013 (Preview) is Device Channels. In a nutshell, Device Channels provide a model for content editors, site admins and developers to provide content manipulation for different browsers and devices based on their capabilities.

The old way of doing things

In SharePoint 2010 the official browser support is fairly clear, and you can see the full table of supported browsers here. For comparison, have a look at the full table of supported browsers for SharePoint 2013 here. In essence, Internet Explorer 7, 8 and 9 are supported for SharePoint 2010, assuming you are using the 32-bit version. Google Chrome and Mozilla Firefox are also now supported, whereas Internet Explorer 6 is totally not supported.

For public-facing sites the typical approach was to create one Master-page, and inject or replace the linked CSS-files depending on browser version. In reality this meant that if anyone was still using IE7, we’d inject some CSS hacks as to not break the site visually or functionally. Simple HTML would do the trick:

   1:  <!--[if IE 7]>
   2:  <link rel="stylesheet" type="text/css" href="/_layouts/JussiOnSharePoint/IE7hacks.css"/>
   3:  <![endif]-->


While highly effective and simple to use, it also caused a lot of issues. One being that we’d easily end up doing multiple if-decisions to detect all possible browser versions, and point to different CSS-files. It was also hard to target specific browsers based on their User-Agent strings, such as IE7 with specific capabilities. URL Rewrite module for IIS gave us a somewhat working solution but required some tinkering with IIS and one had to tinker with the regular expression-based rules to catch all browsers, combinations and options. Even then SharePoint’s support for detecting different browsers was limited at best.

Device Channels to the rescue

Device Channels are used to detect which browser a visitor is using, and to replace the Master page to a more suitable one. This means we can use Device Channels to detect mobile device users, tablet users, desktop users and differentiate between these channels and the capabilities each device’s browser has. As an example, we might choose to not differentiate iPad users from desktop users, since essentially iPad-users tend to have a rather good resolution and the built-in Safari browser supports most capabilities we might already be using.

Device Channel functionality does not remove the need to fine-tune CSS or HTML to provide hacks for specific browser, but gives a nicer way to approach the problem space.

The requirement to use Device Channels is that your Site collection has to have Publishing features, so enable that if it’s not yet enabled in your Site Collection:


Make sure to also enabled the Web-scoped Publishing Feature:


The SharePoint Server Publishing Infrastructure Feature, which is scoped for the Site Collection, also depends on the hidden Publishing Mobile Feature. By this time, you should also have the Publishing Mobile Feature enabled. You can verify this with PowerShell:


Configuring Device Channels

Now that Device Channels is enabled through the Publishing features, we should be able to create channels for our target browsers. You can choose to target mobile and non-mobile browsers. In Site Settings | Device Channels, you should see the list for all the channels. You’ll have a Default channel, which is used by default or when any of the previous channel rules do not match.

I’ve added two more channels – one for Google Chrome-users, and one for Internet Explorer 7 users. The reason I’m interested in IE7 users is that it’s officially not supported in SharePoint 2013.


For Google Chrome users, the alias that I’m using is ChromeDesktop – thus, I’m planning to target desktop users of this fine browser. In Device Inclusion Rules for this channel I’ve included my User-Agent string:


To find out your User-Agent string, go here.

For IE7 users, the Device Inclusion Rules are similar but targeting the IE7 User-Agent string:


I’m using Windows Server 2012 (RTM) as my development platform, so to check what the User-Agent string for older IE versions is simply change your browser mode to IE7 via the Developer Tools (F12) in IE:


And reload the page.

Now we have three channels: ChromeDesktop, IE7Desktop and Default. Let’s set different Master pages for each by going to Site Settings | Master Pages:


By default all channels are using the same v15.master Master page, which you can now change to any other Master page you have deployed in your Master Page Gallery. When users access your site in Google Chrome or IE7, they’ll be given the same content with a different master page. All others get whatever you’ve set for the default channel.

Custom Master pages, Page Layouts and Device Channels

You can now create your customized Master pages and Page Layouts to better target and manipulate content for different channels. I created a simple Visual Studio 2012 project as a delivery vehicle for my customized Master pages and Page Layouts. It’s exactly the same as what you would do in Visual Studio 2010 when you target SharePoint 2010.

I’ve added one module as a container for my two custom Master pages, GoogleChrome.master and IE7.master:


I’ve also added a GoogleChromeWebPartPage.aspx Page Layout in case I want to fine-tune content layout for a given channel.

The Elements.xml is very simple and minimal:

   1:  <?xml version="1.0" encoding="utf-8"?>
   2:  <Elements xmlns="">
   3:    <Module Name="MasterPages" Url="_catalogs/masterpage" Path="">
   4:      <!-- Custom Master page for Google Chrome users -->
   5:      <File Path="MasterPagesGoogleChrome.master" Url="GoogleChrome.master" Type="GhostableInLibrary" />
   7:      <!-- Custom Master page for IE7 users -->
   8:      <File Path="MasterPagesIE7.master" Url="IE7.master" Type="GhostableInLibrary" />
  10:      <!-- Google Chrome Page Layout: Web Parts everywhere -->
  11:      <File Path="MasterPagesGoogleChromeWebPartPage.aspx" Url="GoogleChromeWebPartPage.aspx" Type="GhostableInLibrary">
  12:        <Property Name="Title" Value="Web Part Page Layout for Google Chrome devices" />
  13:        <Property Name="ContentType" Value="$Resources:cmscore,contenttype_pagelayout_name;" />
  14:        <Property Name="PublishingPreviewImage" Value="~SiteCollection/_catalogs/masterpage/$Resources:core,Culture;/Preview Images/BlankWebPartPage.png, ~SiteCollection/_catalogs/masterpage/$Resources:core,Culture;/Preview Images/BlankWebPartPage.png" />
  15:        <Property Name="PublishingAssociatedContentType" Value=";#$Resources:cmscore,contenttype_welcomepage_name;;#0x010100C568DB52D9D0A14D9B2FDCC96666E9F2007948130EC3DB064584E219954237AF390064DEA0F50FC8C147B0B6EA0636C4A7D4;#" />
  16:      </File>    
  17:  </Module>
  18:  </Elements>


The Feature is Site-scoped, and has no code:


After deploying the solution, I should be able to go back to Site Settings | Master Pages to verify that I can now select the corresponding Master pages for each channel:


The final configuration for each channel looks like this:


In my Visual Studio project I can now change any relevant portions of the UI via the targeted Master page. Let’s change the icon for both Master pages – the Google Chrome Master page will get the nice Metro Windows 8 Modern UI Style-themed icon, and IE7 will get the old but familiar icon:



To replace the site icon, just change the line that points to SiteLogoImage:

   1:  <SharePoint:SiteLogoImage CssClass="ms-siteicon-img" name="onetidHeadbnnr0" id="onetidHeadbnnr2" LogoImageUrl="/_layouts/15/MobileUI/chromeicon.jpg" runat="server"/>


I’m including the two icons in my solution package and deploying them to /_Layouts/15/MobileUI. I could also change the relevant CSS-files, provision my own custom logic or add custom code to better differentiate between browser versions. Device Channels essentially give me a path, and it’s up to the developer to decide what happens then.

Regular users will now see the default channel. This is the view when accessing my site with IE10 on Windows Server 2012:


By switching the browser mode to IE7 (via Developer Tools), I get the new site icon:


You’ll also see that the Edit Links-control has moved a bit. This is because the Master page I’m using as a template is from a different one than v15.master, which the default channel is using.

Google Chrome users are also feeling the love:


Page Layout is the same for all channels, there’s no built-in ability to change that on the fly.  What is needed is some logic in my Page Layouts to decide what to show and what to hide based on the channel.

In my custom Page Layout, which was part of the small solution package I deployed, I’m using a Device Channel Panel, which is part of the Publishing functionality. This allows me to include or exclude certain parts in my Page Layout, such as HTML-tags. I need to use my Device Channel naming inside the Page Layout, so it’s probably a good idea to keep the naming simple and short. Specify a channel (or channels) in the IncludedChannels-property:

   1:  <PublishingWebControls:DeviceChannelPanel runat="server" IncludedChannels="ChromeDesktop">
   2:      <b>This is for Google Chrome users only</b>
   3:      <img src="/_layouts/15/MobileUI/chromeicon.jpg" border="0" />
   4:  </PublishingWebControls:DeviceChannelPanel>


When I replace my Page Layout for the landing page to my custom Page Layout, I’m seeing the same content with IE10 and IE7 as before. When using Google Chrome I see additional content:



Additional reading

There’s some good content on Technet for mobile device support and capabilities for SharePoint 2013. Other than that, not much officially available from Microsoft yet.

The definitive guide to SharePoint 2013 certifications

[Update: This article was updated on 4th of February, 2013 to reflect the latest changes to the SharePoint 2013 certification program]

SharePoint Server 2013 Preview RTM bits have been out and available for testing and kicking tires for a few months now. While there’s a lot to learn with regards to all the new and great stuff we’re seeing within the product, there’s also going to be a lot of ramping up for developers and IT Pros if they want to achieve any of the certifications Microsoft will offer for SharePoint 2013.

So what’s available for SharePoint 2010?

First, a brief reminder on what’s available for SharePoint 2010 today.

For developers, there are two certification exams:

Microsoft Certified Technology Specialist (MCTS): Microsoft SharePoint 2010 Application Development (70-573) is the first major developer certification for SharePoint 2010. I always say it’s fairly tough and requires developers to have true hands-on experience with the platform. The preparation material is available for classroom-based trainings, and is typically delivered as a 3 to 5 day course.

The second developer exam is Microsoft PRO: Designing and Developing Microsoft SharePoint 2010 Applications (70-576). This is more of a high-level approach, and concentrates less on hands-on “Let’s just code that in Visual Studio” and more on the design and architecture aspects of the overall solution. It’s definitely one of my favorite exams, and the accompanying course material is also high on my list of “must reads”.

After passing these two exams (the 70-573 and 70-576) you get to call yourself a Microsoft Certified Professional Developer (MCPD): SharePoint Developer 2010.

For IT Pros, there are two certification exams:

Microsoft Certified Technology Specialist (MCTS): Microsoft SharePoint 2010 Configuring (70-667) is the first major IT Pro certification for SharePoint 2010. It’s a huge collection of IT Pro things one has to understand, ranging from installing and setting up SharePoint to configuring the more complex features within a farm. There’s a classroom-based course material available, of course (the B-version of the 10174-material got a slight facelift, mostly because of Office 365 and SP1).

After completing the MCTS-exam, IT Pros can then continue with Microsoft PRO: Microsoft SharePoint 2010 Administrator (70-668). This is aligned with the MCPD-exam for developer in the sense that it’s less hands-on, and more theory, best practices and do’s and don’ts. Here’s the course material topics. When you pass the two IT Pro exams (70-667 and 70-668) you get to call yourself a Microsoft Certified Information Technology Professional (MCITP): SharePoint Server 2010.

Each preparation training course of these four exams can be completed by self-studying, learning on the job and/or attending a classroom-based training.

What about SharePoint 2013? What’s available and what’s not?

So the story with SharePoint 2013-based certifications follows the same a slightly different rajectory we had with SharePoint 2010.

As of today, we have a total of 4 training courses available. These are:

FIrst Look Clinic: What’s new for IT Professionals in Microsoft SharePoint 2013 – it’s a 3 hour clinic, rather than a traditional training. I’d argue this is almost a full day training, since it took more than 3 hours just to skim through. Since it’s a very early look at SharePoint 2013 there’s not certification alignment for this clinic.

The second one is First Look Clinic: What’s new for Developers in SharePoint 2013 and it’s also a 3 hour clinic. More like a day, although there’s no labs available within the course material.

The third one is SharePoint 2013: IT Pro Ignite training. It’s a 3 to 5 day classroom-based training, including hands-on labs. It’s not widely available but does give you a deeper look and knowledge into what’s possible with SharePoint 2013 for IT Pros. As you might have guessed, the fourth course that is available is SharePoint 2013: Developer Ignite training. Also 3-5 days, lots of labs.

Finally, the Programming in HTML5 with JavaScript and CSS3 course was released for public use. A book is coming out in April from MS Press – see details here.

The first exam for anyone wanting to be fluent with developing solutions for SharePoint 2013 is Programming HTML5 with JavaScript and CSS3 (70-480). This exam was released August 20th, 2012. The accompanying preparation material is available (see here). This is a mandatory certification exam for the upcoming MCSD: SharePoint certification.

The second exam we already have details on, is for IT Pros: Core Solutions for SharePoint Server 2013 (70-331). Availability for this exam was scheduled for February 5th, 2013 and as of February 2nd, the certification exam was available from Prometric.

The third exam is also for IT Pros called Advanced Solutions of Microsoft SharePoint Server 2013. It’s also available since February 2nd, 2013. Together with 70-331 and 70-332 you are two steps closer to being an MCSE: SharePoint.

The last requirement for MCSE: SharePoint (for IT Pros) is MCSA: Windows Server 2012. You can either complete this requirement with a single upgrade exam (70-417) or do all three certification exams: 70-410, 70-411 and 70-412.

The upgrade eligibility is for those who already hold a valid MCSA, or MCITP certification, such as MCITP: SharePoint Administrator 2010.

Anything else?

We are still missing the two SharePoint 2013 developer exams – more info on those when they become available.

You bet! Plenty to read, you should start from here, here and here.

Happy studying! Smile

Microsoft certification reboot–what changed and what do I do now?

On April 11th, Microsoft announced that the current stack of certification programs will be rebooted (or reinvented). Say welcome to your new certification overlords – the MCSA, MCSE and MCSM:


MCSA and MCSE sound vaguely familiar. Oh yes, MCSE has been around since Windows NT 3.1, and MCSA became available for Windows Server 2003. Good times.

The key different is that MCSA, MCSE and MCSM are dubbed cloud certifications. The old MCTS, MCITP and similar certifications are still alive and well. That is, until new versions of Microsoft server products are being released and old exams are aligned with MCSA and MCSE in the future. 

MCSA explained

MCSA stands for Microsoft Certified Solutions Associate. It’s an entry level certification program for people who are looking for their first job in IT. So definitely not someone who has already completed plenty of Microsoft certifications.

The old MCSA, or Microsoft Certified System Administrator, is no longer available. Even though the new MCSA shares the same acronym, it’s totally different and should be considered as a different breed. What they do share, however, is the fact that MCSA is required for the new MCSE – just like before.

Currently, MCSA is available for these two products:

MCSA: Windows Server 2008

For Windows Server 2008, you’ll need to pass the following exams:

  • 70-640: Windows Server 2008: Configuring Active Directory
  • 70-642: Windows Server 2008: Configuring Network Infrastructure
  • 70-646: Windows Server 2008: Server Administrator

MCSA: SQL Server 2012

For SQL Server 2012, you’ll need to pass the following exams:

  • 70-461: Querying Microsoft SQL Server 2012
  • 70-462: Administering a Microsoft SQL Server 2012 Database
  • 70-463: Implementing Data Warehouses with Microsoft SQL Server 2012

There’s also a similar certification path for MCSA: SQL Server 2008, but I find little interest in doing that now that SQL Server 2012 is widely available.

What about MTA?

We also (still) have MTA, or Microsoft Technology Associate, which is relatively new and aimed mainly for students. For MTA, the following certifications are currently available – and unchanged with the announcement of other certifications:


MCSE explained

MCSE stands for Microsoft Certified Solutions Expert. It follows MCSA, which is a prerequisite for achieving MCSE. It comes in two flavors:

MCSE: Private Cloud

The Private Cloud track includes both Windows Server 2008 R2 and System Center 2012 products, so it’s not going to be a walk in the park to complete.

You’ll need to pass the following certifications:

  • MCSA: Windows Server 2008
  • 70-247: Configuring and Deploying a Private Cloud with System Center 2012
  • 70-246: Monitoring and Operating a Private Cloud with System Center 2012

A recertification exam (apparently just one) is required every three years.

The second flavor is MCSE: Business Intelligence:

This is a continuum for MCSA: SQL Server 2012 and required the following certifications:

  • MCSA: SQL Server 2012
  • 70-466: Implementing Data Models and Reports with SQL Server 2012
  • 70-467: Designing Business Intelligence Solutions with SQL Server 2012

There’s also a second path for MCSE: SQL Server, and it’s called MCSE: Data Platform. Key different with Business Intelligence-path is that this is more developer oriented and requires the following certifications:

  • MCSA: SQL Server 2012
  • 70-464: Developing SQL Server 2012 Databases
  • 70-465: Designing Database Solutions for SQL Server 2012

You can also upgrade to MCSE: BI or MCSE: Data Platform, if you already have MCITP: Database Developer 2008 or MCITP: Database Administrator 2008 completed.

Most of the exams for MCSE: SQL Server 2012 flavors are available from June 2012.

Retiring exams

A lot of older certifications are being phased out in the coming months. For a complete list, see here.

What about MCSM – what’s that then?

MCSM, or Microsoft Certified Solutions Master, is the successor to MCM, or Microsoft Certified Master-program.

This is the highest (technical) level one can attain for select products, including SharePoint, Active Directory, Lync, Exchange and SQL Server.

MCSM is coming with wave 15 of the new products – thus, MCSM: SharePoint would be available when the next version of SharePoint is released. The prerequisite for any MCSM is the new MCSA. So if you currently have MCITP and MCSD for SharePoint, you’ll have to upgrade or pass the future SharePoint certification exams and then you can continue to MCSM.

The ‘old’ MCM track is still alive, and existing Masters get to keep their certification.

What should I do now?

You don’t really need to do anything at the moment. If you are currently pursuing any of the available MCITP or MCTS certification tracks, keep going. You can upgrade to the newest versions and become an MCSE in the coming months. For certain products, such as Exchange, SharePoint and Active Directory, there’s nothing new to offer yet since the new versions are not released yet.

Further reading

To read up on the MCSA, check out the new MCSA introduction site. There’s a similar one available for MCSE also.

If you dive, do a deep dive: A method to becoming a better SharePoint architect

Most SharePoint consultants, architects and developers I’ve spoken to in recent months always feel the need to learn more. What should I read? Did you see that new white paper on MSDN? How did you achieve that? Should I attend this conference/seminar/web cast/user group meeting/training?

I don’t have all the answers, I merely have suggestions and methods that work for me. In hopes that it benefits someone else, here’s one:

Learn faster: Do a deep dive

DEEPThis one is really simple yet very challenging to do. Instead of haphazardly trying to learn ‘on the job’, choose to do a deep dive. You cannot and shouldn’t do a deep dive session each week. What you must do, however is a deep dive every month. Well, perhaps relax during the summer months but other than that, do it.

A deep dive, in this context, is the act of immersing yourself in specific topic or topics you are not fully familiar with. For SharePoint this does not imply you shouldn’t be familiar on whatever topic you choose to learn more about but instead to select – and stick – to a certain topic.

Step 1: Choose a topic

This is simple but yet again poses a challenge: What’s a good topic?

These are not good topics:

  • Infrastructure: Too open ended, too wide, too much everything
  • Troubleshooting skills: Again, too open ended. Narrow it down to maybe troubleshooting custom .NET implementations or learning the core troubleshooting tools for performance issues.
  • Intranet building: You could literally spend weeks learning this and still gain little relevant knowledge.

Below I’ve listed better topics. They enforce you to learn things in smaller chunks, and really provide an end-to-end learning experience:

  • High-availability options with SQL Server 2012: New and interesting stuff, surely something you can put to a good use in the coming months. Lots of good material available and RTM bits are already out.
  • Using jQuery with SharePoint: You can start easy by reading up on the widely available jQuery articles and then doing hands-on work when you’ve got a solid base.
  • Using LINQ to SharePoint instead of CAML:Truly a way of the future (and present) but so many people stick with CAML since they are familiar with it.

Choose a topic and move on to step 2.

Step 2: Research and information gathering

Can you spell “intervention”?Now that you have your topic you’ll need to do some research before your deep dive session. The reason why research and information gathering is needed is because otherwise you’ll spend your valuable time doing meaningless binging and don’t feel that you’re learning anything.

Ideally you should have enough material for a two full days of learning. For some people this is a few books, for others this is a single white paper. More is .. more, so don’t refrain from ordering good books from Amazon, printing out those Onenotes and white papers and bookmarking good entries on blogs and sites.

When you have a lot of resource material you are exposed to what you don’t already know. I tend to use a simple Onenote-formatted table for keeping track what I need to study, and what I’ve already studied:


The last two columns, 1st read and 2nd read are just visual reminders that I have to study content twice. The first time I’m reading I try to make notes what felt easy and what felt challenging. The second time I read the same content I skip the ones I felt were obvious or something that I already know.

Step 3: Block time from your calendar

Hardcore Study TimeDon’t neglect this, it’s pretty important. Open Outlook, choose two consecutive days and block those out for your deep dive. It can be two days next week, or two days next month. Just make it two full days. They don’t have to be 16 hour death marches each day but preferably two 8 hour sessions.

I choose to do these in a different location and not our main office. Too many distractions, too much background noise. Choose a secluded spot, and make sure you have the option to take lunch breaks.

Step 4: Make sure you are sure

This step is almost optional but spend 5 minutes doing it – just to keep me happy:

Make sure your hardware and software is up to date and functional. I know how people treat their development and test environments so spend a few minutes fixing those. You don’t want to start your deep dive session with a blue screen. 

Finally, step 5: Now, show us what you’re made of and do it

you are awesomeBy now you should have the following:

  • Two days reserved just for deep diving
  • A topic you’ve selected and are genuinely interested in learning
  • A working environment with SharePoint 2010, SQL Server and whatever else you might need
  • Food, snacks and drinks for two days

Now, show what you are made of and just do it.

On the first day, be at your learning spot promptly at 8:30 – or sooner, if you can.

Spend 10 minutes surfing Youtube, Facebook, Linkedin, Reddit or what have you. According to some studies, this is beneficial and eases your mind into doing the hard core stuff later on.

Finally: Close Facebook, mute your phone, close Live Messenger and Lync and close Outlook.

Put on some good tunes and start studying! Getting started is the hardest part, from there on it gets easier. Take regular breaks. I find that I’m most productive when doing a full two hour stint, and then taking a 15 minute break.

Final thoughts

ThinkingYou should be spending about 60% of your time studying. The rest you should spend on hands-on exercises such as deploying and configuring software, coding, troubleshooting and tinkering.

The goal of the deep dive days is not to learn everything on your chosen subject. It’s good if you feel that after two days, you are the de facto authority on the subject but that’s not really why you are doing this.

The real reason for immersing in such an exercise is to give you a broader view and experience on things. You are one step closer to succeeding in your next project.

You now know more stuff, and that’s just neat.

The illustrated guide to mastering SharePoint

Imagine that this circle contains everything about SharePoint – all tools, methodologies, customization techniques, tips and tricks:


By the time you’ve used SharePoint as an end-user doing things like document management, search, populating content to your My Site and similar, you know a little:


By the time you’ve installed SharePoint Designer, made some modifications and used a few third party tools to modify your SharePoint configuration, you are on your way to mastering SharePoint:



You start studying for 70-667: Microsoft Certified Technical Specialist: Microsoft SharePoint 2010: Configuring certification exam:


You successfully complete MCTS: SharePoint 2010 Configuring, and also pass 70-668: PRO: SharePoint 2010: Administrator certification. You are now MCITP: SharePoint Administrator 2010 and pretty capable surviving all IT-related things on SharePoint:


You feel there’s more to SharePoint than just IT-stuff. You start practicing customization and development for SharePoint with Visual Studio 2010, and eventually pass 70-573: Microsoft Certified Technology Specialist: SharePoint 2010 Application Development certification exam:


Life is pretty good now. You can configure most aspects of SharePoint, you can troubleshoot your way out of almost anything you encounter, and you know how to create new functionality and customize existing functionality. Finally, you take the time to study and pass 70-576: PRO: Designing and Developing SharePoint 2010 Applications and become a Microsoft Certified Professional Developer for SharePoint. You’ve got MCITP and MCPD now:


People start referring to you as “the guy who knows SharePoint” and random people email you about their issues with SharePoint. And you are happy to help, or charge for your time helping others. You take pride in the fact that you’ve conquered SharePoint.

Then you decide to embark upon Microsoft Certified Master: SharePoint 2010 – and months later, you pass the exams:


You now master everything that is SharePoint! During the process of becoming a Master, you’ve found new ways and techniques for doing things, and thus expanded the sphere of knowledge. That’s the little dimple at 9 o’clock.

Maybe you still crave more. Is this it? What can you do to fill those small gaps you feel are things you should know better? You cancel your summer vacation and start ramping up for Microsoft Certified Architect: SharePoint 2010. Finally you become an MCA:


You’ve expanded the whole sphere of knowledge, going beyond the currently existing knowledge. You excel in everything related to SharePoint: the hard technical challenges, the development adventures and the business side of things. Still, there seems to be a boundary that is just beyond your grasp.

You can now spend your days and evenings trying to fill in the gaps in your knowledge.

Or alternatively you can go outside, enjoy the sun, spend time with your family and be confident that whatever SharePoint throws your way, you’ll survive.

Branding and designing SharePoint with PowerPoint Storyboarding

Designing a custom SharePoint site involves a fair bit of customization and branding of the user interface. In the old days I’ve been using a mix of different tools: Microsoft Visio, PowerPoint and Mindjet MindManager to name a few. For thoughts on those, read my previous article on Prototyping SharePoint.

With the introduction of Visual Studio 11 Beta, we’ve got another tool to choose from – it’s called PowerPoint StoryBoarding. Even in beta I’m amazed how good and useful it seems to be.

I’ll introduce the tool but first, let’s install the necessary software.

Installing Visual Studio 11 Beta

You’ll need to download Visual Studio 11 Beta here. I’m using the Ultimate-edition, since it’s still in beta and you don’t need to purchase the outrageously expensive license until RTM time later this year.

Just download the small (~1,1 MB) web setup file to initiate download. Alternatively you can also download a full ISO file from MSDN Subscriptions.

Next, start the installer:


Enter target directory and agree to license terms and conditions. Also, admire the new dark theme:


Click Install:


It’s really that simple! Compared to Visual Studio 2010, it’s 5 minutes faster to initiate the installation and requires 20 clicks less. Very neat, but it also requires +8 gigs of free disk space and will – by default – install everything (this includes Visual Basic.NET, C# and F# for example).

Installation takes 5 to 10 minutes for the ISO, and a bit longer if you need to download bits while installing:


A reboot is required after install is complete:


That’s it! You can now start Visual Studio 11 Beta to check that everything is in place:


Introduction to PowerPoint Storyboarding

Now that you have Visual Studio 11 Beta installed, you should also have PowerPoint Storyboarding in Start-menu. I’m using Windows 8 Consumer Preview so it can be launched by typing Story in the Metro-based Start-view:


You are now presented with the all too familiar PowerPoint, that has a new Storyboarding-sidebar:


There’s a new Storyboarding ribbon tab too:


Here’s how Storyboarding works:

You create a new PowerPoint slide for each view the user will see. You’ll use the built-in icons, shapes and annotations the Storyboarding-sidebar provides.

The following categories are provided out of the box:

  • My Shapes – for shapes you want to re-use
  • Annotation – for explaining your storyboards during a presentation
  • Backgrounds – there’s even one for SharePoint
  • Common – typical web UI elements such as breadcrumb navigation and search box
  • Icons – typical icons such as file attachment, copy and paste
  • MediaWeb 2.0-style (not themed) shapes, such as tag cloud and web ad
  • Metro Icons – Metro-themed icons
  • Metro – Metro-themed shapes and icons
  • Windows Phone Icons – A few WP-themed icons
  • Windows Phone – WP-styled shapes and controls
  • Windows – Typical Windows controls such as status bar and file menu

While PowerPoint Storyboarding is not strictly intended for SharePoint UI prototyping, it’s a pretty solid choice for that. Let’s see a few easy samples for creating a SharePoint-based branding.

Creating a SharePoint branding with PowerPoint Storyboarding

We’ll start by adding a SharePoint-themed background on slide 1:


Dropping a background on a slide automatically aligns it correctly. You can edit the placeholder such as top (global) navigation, address bar URL, username and quick launch.

Here’s global navigation with the default values:


And here’s global navigation with some subtle changes:


Next I added some random controls to showcase how easy it is to add relevant content and SharePoint-style items on a page:


Everything else is using the defaults, except the main text, which I copy-pasted from (much less boring than

A few of the shapes also have pre-configured animation. Those are denoted with the PowerPoint animation icon:


There’s not much to choose from in the animated shapes category but a few good ones. There’s one to simulate a click visually:


And then there’s the two animated annotations, which we’ll cover in a bit:


I’m a bit surprised that none of the Metro-style icons or shapes support animation. Even a mock-up live tile is nowhere to be found – just the regular static versions can be used:


For now I’m happy to use these but my quest to finding a good looking animated live tile persists.

Using custom shapes

You’ll probably get bored quite soon with the default shapes and icons if you do storyboarding for SharePoint. With the support for custom shapes, you can easily add your own custom shapes, icons and other graphical items for re-use in your storyboards.

It couldn’t be simpler.

Drop any graphic from another program on a storyboard slide. Here’s a Web Part Zone-graphic I picked from my Page Layout in Edit Mode:


RIght-click on the graphic and select Storyboarding > Add to My Shapes:


This adds the graphic to the sidebar under My Shapes:


You can now select the shape and it gets added on your storyboard slide. Here I’ve added a ribbon from Page Edit-mode, a breadcrumb-control, the social features icons and a few web part icons:


Since graphics you add yourself are not vector-based, they are saved as bitmapped images. Scaling a saved shape distorts the contents:


What I found to be the most working solution was to avoid really small icons, or capture those in a larger resolution and then downsizing them before saving as a shape.

As a bonus, you can also construct multiple graphics as you like, and then save all those graphics as a single shape. Just add whatever graphical elements you need, select them all and right-click > Add to My Shape. While similar to grouping you cannot de-couple the graphic at a later time.

Using annotations

Annotations are slick little post-it notes you’ll need to use when you present your storyboard to others. There’s 4 to choose from:


The banner one looks like this:


It’s hidden by default and becomes visible with a mouse click, so essentially it’s a simple animation. A rectangle callout is more prominent, also with animation:


The sticky note also delivers:


It’s really intended more as a note, while callouts are intended for calling your attention for a specific item.

Sharing your storyboards

Sharing your storyboard is a matter of saving your storyboard as a .pptx –file:


It doesn’t require anything special from others to view the storyboard, PowerPoint suffices. They even work on Office Web Apps with SharePoint Server 2010:


Final thoughts

PowerPoint Storyboarding is a feature long overdue for anyone working with prototyping, proof of concepts or general UI branding – SharePoint or sans SharePoint.

It’s bewildering that Microsoft has not done this before. We’ve had Sketchflow as part of the Expression package but it was limited through licensing and wasn’t really useful for numerous other reasons. And now that Silverlight is practically dead for web-based development on SharePoint, there’s no reason for Sketchflow to exist or evolve. Unless it starts producing HTML5.

While this feature is great it also lacks a lot of things. Granted, it’s still in beta but it seems like a finished product already. The things I’m hoping to get in RTM are simple: more animated icons and shapes, some kind of built-in browser emulation/mockup and export to HTML + CSS for super-quick site building.

Until then, I’m happy to use the beta!

A few thoughts on TFS Express

Today, Brian Harry from Microsoft wrote about the soon to be released Visual Studio 11 beta, which includes Team Foundation Server 11 beta. I’m exceedingly happy to read about Team Foundation Server (TFS) Express, that will become a new offering in the Visual Studio family of products. And it’s going to be free!

The essentials

LEGO Indiana Jones in 2008It seems TFS Express will include most of the core functionality you can find today with TFS 2010. This includes source code control, work item tracking, build automation and similar functionality that forms the basis of what we today call Application Lifecycle Management, or ALM.

Why is a free version of TFS important, you might ask. There’s several reasons that I feel the Express version will do better than it’s fully featured big brother.

Because it’s going to be free of charge, more companies will adopt TFS

This will, in turn, introduce small web shops and 1 man+dog-type of developers to a common platform. Even if they only adopt the plain old source code control, it’s still better than sending zipped solution files via email. “Did you get the latest version? I think it’s this zip file” – no more of this, thank you.

Installation of TFS Express will be simple

I consider myself fairly fluent with Microsoft infrastructure, having been a system administrator and technical architect for most of my life. Still, setting up TFS so that it behaves correctly and is fault-tolerant is not a trivial task. Going the traditional Setup-Next-Next-Finish approach seems to work for many companies but it’s far from ideal. And if something breaks, nobody really knows how to fix it.

We’ll see during beta if TFS Express delivers on the promise of a simple installation. So far, it’s looking good.

 I can liberate my source code

41/52 : Ernesto "Che" GuevarraNo, I’m not going all Che Guevara on you, but considering the following scenario:

I’m providing customized functionality on top of SharePoint for a company. They mostly go with OOB features but require a few customizations and UI changes here and there. The usual stuff. When they go live, you kind of hope that you, or whoever inherits your code, will pick up the one-point-oh –package and grow and cultivate the codebase from there. They’d have monthly releases, perhaps they’d track change requests through work items and establish a solid versioning strategy.

But it so often fails with the fact that the customer does not feel like setting up TFS. The licensing issues is one of the reasons. It seems TFS is always too costly. The upcoming TFS Service on Azure will partially remedy this.

Then there’s the issue on who will manage the repository and monitor TFS health. TFS Express will have to face these same issues with corporate IT, but at least the naming convention (“oh, Express – probably something small and simple”) will  lessen the resistance.

If I can now justify to the customer, that by setting up TFS Express they will have a practically free and proven platform to store their project files, it’s going to be a no-brainer. Say fond farewells to lawyers specializing in escrow schemes. Oh, and the customer also gets single sign-on to access TFS Express.

If you don’t have it, we’ll bring it

Lego DarthTFS Express will also provide companies a solid strategy to always require TFS Express for a new engagement.

I’m seeing some larger ISV’s adding a requirement in their service offerings that TFS 2010 has to be deployed on customer site before they’ll start working. Most companies buying services from such ISV’s just go “huh?” and ask how much extra it will be if they buy a hosted TFS as part of the overall delivery project. They’ll eventually get for the low, low price of $1000/month for 2 team projects.

And then we end up using a hosted TFS in a different network, with authentication schemes dating back to 1990 and added bureaucracy even for the simplest of changes.

I’m hoping, and advising companies to set up TFS Express, if they don’t know any better. That way they’ll have their own procedures they can follow and still have freedom of choice to move somewhere else, if needed.

The downside, unfortunately, is that we’re most likely seeing lots of TFS Express installations, even if a project consists of only few lines of code.

TFS grows with developers, developers grow with TFS.

You can upgrade from TFS Express to TFS Server. Or just buy more CALs if you exceed the 5 user artificial limit Express will have.

I surely hope it will be a smooth process, remembering those nasty issues with SQL Express.