donderdag, mei 09, 2013

Some preparation tips for Microsoft exam 70-480 Programming in HTML5 with JavaScript and CSS3

Last week I managed to pass the Microsoft exam 70-480 Programming in HTML5 with JavaScript and CSS3 successfully. Some tips:

To prepare yourself you could do the following:

  1. Start right away with a test exam; as the exam will mostly test your basic skills, chance is big that you will already possess most of the required knowledge;
  2. Then study all the items you felt uncomfortable of thoroughly; expect a study load of around 10+ hours;
  3. Test your newly acquired knowledge with another test exam.

PLEASE NOTE: With regards to CSS3; don't waste your time with studying all the available w3c CSS3 draft specifications, as these are by far not ratified yet. Focus on the css3 features that Microsoft has included into Internet Explorer 10. Ultimately it is a Microsoft exam after all! The Internet Explorer (IE10) guide for developers can be found at the following url: http://msdn.microsoft.com/en-us/library/ie/hh673549(v=vs.85).aspx

The exam consisted out of 39 questions and among others the following was questioned:

HTML5:

  • the new semantic / functional elements: figure, figcaption, svg, canvas, aside, article, nav, progress

CSS3:

  • box model (IE10 specific implementation)
  • grid layout (IE10 specific implementation; interestingly, in the meanwhile w3c has already introduced a completely new approach)
  • text shadow (there was an error in the exam! h- and v-shadow were wrongly exchanged!)
  • relative vs absolute
  • 1 inch = 72 points

JavaScript:

  • A lot of jQuery! Among others you should really take a good look at the ajax API (cache, async, accepts, username, password properties, how to determine the mime-type of the result)
  • event handlers
  • web workers (html5)
  • messaging (html5)
  • inheritance/object-oriented programming: prototype, constructor, apply, call

dinsdag, mei 07, 2013

Apps for Outlook 2013

With their Office 2013 suite Microsoft introduces the App Store model for all major Office related applications, comparable to the App Stores for Windows 8 and Windows Phone 8:

  • Outlook
  • Word
  • Excel
  • SharePoint

This enables huge opportunities for developers to provide their custom solutions to a large customer base!

Two things I learned today with regards to apps for Outlook 2013:

1. Exchange 2013 is required

If you try to add an app for Outlook from the store, you’ll find the following instruction:

http://office.microsoft.com/en-us/store/add-apps-for-outlook-using-exchange-2013-FX102837494.aspx?ai=WA103786430

clip_image001[14]

Indeed: Exchange 2013 is required!

2. Some apps require provisioning by administrator

And, there appears to be some apps that will need to be provisioned by the administrator, for example harmon.ie:

http://office.microsoft.com/en-us/store/harmon-ie-WA103004101.aspx?queryid=b3be69de-b411-4fbe-8db8-d01a921f32eb&CTT=1

clip_image001[16]

donderdag, mei 02, 2013

SharePoint Client-Side Object Model ClientContext.Load method


Today I was struggling with my first try at some SharePoint 2013 Client Side Object Model C# code, starting with the example I found at http://www.learningsharepoint.com/2010/07/22/get-all-users-and-groups-client-object-model-sharepoint-2010/.

As all of you may know, you need to reference at least two assemblies to get this going:
  • Microsoft.SharePoint.Client.dll
  • Microsoft.SharePoint.Client.Runtime.dll
Unfortunately at that point I was still inexperienced, and I forgot to add a reference to Microsoft.SharePoint.Client.Runtime.dll.

When I tried to compile the following code:
The compiler threw the following error message:

  • 'Microsoft.SharePoint.Client.ClientContext' does not contain a definition for 'Load' and no extension method 'Load' accepting a first argument of type 'Microsoft.SharePoint.Client.ClientContext' could be found (are you missing a using directive or an assembly reference?
Luckily the compiler hinted to the possible fact that there was missing a assembly reference.

Finally, I added Microsoft.SharePoint.Client.Runtime.dll as well and the errors went away.

I found it quite confusing that I was able to use a class but not all available methods, assuming the example I took was right of course.

So I digged into the decompilation of both assemblies and this is what I found out:
  • ClientContext inherits from ClientRuntimeContext
  • ClientContext is defined in Microsoft.SharePoint.Client.dll
  • ClientRuntimeContext is defined in Microsoft.SharePoint.Client.Runtime.dll
  • ClientRuntimeContext defines the Load method:
Hopefully this piece of information is useful to some of you out there.