On to my next adventure in the clouds…

I’ve been involved in SharePoint development since starting my developer career in Australia in 2003. I’ve grown up with SharePoint development as my core identity. It’s taken me to New York to be the VP of Product Innovation at AvePoint. For the last two years, to Redmond to be in the Office 365 Ecosystem marketing team. Here i’ve picked up an amazing amount of skills on how Microsoft operates, the Microsoft Graph and Office add-ins.

Continue reading On to my next adventure in the clouds…

Microsoft Band 2 vs Apple Watch

I bought an Apple Watch a back in June as I had a iPhone 6, iPad Mini and MacBook Pro. I figured it would be a great complement to my other devices. But I was surprised that I wasn’t that convinced with it.

At Microsoft we have a Stay Fit Rebursement of $800 a year we get to use on sports equipment etc. In November, I decided to drop the $250 on a Microsoft Band 2 as I was impressed with the form factor for a v2 after the very uncomfortable v1.

In the past I’ve had a FitBit, Garmin and various other fitness wearables. I decided to write down the differences in my opinion.


The Apple Watch also didn’t have a GPS tracking capability which the Band 2 has. I’ve come to realize that I really liked my FitBit Flex for counting my steps but also had a Garmin Forerunner 200 that I used to track my rides. Having one device seemed beneficial. My Garmin would take FOREVER to find satellites and I was told the Band was actually really quick, and it is. I also seemed to be consistently charging my Garmin after every ride and the connector to charge it was very temperamental. I will state though that I went on a 5 hour hike and my Band 2 only survived 3 hours of that hike.

Heart rate monitor

The Apple Watch simply didn’t work for heart rate, as soon as I started sweating in my workouts it stopped reading my heart rate. I was using my Garmin Forerunner for this via a band I’d strap around my chest. This was inconvenient and wasn’t that comfortable when on. So the Microsoft Band 2 around my wrist was perfect. The Microsoft Health App is great for seeing my heart rate across my gym workouts, bike rides and my hockey games.


When I lived in New York I found the pedometer in FitBit Flex a lot more useful than I do now in Seattle. Mainly because I walked EVERYWHERE in New York and drive everywhere in Seattle. Now my steps are pretty consistent every day so I didn’t find the statistics interesting like in NYC. It did make me realize I needed to do more fitness outside just walking in terms of cycling, hockey and now gym work outs in winter.


The Apple Watch was the first device I had that provided notifications. I’d seen friends wearing Google Wear and Microsoft Band’s and wasn’t sure I’d find it useful.

More often than not it required me to pull out my phone to actually action whatever it was that came through on the screen.

The Apple Watch was a little more useful in this instance as often I could reply directly from touching the screen with quick replies, voice replies and emoticons. There is a mini keyboard on the Band 2 which allows you to respond to messages rather than picking boiler plate replies like on Apple Watch. I know if I had a Windows Phone, I’d be a little more useful with Cortana integration…but you know my feelings on that already.

Mail on my wrist just isn’t useful because I get so much of it. The calendar functionality requires a few clicks, I loved the glance I’d get on an Apple watch where I could see my next meeting and the room location…which is super useful on Redmond Campus where my meetings are all over the place.

Sleep tracking

This was an added benefit that I did like on the FitBit Flex that I missed on the Apple Watch. The Microsoft Health app on iOS/Android is excellent for showing my sleep statistics.

The wake up alarm is also really cool too. Although I have found it lets me sleep in a little too much and I’ve switched to a exact wake up time.

Form factor

I actually like the Microsoft Band 2 form factor because I can wear it on my right hand and wear a normal wrist watch on my left. It is a lot more sturdy than the Apple Watch. I have been wearing it when I play ice hockey no problem, I would never have dreamed of doing that with the Apple Watch because its far too delicate.


All in all, I’m really impressed with my Microsoft Band 2. I have actually sold my Apple Watch and also switched to Android with a Samsung Note 2. I’m now totally on Microsoft services, so it made my switch across ecosystems really easy.

Don’t miss Connect(); 2015 Nov 18-19th


This years Connect(); 2015 event will be streamed online via Channel 9 like last year. This year, expect to see our Office 365 dev news to take more of a stage than ever before. Sonya Koptyev from our team has been working really hard on this for us. Treat this is our way of communicating things we are releasing to general availability and things we are releasing into preview…much like we’ve done at Build 2015 and TechEd Europe 2014 before that.

