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.

MCSM-logos

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:

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:

image

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

image

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:

image

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.

image

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:

image

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:

image

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:

image

And reload the whatsmyuseragent.com 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:

image

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:

image

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="http://schemas.microsoft.com/sharepoint/">
   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" />
   6:   
   7:      <!-- Custom Master page for IE7 users -->
   8:      <File Path="MasterPagesIE7.master" Url="IE7.master" Type="GhostableInLibrary" />
   9:      
  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:

image

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:

image

The final configuration for each channel looks like this:

image

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:

chromeiconie7

 

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:

image

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

image

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:

image

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:

image

 

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

I’m now a Microsoft Certified Master on SharePoint Server 2010

I’ve just received the official confirmation from Microsoft that I’ve passed all the requirements and I’m now a Microsoft Certified Master: SharePoint Server 2010!

MCM

I started preparations (and saving money) for MCM (R11) in November 2011, so it took a little over 8 months to complete from reading the pre-reading content to passing both the knowledge and lab exams in July 2012.

Why bother with MCM?

For two years I contemplated if I should apply for the MCM training. The cost (more on that in a bit) seemed a bit steep and most people in the Nordic countries, where I mostly work, didn’t seem all that impressed with yet another acronym. It sometimes felt as if the really old MCSE-style certifications (from 1995, not the recent upgrades) were all that recruiters, IT managers and business decision-makers wanted to talk to.

I’ve been pretty serious about SharePoint for quite some time now. Having written a book in my native Finnish language on MOSS 2007 in early 2007, I’ve had a blast working with SharePoint Server 2010. About a year ago I had a chance to work with some of my old colleagues from Microsoft (I left in early 2009), a few of them having attained the holy MCM grail. They were still the same guys so nothing magical about becoming a certified Master. I still felt, though, that advancing my career, gaining more experience and doing something that not everybody is capable of doing was still on my bucket list. From there I made the decision to apply for the MCM rotation pretty quickly.

And I reasoned that if I just stop eating for the duration of the training I’d save enough to pay my way through the training..

The cost

Money

It’s not cheap, that’s for sure.

I ended up paying the regular $18,500 (about 15 000 euro) program fee. In addition there’s a $125 entrance fee for applying. Since my rotation (R11) was a hybrid one I needed to travel to Redmond for 8 days. Add in plane tickets and hotels (about $1000 for plane tickets and $1000 for hotel), and we’re looking at a pretty considerable sum of $20,650 (16 700 euro).

I also needed to retake both of my failed exams, which added an additional $2750 on top of this.

Yes, it’s a lot of money. Was the training worth the investment?

It’s too early to say, having just received the certification. If I consider the amount of training I was given, I don’t consider the amount of money too outrageous:

  • 60+ hours of onsite training given by the very best of the best – people like Vesa Juvonen, Spencer Harbar, Kimmo Forss, Todd Carter, Bill Baer, to name a few
  • 2000+ slides of deep technical content
  • 100+ hours of remotely delivered training, twice a week for 3 months
  • Access to top of the line lab servers remotely
  • + stuff that’s under NDA for MCM candidates

If you simply divide the program fee ($18,500) with the hours of training you’ll receive (about 160 hours), a single hour costs you $115 and some. Where else can you ask an MCA or SharePoint Product Manager a technical question in real-time and actually receive very good answers for that kind of price?

The challenges and some advice

As a father of two small children I felt the hybrid rotation of MCM is amazingly challenging. Reflecting back to January of this year I think it would have been easier to stay in Redmond for 3 weeks and try to complete the certification in one go. I chose the hybrid approach due to family reasons and because I also felt staying in Redmond for 3 weeks would drive me crazy.

Throughout January, February and March there were (live) online trainings for 4-5 hours at a time. My two sons often wake up very early (think 5:40 am) and after dropping them to kindergarten I’d often do 9 hours at the office. After that I’d still have 4-5 hours of level 400 content to listen to. Plus the hands-on labs, pre-reading, additional reading and running my own SharePoint consulting and training company at the same time.

I think it’s fair to say the first half of 2012 was the most taxing for me in my 35 years of existence.

For anyone hoping to attend an MCM training, I’d like to give a simple advice: Clear up your schedule before starting the training and not while you are doing it. I was constantly reorganizing my calendar to cram as much customer projects to offset the costs and time spent on my MCM training.

About knowledge

Do I know everything about SharePoint now? No, and I never will. I know what I’m good at and I know where my weaknesses lie. I’ve learned so much in the past 6 months that it’s hard to fully understand all the topics, techniques and insights I’ve had the opportunity to learn.

The key is not about knowing some trivial technical tidbit for a very special scenario, but rather to understand the overall landscape and being confident and capable of doing deep-dives with comfort to new topics and challenges.

It was eye-opening for me to be able to reflect my existing skill set with others and especially to learn how others have achieved certain solutions and results. I also knew what my strengths were when starting the MCM rotation but I also learned a lot about my weaknesses and false assumptions on certain topics.

What now?

Now, it’s time to put the newly-acquired skills and certification to a good use by delivering world-class SharePoint solutions, training and troubleshooting! :)

Outlook 2013 has a nifty weather widget

Outlook 2013 in the newly released Preview of Office 2013 has a nice and non-interruptive weather widget in the Calendar view:

It seems to default to Imperial (as opposed to Metric) units, and I’ve always sucked with conversions like this. Luckily this is trivial to change to Celsius:

Hit Ctrl-F (File) in Outlook. This gives you the renovated Backstage-view:

 

Select T (Options). From Options window go to Calendar and scroll to the bottom:

 

Change to Celsius and you’re all set!

 

Office 2013: Side-by-side or upgrade?

In Office 2013 (Preview) there’s an option to either do a side-by-side installation, or an upgrade. The side-by-side allows you to run both Office 2010 and Office 2013 on the same machine, thus allowing you to preview the new version while retaining the (presumably) working Office 2010 version.

The upgrade option allows you to do a full upgrade or simply remove one or more Office 2010 apps (such as Word or Excel) and keep the rest.

To choose between these installation types, first run the Office 2013 installer, and accept the license terms:

image

If you now select Upgrade, a full upgrade will be performed. We might want to avoid this if Office 2010 still holds some value for you, so select Customize:

image

You may now remove all previous versions (first option, a full upgrade), keep all previous versions (side-by-side with Office 2010) or remove one or more of the older Office 2010 apps:

image

There’s one restriction and that’s Outlook 2013. As with Outlook 2010 with Office 2010, in Office 2013 you cannot run Outlook 2013 and Outlook 2010 on the same machine. So even if you decide to go with side-by-side, you have to choose between Outlook 2010 and Outlook 2013. Otherwise you’ll end up with Office 2010 sans Outlook 2013.

To avoid this situation, select to remove Outlook 2010:

image

SharePoint 2013 and Office 2013 Consumer Preview resources

Yesterday Microsoft unveiled Office 2013 (Word, Excel, PowerPoint, Outlook, OneNote, Visio and Project client), SharePoint Foundation 2013 and SharePoint Server 2013 consumer previews. Internally these are called Beta 2-level releases, so consider before installing them in production machines.

There seems to be so much to choose from so I’ve decided to compile a list of all the goodness that was released:

Office 2013 clients:

Product keys are in their usual places for the clients.

SharePoint 2013 bits:

Tutorials and support material:

Other interesting stuff: