Category Archives: SharePoint

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:

  • 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:

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! :)

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:

  • Office 2013 (x86 and x64) from MSDN Subscriber downloads
  • Visio 2013 (x86 and x64) from MSDN Subscriber downloads
  • Project 2013 (x86 and x64) from MSDN Subscriber downloads

Product keys are in their usual places for the clients.

SharePoint 2013 bits:

  • SharePoint Foundation 2013 (x64 only)
  • SharePoint Server 2013 (x64 only)
  • SharePoint Designer 2013 (x86 and x64)
  • Office Web Apps Server (x64)
  • Audit and Control Management Server
  • Office 365 ProPlus Preview

Tutorials and support material:

  • Overview of the support material
  • SharePoint 2013 IT Pro Training
  • SharePoint 2013 Developer Training
  • SharePoint for Developers
  • SharePoint 2013 Technical Library (compiled help-file)
  • eBook: Deployment Guide for SharePoint 2013
  • Design sample: Corporate Portal with Path-based sites for SP 2013
  • Search architectures for SharePoint Server 2013
  • Enterprise search architectures for SharePoint Server 2013
  • Back up and restore: SharePoint Server 2013
  • Services on server mapping worksheet for SharePoint Server 2013
  • Design sample: Corporate Portal with Host-named sites for SP 2013
  • Databases that support SharePoint 2013
  • Topologies for SharePoint 2013
  • Language Packs for SharePoint Foundation 2013
  • SharePoint Server 2013 Client Components SDK
  • How to test upgrade
  • SharePoint 2013 Upgrade Process
  • Language Packs for SharePoint Server 2013
  • Configure a SharePoint 2013 in Three-Tier farm
  • Demonstrate SAML-based claims authentication with SP 2013
  • Test Lab Guide: Demonstrate intranet collaboration with SP 2013

Other interesting stuff:

  • Lync Server 2013 (x64)
  • Exchange Server 2013 (x64)
  • Project Server 2013 (x64)

Reverse-engineering SharePoint–what about legal implications?

Every so often someone voices out their opinion on some technical aspect of SharePoint. They are often trying to customize or otherwise create something that is not strictly out-of-the-box-functionality, and hit a brick wall while trying to figure out why something works like it works in SharePoint. A developer’s answer on these woes is to use Red Gate’s Reflector (or ReSharper Decompiler) to figure out how SharePoint’s own internal libraries have been implemented.

I’m guilty of suggesting this in my trainings since you might not have an alternative. EIther you figure out how to bypass or change something, or you don’t and move on to different projects.

Someone else on Quora has been pondering the same thing. Zero answers as of today.

The process of reverse-engineering a commercial product, if even for just a tiny bit, is widely regarded as an approved way, that conforms to the fair use of the software license. I wanted to find out if investigating any of the DLL’s from SharePoint is in fact allowed, or even disallowed. Turns out it wasn’t that trivial to find out.

Licensing, EULA and PUR

The licensing of SharePoint is not trivial and one has plenty of options to choose from. Assuming we’d be using SharePoint Server 2010, what licensing agreements am I bound to? Recalling things from pre-2010, there’s EULA – the End User License Agreement.

There’s at least one blog entry on MSDN, that says

EULA is an old term and was used for SharePoint 2003.

In place of EULA we have PUR – or Product Use Rights. You can find all the available PURs at the Volume Licensing site. For SharePoint Server 2010 it’s this one: http://www.microsoftvolumelicensing.com/userights/ProductPage.aspx?pid=80.

There’s the Universal Licensing Terms, General License Terms, Exceptions and a downloadable copy of PUR.

Universal Licensing Terms is a no-nonsense text describing the typical concepts and rights the license grants you. Nothing is said about reverse-engineering, disassembling or decompiling SharePoint. So at least it’s not universally denied. There’s one important piece here though, and it’s this:

You must obtain Microsoft’s prior written approval to disclose to a third party the results of any benchmark test of the server software or additional software that comes with it.

I wasn’t aware that if I use something like Visual Studio 2010 Load Test tool to get baseline information of my SharePoint farm, that I’m not allowed to disclose these findings to third parties, such as vendors and hosting providers. Interesting fact but not necessarily something that might cause Microsoft legal to hunt you down, if you happen to post a blog entry on your findings.

For .NET Framework-based components, there’s additional reference information at http://msdn.microsoft.com/en-us/library/ms973265.aspx – dated 2005, so I doubt it’s 100% relevant in 2012. It does however dictate what information must be revealed for any performance test results you might want to publish that are based on .NET.

Besides these, there’s nothing relevant on reverse-engineering in the Universal Licensing Terms.

General License Terms covers CALs, connector licenses and similar – nothing was found against or for reverse-engineering SharePoint bits.

Exceptions and Additional Terms sounds promising but it has nothing either.

PUR is also available, and it’s dated April 2012. It’s a huge document sitting at 144 pages. I didn’t find anything with keywords such as “disassemble”, “reverse”, “engineer”, “decompile” or variations on these. For SharePoint Server 2010 the PUR basically lists the necessary CALs, connectors and whatnot one should purchase in different scenarios. So nothing technical here.

What about Fair Use?

Wikipedia nicely describes Fair Use as

Fair use seems to be safe ground for reverse engineers, almost always using it as a defense. However, an EULA is a legally binding contract. If a user agrees to terms which are in conflict with fair use, the user has effectively waved their rights to fair use.

Let’s not forget about SharePoint Portal Server 2003’s EULA, which is still available for download. Buried in the EULA is the following

Reverse engineering, decompiling, or disas sembling the Software is prohibited, except and only to the extent that such activity is expressly permitted by applica ble law notwithstanding this limitation.

So that’s clear then. But this only applies to SPS 2003 (and WSS 2.0 I would guess), and not to SharePoint Server 2010 (and consequently, not SharePoint Foundation 2010).

I tried searching for a more relevant copy of the EULA, but it seems that PUR mentioned above is the only public version currently available.

There’s a combined MOSS 2007/SP 2010 guide to assessing SharePoint Server licensing available too. I couldn’t find the document via Microsoft’s Download Center, but it’s available through Google. Nothing new is revealed in the document, and the references listed in the end are the same sites I’ve linked to earlier.

So reverse-engineering is allowed then?

Since PUR specifically doesn’t disallow reverse-engineering, one might feel it’s allowed. I’m not a lawyer (and don’t intend to become one by reading these documents) so I can only offer my opinion.

For now I’ll continue with my practice of using any available reverse-engineer tools, if I feel it’s something that helps me to understand how something working within SharePoint. Problems arise if I decide to reuse any of that code to my own work, and distribute that as part of my deployments.

Until Microsoft further clarifies this, I feel it’s safe – and acceptable (under Fair Use) – to continue with this practice. There’s also much to be said about the licensing documentation, which is fairly challenging to find, and almost too hard to comprehend in certain scenarios. It should be less complex and easier to apply in the real world.

The 5 stages of SharePoint denial

Based on the Kübler-Ross –model, there are also 5 stages of SharePoint denial.

These are:

1. Hope: “It should work”; “I hope this deploys” and “The page is still loading but it should work”. Hope is usually a passing feeling, before stage 2.

2. Belief: “It worked yesterday”; “I’ve read about this on Technet and someone wrote a blog entry about this”; “Well, it’s a feature so why wouldn’t it work?”. Belief follows hope, when you still feel a diminishing hope, yet truly believe the thing you are trying to get to work, in fact should work when you put in enough hours. This stage usually lasts for days, sometimes even weeks.

3. Hollowness: “I don’t know what else I can do to fix it”; “Maybe I should reconfigure the whole farm once more”; “Is there anyone I could call about this?”. When all hope is lost, and most belief is gone, there’s only a hollow feeling left. Is there anything worth fighting for anymore?

4. Besserwisser: “I’ve done that but those other guys have no idea what they are doing”; “Who coded this?”; “And they spent how many days doing this?”. If you manage to survive to stage 4, you become a besserwisser. You seem to know how to do anything with SharePoint, and anything anybody else is doing, is a steaming pile of java. You’ve been there, so you surely know – and you’ve got the scars to prove it.

5. Alcoholism: “Why bother? Anybody have beer?”; “If it deploys, I’ll have a drink. Otherwise, I’ll have a drink”.

New Microsoft books coming out before the summer

I often realize how much I love reading. It doesn’t matter if I’m reading a PDF on my laptop, an e-book with Kindle on my iPad or a paper book before falling asleep in the evening – they are all good in my books.

Every now and then I scan through Amazon for upcoming books with hopes there’s something worth buying. There’s probably a lot of good books I haven’t read around SharePoint or Microsoft technologies in general, so I’m always in the mood for new purchases.

Here are my latest findings:

image

Introducing Microsoft SQL Server 2012: Fresh content for the newly released SQL Server 2012. Best of all, this one is free of charge!

Available for Kindle also, get it here.

 

image

 Working with Microsoft FAST Search Server 2010 for SharePoint: Having just bought this I haven’t had a chance to read it any further than the introduction. It feels like a good overview for FAST in a condensed form.

Available for Kindle also, get it here.

image

Delivering Business Intelligence with SQL Server 2012: Very nice to see such detailed topics already available for SQL Server 2012. Only one review (5 stars) so I’m definitely putting this on my to-read list for the summer.

Available April 23, see details here.

image

SharePoint 2010 Creating and Implementing Real-World Projects: An interesting take to a somewhat familiar topic on SharePoint. The writers seem to have good background on technical and non-technical issues for SharePoint. The index is a bit lackluster with topics like “Design a team blog platform to review content”. I’ll give this a try, the Kindle version is only $20. Get it here.

image

Practical SharePoint 2010 Information Architecture: There’s a huge resource available for IA from Microsoft, so it’s always refreshing to see someone outside MS try to tackle this non-technical yet highly important aspect of any SharePoint deployment.

Available April 18, see details here. No mention of a Kindle version yet.

image

Metro Revealed: Building Windows 8 Apps with HTML5 and Javascript: Living on the edge with a topic like this! Definitely going to get this – there’s also a separate book if you prefer using C#.

Available April 29, see details here. No mention of a Kindle version yet.

 

image

Programming Microsoft’s Clouds: Azure and Office 365: This book promises to be a very detailed look at both Azure and Office 365 custom solutions. It’s “only” +500 pages, so hopefully it’s not going to be 300 pages explaining what Azure or Office 365, but rather +500 pages of solid content.

Available June 5, see details here. No mention of a Kindle version yet.

image

SharePoint 2010 Business Connectivity Services: I’m uncertain what’s new in this book compared to the de facto manual on BCS from Scot Hillier. It seems to be more for business analysts and super users rather than developers or IT Pro’s, since the sample table of contents includes a lot of references to SharePoint Designer, Office and “enhancing”. Probably not buying this, but it’s interesting to see BCS gain more ground – it’s actually pretty damn good.

Available June 22, see details here. No mention of a Kindle version yet.

Now if you’ll excuse me, I’ll have to go back to my books!