There will be plenty of amazing speakers like Scott Gu, Scott Hanselman, Brian Harry and Anders Hejlsberg.

The keynote starts at 10am PDT with Scott Gu and I’d highly recommend watching this along with Brian and Scott Hanselman’s too.

Also do not forget that we have 10+ on-demand sessions that will go live on 19th that you should definitely take a look at.

SharePoint Saturday Munich keynote slides

Thanks to everyone for attending my keynote this morning. I’ve shared the slide deck from this morning for those that wanted to grab some of the slides.

One URL to rule them ALL


Snack videos to demonstrate power of Office 365 dev model

I have started a series of YouTube videos that demonstrate for an end user the power of Office add-ins and SharePoint add-ins.

It is a great way for you to understand how you can increase your productivity inside our products through add-ins in the Office Store (http://store.office.com/).

I’d love any comments on this post of add-ins you’ve found increase your productivity. I’ll continue to record short 3-5 minute videos to showcase this!

So what are you waiting for…check them all out at http://dev.office.com/snack-videos!

Apple Music fails to impress me over Spotify

As someone with an iPhone, iPad, Apple Watch and MacBook Pro in my arsenal I figured I’d give the Apple Music ecosystem a go as it was FREE for 3 months. Since Spotify was announced in Preview I have been a Pro subscriber. I installed Apple Music on my iPhone & iPad and installed iTunes on my OSX and Windows 10 machines.

My main take away is that there is no way that anyone at Apple is consuming music the same way I am. Even if you stick to OSX and iOS, the experience across devices is disconnected. Here’s why…


I have yet to come across a song I couldn’t find on iTunes, much the same experience on Spotify too. I’m pretty main stream with my music though although I do span lots of genres. The related artists and albums doesn’t seem to be as good as Spotify in my opinion.

My Music

“My Music” does seem to come across on each of these instances of the music player. You can select a song or album and “add to music”.

On iTunes on Windows you can do it three or four times in the UI before the option goes away and its reflected in your “My Music” window. It doesn’t look like Apple are putting any effect into the Windows player, no surprises there.


But if I “heart” a song..which is what trains the “For You” section…it doesn’t show on other instances. I use the “heart”/fav concept to understand the music I like when I’m in discovery mode listening to radio stations in the player.


The Beats1 radio channel everytime I’ve listened to it is just not my tastes. It’s quite often a lot of R&B and seems to be very similar to what it was when it was originally in the Beats Music service.

The Radio feature from Artist or Song isn’t bad, but again, the algorithm seems to stick to that Artist a lot and not broader on the genre.


Going to the artists page and seeing their top songs…if can play the top song but it doesn’t automatically play the second top song. There is no buttons to just add this whole top 20 songs in my queue.


I can play Apple Music streaming to my Apple TV as long as I push it from my iTunes on OSX or Apple Music on iOS. I cannot use my SONOS or Denon HEOS wifi speakers to stream music directly like I can from Spotify. I’m guessing this is coming.


One thing i did like about Spotify was the ability for others to share their playlists which I could then follow and listen to myself. This doesn’t seem possible right now either.

Back to Spotify for me!

I’ll be speaking at European SharePoint conference, Stockholm

I’m off to Stockholm in the beginning of November to speak on Office add-ins and also run a hackathon. I really look forward to meeting all the attendees and speakers and exploring Stockholm!

boom_programme_announced_sliderThe hackathon is going to be a lot of fun with great prizes for the winning team! If you are attending the conference, please enter on challengepost.com. I’m really excited to see what people build and present to the judges at this event! Our team have run a few of these and its amazing how people leverage their existing web skills and the magic of Office development to build solutions.



Review: WP BackitUp for WordPress

I was originally hosting my WordPress blog on Azure web sites using ClearDB to host the MySQL instance. I found that as my blog got more visitors I was getting database connection issues where I was going over the amount of connections for the subscription I was on. I wasn’t willing to pay $50 a month for the next subscription up. Turning on all the caching wasn’t helping me.

I had two decisions to make…where to host my blog and how to get it there.

After recommendations from a few friends I chose SiteGround.com. For $7.95 a month I got the full WordPress as a service offering. I honestly don’t have time to learn how to host WordPress in a virtual machine on Azure and wanted something as a SaaS I didn’t have to worry about. So far the service has been amazing and the site is flying due to the optimizations they have done to the web site.

I had zero idea of how to move my data out of Azure & ClearDB and into SiteGroud. A friend recommend I check out WP BackItUp. It was a ridiculously easy experience. I just installed the plug-in on both environments. Backup on one, then uploaded the files to the other and restored. It handled all the plug-ins, the configuration, all my content…everything.

You can back up for free, but its $79 license to be able to restore a backup. If you are doing anything with WordPress I’d highly recommend checking this out.

Unity Connect online event this week – keynote speaker

11424443_10153311598413955_6565177490887367963_nThe IT Unity guys have been pushing hard to build a community online since launching last year with IT Pro, Developer and End User Content. Dan Holme is a very close friend of mine and has rounded up a great team of folks running the developer content in Scot Hillier, Andrew Connell and Todd Baginski.

They asked me to be part of the Keynote on Wednesday where I’ll have a candid discussion with Scot on the extensibility of Office 365. You can see all the IT Unity sessions here on their site.

There is a laundry list of amazing speakers to watch over a series of days and I’ll highly recommend checking it out. As a third party conference, you’ll get  a lot deeper into real world scenarios and experiences from the field.

Office 365 ‘App Model’ rename cheat sheet

There have been a few threads on the different social networks around the rename of the “App Model” to “Add-in Model” for Office 365.

There were actually quite a few reasons that we pushed this rename through and it wasn’t something that was decided quickly.
The major one was that with our multi-platform support of our Office client across the Windows desktop, Mac desktop, browser, iOS, Android and Windows 10 environments . Most of these environments call our Office client “apps”, and so having “apps” within “apps” was causing confusion as we shipped the integration with the iPad.
We also had feedback that “apps” weren’t working in the enterprise space for our ISVs who were building something that was valued at much more than a ~$5 app.
Users get the notion of add-ins for SharePoint Sites and add-ins for Office clients. We needed to be consistent here with the name change across both for the Office Store perspective.
This also allowed us to highlight the benefits to developers of learning our add-in model once and being able to build for both too. This is something you couldn’t do if you learnt VBA or Farm Solutions for instance.


As someone in marketing, I appreciate the concern people have around getting this right when they speak to customers. Currently I appreciate this could be hard because of the transitional state we are in. There are many areas we need to focus on: product user interfaces, documentation, on-demand videos and a bunch of other stuff.

In the meantime, I wanted to post a quick list to make it clear on what the new names we should all be using are for Apps for SharePoint and Apps for Office.

Apps for SharePoint SharePoint Add-ins
App Web Add-in Web
App Part Add-in Part
SharePoint App Model SharePoint Add-in Model
SharePoint Hosted App SharePoint Hosted Add-in
SharePoint Provider Hosted App SharePoint Provider Hosted Add-in
Apps for Office Office Add-ins
Office App Model Office Add-in Model
Apps for Office in Outlook OutlookAdd-ins
Apps for Office in Excel Excel Add-ins
Apps for Office in PowerPoint PowerPointAdd-ins
Apps for Office in Word Word Add-ins

There have also been questions around the App Launcher. This is staying the same. This is because if you click on the App Launcher you’ll see all the first party apps like Word Online, Excel Online and PowerPoint Online for instance. These are also what we call Office client apps. You can have third party web applications in there also such as do.com and smartsheet.com where you’ve logged into those SaaS web applications with your Office 365 credentials.

There has also been concern that Office Add-ins have existed for some time. We are differentiating by the different types using this approach:

  • VSTO Office Add-ins
  • COM Office Add-ins
  • Web Office Add-ins

We really do appreciate your patience in this and please feel free to leave any comments on this post.

Office 365 Dev Slack channel

We are trying something new in our team to communicate with our Office 365 Developer community. Slack has grown like wild fire in many developer shops as a way of real-time communication without the 140 character limit 😉

It’ll be a great little experiment with this platform and hopefully benefit people in sharing information and getting questions answered. I’m really liking the mobile app to keep up to date and the web site is super fast.

If you are interested in joining…go over to http://aka.ms/office365devslack  and sign up!

If you have not heard of slack before…check out their intro and watch the youtube video below.


Office 365 Developer Podcast 48 Preview with Eric Shupps

Good on Eric Shupps for doing a quick video for us. The show coming out Thursday is a great discussion on SharePoint Add-ins in the enterprise. We really pull out the pains he feels out there and discuss them at depth.

Until Thursday, please check out our other shows at http://dev.office.com/podcasts

Download here

Can’t view – download here

Yammer delegate permissions preview available in Azure AD applications


At both Build 2015 and Ignite 2015, we talked a lot about how the Office 365 APIs were expanding outside of just SharePoint and Exchange. I noticed that in my production Azure Management Portal now when I create an application that the Yammer delegate permissions is now available in preview. This means with the same Azure AD auth flow you can read and write to the Yammer RESTful API.

yammerThis is really exciting because it means that if you build applications (mobile or web) that leverage Azure AD you can now call Exchange (Mail, Calendar, Contacts), OneDrive for Business, SharePoint and Yammer…and also the Office 365 Unified API endpoint that we announced which includes Office 365 Groups (Preview).

You may have also noticed, if you are using Azure AD in your web application and seeing it show up in the My Apps page or pinned to your App Launcher…you’ll now see an Office Store icon too. So we are promoting the store much more widely now based on feedback.



Check out the Unified API presentation that Yina Arenas from engineering did at Ignite 2015 here

Top 5 tips for presenting at hackathons

I landed in Chicago yesterday after a week in San Francisco at Build 2015 where we announced some great new developer features for Office 365 development. You can also listen to our podcast from this week that covers it in detail. I’ve spent the weekend at a hackathon run by Andrew Clark and his team called ChicagosNext.com. There are 8 teams who were coding throughout the night who will be showing their solutions to judges at 5pm today. They were presented 5 problems to select from to build a solution on top of. The majority of them have spun up free Azure and Office 365 trials to leverage the technology to speed up building their solutions.

As a judge at many of these hackathons we’ve been running I thought I’d share top 5 tips for successful presentations during hackathons.

1. Know your judges

At each hackathon the judges will typically be known before hand and will have interests in particular areas of technology. In general though, they will all be excited about innovative ideas on tech regardless.
If they are representing certain technologies from the companies they are from, naturally using their stuff is going to definitely rub them up the right way 😉 Check out the judges at ChicagosNext.com for some hints.

2. Tell the story

The pitch to the judges is really important. You don’t need to explain the problem as the judges will be aware of that, but what is key is how your solution helps solve the problem.
If other teams are doing the same problem, you’ll need to be clear on what the key features are that differentiates your solution. This will help the judges in picking winners.

3. Explain the journey as a team

The judges will have likely done a hackathon in the past. Introduce the backgrounds of the team members and what their skill sets are. Typically it’ll be a mixed bag of skills and often showing what you’ve learnt during the hack will impress the judges.
For instance, at a previous hack, the teams had NEVER used Outlook add-ins before and had built a whole solution in Outlook to translate the bodies of the emails within 1 hour.

4. You only have 24’ish hours

The important part to remember is…you can have the sexiest back end APIs and database schemas…but if the user interface doesn’t tell the user experience you will not WOW the judges. Prioritize on the user experience and add as much polish to this as possible.

5. Its a hack…not a product

The demo doesn’t have to be concrete…you’ve had 24 hours, so if there is a bunch of band aids in the background to get things working…so be it. You’ve seen enough keynotes to realize that a lot of it is smokes and mirrors, so judges won’t expect polish.

I look forward to seeing what people have built in 24 hours!

New SharePoint CSOM version released for Office 365

[Cross posted from my mate Vesa]

We are happy to announced availability of new SharePoint CSOM package version for the Office 365. This release is done now using a NuGet package release. You can find the latest CSOM package for the cloud from the NuGet gallery with an id of ‘Microsoft.SharePointOnline.CSOM’. We will also update the redistributable package in upcoming weeks, but you can already right now get access on the updated CSOM for your solutions.

Notice that the version for these assemblies is 16.1.3912.1204, so that they do not overlap with the redistributable package, which will continue using 16.0.x.x style versioning. This way updated assemblies added to the NuGet packages will be used by your applications regardless if you had also installed the redistributable package. We are also planning push more frequent updates with the NuGet package in the future. When you use the NuGet package, you will always get the latest versions for you in your app. We have also included these assemblies to the assembly folder of Office 365 Developer Patterns and Practices, where you can always find latest CSOM assemblies for on-premises and cloud (currently in Dev branch and will be merged to master in May release).  We do however recommend using the nuget packages, rather than referencing these assemblies where possible.

Key updates with the assemblies

Here’s the key changes in the released assemblies. Main changes are related on level up with the on-premises CSOM which has been gradually updated during previous CUs.

  • Manage regional settings of a site
  • Manage language settings of a site
  • Manage auditing settings of a site
  • Control advance settings for document sets
  • Support for upcoming enhanced migration APIs
  • Control sandbox solution settings in site collection level
  • Secondary contact in site collection level
  • Sharing settings

We have not yet updated our Office 365 Developer Patterns and Practices samples, but the API usage is demonstrated with the samples which were originally developed for on-premises. These will be updated with the latest cloud CSOM in upcoming days now that the updated CSOM assemblies are available for broader usage.


How to get started with the nugget package?

Let’s do this step by step, so that there’s no doubts.

1. Start up Visual studio and Choose the project type you want to use. In below example we will use console application.


2. Right click project properties and choose Manage NuGet Packages…


3. Search for “SharePoint Online Client Side Object Model” or “Microsoft.SharePointOnline.CSOM”

  • Notice the Created by and version information for the package.


4. Click Install for the package so that it will be installed on the VS project.

  • You can alternatively open up Nuget Package Manager and execute following line: “Install-Package Microsoft.SharePointOnline.CSOM -Version 16.1.3912.1204

5. Verify that the references of the project has been changed


6. You are ready to get started with your code. Here’s just simple code snippet to get access to Office 365, which you could add to your console application to test that everything works accordingly. You will obviously have to change the connectivity details accordingly to align with your own tenant.


Full list of changes in this release

Here’s the full list of changes in different assemblies compared to the previously released CSOM version. We will release samples in the Office 365 Developer Patterns and Practices for these gradually and are absolutely also open for contributions from the field for samples, which demonstrate these new APIs.

Those members which have existed before, but have been now changed are marked with *-character. These are the regional settings related properties which now support also updating those properties in site. We also do absolutely understand that this is not the best method or format to share the latest changes and we are working internally for better process with future releases. We did not also want to delay release notes on this, since we know that many from community have been waiting for these new APIs.


Here’s list of properties and new classes from the Microsoft.SharePoint.Client assembly.

  • public property Microsoft.SharePoint.ApplicationPages. ClientPickerQuery.ClientPeoplePickerQueryParameters.AllowOnlyEmailAddresses
  • public method Microsoft.SharePoint.Client.AppCatalog.GetAppDetails()
  • public method Microsoft.SharePoint.Client.AppCatalog.GetAppInstance()
  • public method Microsoft.SharePoint.Client.AppCatalog.GetAppPermissionDescriptions()
  • public property Microsoft.SharePoint.Client.AppInstance.ProductId


  • public class Microsoft.SharePoint.Client.Audit
  • public enum Microsoft.SharePoint.Client.AuditMaskType
  • public class Microsoft.SharePoint.Client.AuditPropertyNames


  • public property Microsoft.SharePoint.Client.CreatablesInfo.CanCreateFolders
  • public property Microsoft.SharePoint.Client.CreatablesInfo.CanUploadFiles
  • public class Microsoft.SharePoint.Client.DlpPolicyTip


  • public method Microsoft.SharePoint.Client.File.ExecuteCobaltRequest
  • public method Microsoft.SharePoint.Client.File.GetImagePreviewUrl
  • public property Microsoft.SharePoint.Client.Folder.Exists
  • public property Microsoft.SharePoint.Client.Folder.IsWOPIEnabled
  • public property Microsoft.SharePoint.Client.Folder.ProgID


  • public class Microsoft.SharePoint.Client.IngestionTaskKey


  • public property Microsoft.SharePoint.Client.List.CrawlNonDefaultViews
  • public method Microsoft.SharePoint.Client.List.CreateDocumentFromTemplateStream
  • public property Microsoft.SharePoint.Client.List.FileSavePostProcessingEnabled
  • public method Microsoft.SharePoint.Client.List.GetSpecialFolderUrl
  • public method Microsoft.SharePoint.Client.List.GetWebDavUrl
  • public property Microsoft.SharePoint.Client.List.MajorVersionLimit
  • public property Microsoft.SharePoint.Client.List.MajorWithMinorVersionsLimit
  • public property Microsoft.SharePoint.Client.List.ParserDisabled
  • public property Microsoft.SharePoint.Client.ListItem.Client_Title
  • public property Microsoft.SharePoint.Client.ListItem.GetDlpPolicyTip
  • public method Microsoft.SharePoint.Client.ListItem.OverridePolicyTip


  • public property Microsoft.SharePoint.Client.MountedFolderInfo.HasEditPermission
  • public property Microsoft.SharePoint.Client.MountedFolderInfo.ItemId
  • public property Microsoft.SharePoint.Client.MountedFolderInfo.ListTemplateType
  • public property Microsoft.SharePoint.Client.MountedFolderInfo.ListViewUrl
  • public property Microsoft.SharePoint.Client.MountedFolderInfo.WebUrl
  • public class Microsoft.SharePoint.Client.MoveCopyUtil


  • public property Microsoft.SharePoint.Client.ObjectSharingInformation.CanBeShared
  • public property Microsoft.SharePoint.Client.ObjectSharingInformation.CanBeUnshared
  • public method Microsoft.SharePoint.Client. ObjectSharingInformation.CanCurrentUserShareRemote
  • public method Microsoft.SharePoint.Client. ObjectSharingInformation.GetObjectSharingInformationByUrl
  • public property Microsoft.SharePoint.Client. ObjectSharingInformation.SharedWithUsersCollection
  • public property Microsoft.SharePoint.Client. ObjectSharingInformationUser.IsDomainGroup
  • public class Microsoft.SharePoint.Client.ObjectSharingInformationUserCollection
  • public class Microsoft.SharePoint.Client.ObjectSharingSettings
  • public class Microsoft.SharePoint.Client.PickerSettings


  • public property Microsoft.SharePoint.Client.RegionalSettings.AdjustHijriDays *
  • public property Microsoft.SharePoint.Client.RegionalSettings.AlternateCalendarType *
  • public property Microsoft.SharePoint.Client.RegionalSettings.CalendarType *
  • public property Microsoft.SharePoint.Client.RegionalSettings.CalendarType *
  • public property Microsoft.SharePoint.Client.RegionalSettings.Collation *
  • public property Microsoft.SharePoint.Client.RegionalSettings.FirstDayOfWeek *
  • public property Microsoft.SharePoint.Client.RegionalSettings.FirstWeekOfYear *
  • public property Microsoft.SharePoint.Client.RegionalSettings.LocaleId *
  • public property Microsoft.SharePoint.Client.RegionalSettings.ShowWeeks *
  • public property Microsoft.SharePoint.Client.RegionalSettings.Time24 *
  • public property Microsoft.SharePoint.Client.RegionalSettings.TimeZone *
  • public property Microsoft.SharePoint.Client.RegionalSettings.WorkDayEndHour *
  • public property Microsoft.SharePoint.Client.RegionalSettings.WorkDays *
  • public property Microsoft.SharePoint.Client.RegionalSettings.WorkDayStartHour *
  • public method Microsoft.SharePoint.Client.RegionalSettings.GetGlobalTimeZones *
  • public method Microsoft.SharePoint.Client.RegionalSettings.Update *


  • public property Microsoft.SharePoint.Client.RemoteWeb.CanSendEmail
  • public method Microsoft.SharePoint.Client.RemoteWeb.GetFolderByServerRelativeUrl
  • public method Microsoft.SharePoint.Client.RemoteWeb.GetGroupById
  • public method Microsoft.SharePoint.Client.RemoteWeb.GetListByServerRelativeUrl
  • public property Microsoft.SharePoint.Client.RemoteWeb.ShareByEmailEnabled
  • public property Microsoft.SharePoint.Client.RemoteWeb.ShareByLinkEnabled


  • public method Microsoft.SharePoint.Client.RequestContext.GetRemoteContext
  • public property Microsoft.SharePoint.Client.RequestContext.List
  • public class Microsoft.SharePoint.Client.SharePointSharingSettings
  • public class Microsoft.SharePoint.Client.SharingResult
  • public class Microsoft.SharePoint.Client.SharingUserCollection


  • public property Microsoft.SharePoint.Client.Site.Audit
  • public property Microsoft.SharePoint.Client.Site.AuditLogTrimmingRetention
  • public method Microsoft.SharePoint.Client.Site.CreateMigrationIngestionJob
  • public method Microsoft.SharePoint.Client.Site.CreateMigrationJob
  • public method Microsoft.SharePoint.Client.Site.DeleteMigrationJob
  • public method Microsoft.SharePoint.Client.Site.GetMigrationJobStatus
  • public property Microsoft.SharePoint.Client.Site.SandboxedCodeActivationCapability
  • public property Microsoft.SharePoint.Client.Site.SecondaryContact
  • public property Microsoft.SharePoint.Client.Site.TrimAuditLog


  • public class Microsoft.SharePoint.Client.SPInvitationCreationResult
  • public class Microsoft.SharePoint.Client.TenantAppInstance
  • public method Microsoft.SharePoint.Client.TenantAppUtility.GetAppDetails
  • public method Microsoft.SharePoint.Client.TenantAppUtility.GetAppPermissionDescriptions
  • public method Microsoft.SharePoint.Client.TenantAppUtility.GetTenantAppInstance


  • public method Microsoft.SharePoint.Client.Web.AddSupportedUILanguage
  • public method Microsoft.SharePoint.Client.Web.CreateAnonymousLink
  • public method Microsoft.SharePoint.Client.Web.CreateAnonymousLinkWithExpiration
  • public method Microsoft.SharePoint.Client.Web.DeleteAllAnonymousLinksForObject
  • public method Microsoft.SharePoint.Client.Web.DeleteAnonymousLinkForObject
  • public method Microsoft.SharePoint.Client.Web.ForwardObjectLink
  • public method Microsoft.SharePoint.Client.Web.GetFileByLinkingUrl
  • public method Microsoft.SharePoint.Client.Web.GetObjectSharingSettings
  • public method Microsoft.SharePoint.Client.Web.IncrementSiteClientTag
  • public property Microsoft.SharePoint.Client.Web.IsMultilingual
  • public property Microsoft.SharePoint.Client.Web.OverwriteTranslationsOnChange
  • public method Microsoft.SharePoint.Client.Web.RemoveSupportedUILanguage
  • public method Microsoft.SharePoint.Client.Web.ShareObject
  • public property Microsoft.SharePoint.Client.Web.ThirdPartyMdmEnabled
  • public method Microsoft.SharePoint.Client.Web.UnshareObject


  • public property Microsoft.SharePoint.Client.Sharing.UserSharingResult.DisplayName
  • public property Microsoft.SharePoint.Client.Sharing.UserSharingResult.Email


  • public class Microsoft.SharePoint.Packaging.AppDetails
  • public class Microsoft.SharePoint.WebControls.ModuleLink
  • public class Microsoft.SharePoint.WebControls.ResourceManifestInformation



Here’s list of properties and new classes from the Microsoft.SharePoint.Client.Publishing assembly.

  • public property Microsoft.SharePoint.Client.Publishing. ImageRendition.Group


  • public property Microsoft.SharePoint.Client.Publishing. SpotlightChannel.TileHtmlColor
  • public property Microsoft.SharePoint.Client.Publishing. SpotlightChannel.Title
  • public property Microsoft.SharePoint.Client.Publishing. SpotlightChannel.VideoLibraryServerRelativeUrl
  • public property Microsoft.SharePoint.Client.Publishing. SpotlightVideo.Url


  • public property Microsoft.SharePoint.Client.Publishing. VideoItem.OwnerName
  • public property Microsoft.SharePoint.Client.Publishing. VideoItem.PlayerPageUrl
  • public property Microsoft.SharePoint.Client.Publishing. VideoItem.Url



Here’s list of properties and new classes from the Microsoft.SharePoint.Client.Search assembly.

  • public class Microsoft.Office.Server.Search. Encryption.CertificateService
  • public class Microsoft.SharePoint.Client.Search. Administration.PushTenantServiceInfo
  • public class Microsoft.SharePoint.Client.Search. AzureBroker.PushTenantManager
  • public class Microsoft.SharePoint.Client.Search. ContentPush.CertificateService
  • public class Microsoft.SharePoint.Client.Search. ContentPush.PushTenantManager
  • public class Microsoft.SharePoint.Client.Search. ContentPush.PushTenantServiceInfo
  • public property Microsoft.SharePoint.Client.Search. Query.KeywordQuery.TimeZoneId



Here’s list of properties and new classes from the Microsoft.SharePoint.Client.UserProfiles assembly.

  • public property Microsoft.SharePoint.Client.UserProfiles. FollowedItem.IsHybrid
  • public method Microsoft.SharePoint.Client.UserProfiles. UserProfile.CreatePersonalSiteSyncFromWorkItem



Here’s list of properties and new classes from the Microsoft.SharePoint.Client.DocumentManagement assembly.

  • public class Microsoft.SharePoint.Client.DocumentSet.AllowedContentTypeCollection
  • public class Microsoft.SharePoint.Client.DocumentSet.DefaultDocument
  • public class Microsoft.SharePoint.Client.DocumentSet.DefaultDocumentCollection
  • public class Microsoft.SharePoint.Client.DocumentSet.DefaultDocumentPropertyNames
  • public class Microsoft.SharePoint.Client.DocumentSet.DocumentSetTemplate
  • public class Microsoft.SharePoint.Client.DocumentSet.DocumentSetTemplateObjectPropertyNames
  • public class Microsoft.SharePoint.Client.DocumentSet.SharedFieldCollection
  • public class Microsoft.SharePoint.Client.DocumentSet.WelcomePageFieldCollection



Here’s list of properties and new classes from the Microsoft.SharePoint.Client.Tenant assembly.

  • public class Microsoft.Online.SharePoint.SPLogger.LogExport
  • public class Microsoft.Online.SharePoint.SPLogger.LogFileInfo
  • public enum Microsoft.Online.SharePoint.TenantAdministration. SandboxedCodeActivationCapabilities
  • public property Microsoft.Online.SharePoint.TenantAdministration. SiteProperties.SandboxedCodeActivationCapability
  • public property Microsoft.Online.SharePoint.TenantAdministration. Tenant.AllowedDomainListForSyncClient
  • public property Microsoft.Online.SharePoint.TenantAdministration. Tenant.IsUnmanagedSyncClientForTenantRestricted
  • public property Microsoft.Online.SharePoint.TenantAdministration. Tenant.IsUnmanagedSyncClientRestrictionFlightEnabled
  • public property Microsoft.Online.SharePoint.TenantAdministration. Tenant.ShowAllUsersClaim
  • public property Microsoft.Online.SharePoint.TenantAdministration. Tenant.ShowEveryoneClaim
  • public property Microsoft.Online.SharePoint.TenantManagement. Office365Tenant.AllowedDomainListForSyncClient
  • public property Microsoft.Online.SharePoint.TenantManagement. Office365Tenant.IsUnmanagedSyncClientForTenantRestricted
  • public property Microsoft.Online.SharePoint.TenantManagement. Office365Tenant.IsUnmanagedSyncClientRestrictionFlightEnabled
  • public property Microsoft.Online.SharePoint.TenantManagement. Office365Tenant.ShowAllUsersClaim
  • public property Microsoft.Online.SharePoint.TenantManagement. Office365Tenant.ShowEveryoneClaim


You need additional APIs in CSOM?

imageIf you have any specific needs for the APIs you need, please let us know using User Voice in below address. We will address these requests and feedback where we can.

Please be patience on the requests, we will address those APIs which we can as fast as possible, but we do not have infinite resources, so we cannot provide any schedules related on the timing for addressing the feedback. Your input will be still highly appreciated and highly valuable for us to align the resources on the most needed capabilities.

Office 365 Developer Patterns and Practices

Office365PnPLogoRed_thumb1We will provide updated samples and scenarios based on these APIs in the Office 365 Developer Patterns and Practices guidance, which contains already more than 100 samples and solutions demonstrating different patterns and practices related on the app model development together with additional documentation related on the app model techniques.

Check the latest updates in our program from http://aka.ms/OfficeDevPnP. Please join us on sharing patterns and practices for the community for the benefit of the community.

“From the community for the community” – “Sharing is caring”

Musings from a Senior Product Marketing Manager at Microsoft focusing on Azure App Serice pro developer platform.

%d bloggers like this: