Tuesday, 31 October 2017

Speaking at the European SharePoint Conference 2017

ESCP17 logo - 500

Between November 13-16 is this year’s European SharePoint Conference in Dublin, and I’m looking forward to speaking there. The event looks great, with an amazing list of speakers and great representation from Microsoft. Jeff Teper will be giving the keynote, and other Microsoft speakers include Dan Holme, Mark Kashman, Chris McNulty, Vesa Juvonen, Mike Ammerlaan and others. Effectively, this is the biggest SharePoint thing in Europe this year.

I’m giving two talks, both of which I’ve given before but have updated content from recent developments. As a speaker, it’s great to speak about a topic which is continually relevant but wow, you certainly have to check that every nugget of information is still valid and that you’re covering latest developments. Speaker rooms these days are full of people cursing Microsoft ;) Anyway, the details of my talks are:

Azure - the best bits for Office 365/SharePoint developers

Tuesday 14 November - 15:15-16:15

Azure – there’s a lot in there considering it’s just a small word! As a skillset, Azure is practically mandatory for most Office 365 developers. Between Azure functions, web apps, Azure AD, BLOB storage, SQL Database, queues and web jobs, there are a lot of useful building blocks – and solutions like OfficeDev PnP use them heavily. Maybe you’re starting out and want to host remote SharePoint code (such as Office 365 apps or provider-hosted SharePoint add-ins), or maybe you’re familiar with many Azure bits but also have a list of “untouched” areas. In this session, Azure for Office 365 and SharePoint developers, we’ll dig into the most relevant Azure capabilities, using real scenarios to show winning combinations such as SharePoint web hooks and Azure functions.

I’ve also added content around:

  • Graph bindings for Azure Functions
  • App Insights

Avoiding common pitfalls with the SharePoint Framework (SPFx)

Thursday 16 November - 15:15-16:15

This session goes beyond “intro” level SPFx content, to discuss common issues when you start using the SharePoint Framework for real. We’ll cover pitfalls related to TypeScript, npm and dependencies, SPFx security, and also focus on challenges related to team development – including new causes of “it works on my machine!”. Perhaps you have existing JavaScript code you’d like to re-use with SPFx, so we’ll talk about better ways to do that than copy/paste. We’ll also look at traps you can run into when you’re ready to release a version of your SPFx web part – ranging from accidentally bundling JS libraries, to not “shrink-wrapping” your dependencies for a reproducible build.

I’ve also added content around:

  • Correct use of Office UI Fabric, since this is a common task which is harder than it should be at the moment
  • Component bundles in SPFx – the ability to share common code between your web parts and SPFx customizers

More info

If you’re not already going, I’d seriously consider looking at it and asking the boss about the possibility. Previous events have been great, and I think the content is always high-quality. Tickets are still available, and you can get a 10% discount with the following code:

ESPC17SPEAK

The link you need is: https://www.sharepointeurope.com/pricing/

Cheers!

COB.

Friday, 6 October 2017

My Ignite wish list – what got delivered and what didn’t?

In the week or two before the recent Ignite conference, I published a wish list of things I was hoping Microsoft would announce. As usual for me, this focuses *mainly* on building on and extending Office 365, and SharePoint in particular. I like to publish these lists occasionally - it helps me shape my thoughts, and keep up with “top of mind” developments in Office 365 which would help the organizations I work with. Now that the event has happened, there were a TON of announcements at Ignite – clearly there is HUGE amount of investment and development happening across Office 365 right now, and it’s an awesome time to be working with Microsoft tech. If ever you wondered whether you backed the right horse for your career (or made the right choice for your organization), I think it’s hard to have those doubts these days. But that said, I notice that several items on my wish list did NOT get dealt with, so I thought it would be good to reflect on those somewhat.

Before we jump into the items, I have two high-level thoughts on Ignite:

  • Hey, I see what you did there!
    • Although there *were* lots of announcements, pay attention to the timeline on each of them. I’ve tried to gather together the most relevant ones to me in my table below – but I note that many are actually quite far away into 2018. Nothing wrong with it, but I feel perhaps there was a Microsoft tactic to provide a “big wave” of announcements to increase the overall effect, even if many are quite far away from launch (or even just “things that might happen”). I guess this fits with today’s “disclosure strategy” of using these 2 or 3 large events through the year to make announcements – and frankly, I much prefer this compared to having less overall visibility of the roadmap. You just need to pay attention to dates and caveats.
  • Office 365 and cloud revenue is powering investment!
    • Remember a couple of years ago people were asking if SharePoint was dead? Feels like a different world now. I think one big factor is that Microsoft are further up the adoption curve of Office 365, and the corresponding revenue and outlook means that big ambitious goals can be set. I can imagine that various product groups are a little larger and have more resources. Another one is that lots of infrastructure/scale/foundational challenges have clearly been dealt with now – leaving an increased focus on providing great tools and a modern development platform to users.

My original wish list

Anyway, back to my list – here’s what I said Microsoft should provide. I didn’t blog this, but put it on LinkedIn strangely - maybe it was a prophesy related to the increased integration between LinkedIn and Office 365 ;)

    image

    What got delivered/announced, and what didn’t?

    I initially just had some checks/crosses against each item, but then I added some notes, and then some timelines, and finally I ended up with the table below. This might only be useful to me personally, but hey, if it’s useful to you too, then great. It could have more comprehensive notes/links, but that’s probably a bigger task than I can deal with right now! So:


    Item

    Announced?

    Timeline

    Notes

    Tagging/metadata for modern pages

    Not really

    H1 2018

    “Categorization” mentioned for 2018

    Associate existing SP site with
    Group/Team

    Yes

    Early 2018

    PowerShell will also be possible. See “BRK2434 – No team site left behind”

    Provisioning/templating for
    Communication Sites (ideally PnP)

    Yes

    Q4 2017

    Site Designs (previously known as “Recipes”).*See special note on Site Designs below

    Page layouts for Communication
    Sites

    Yes

    Q1 2018



    Profile page extensibility

    No

    ?

    ?

    Web hooks on Group creation
    (site)

    No

    ?

    Nothing imminent, but a *custom*
    site design can call out to a Flow

    Provisioning/templating for Teams
    (tabs, connectors, bots)

    No

    ?

    ?

    More modern web parts (e.g.
    search)

    Yes

    Q4 2017
    • Planner/Forms web parts
    • Enhancements to Highlighted Content web part (provide query)
    • Enhanced web part picker

    SPFx enhancements

    Yes

    Multiple
    • Site scripts/site designs (Q4 2017)
    • Simplification of calling Graph/custom web APIs secured with AAD
    • Site Collection App Catalog etc. (Q4 2017)

    Some ‘under the radar’ things!

    Yes

    Multiple
    • Multi-geo (OneDrive/EXO now, SPO in 2018)
    • Hub Sites (early 2018)
    • OneDrive Files on Demand (Q4 2017)
    • Conditional Access per site (early 2018)
    • Simpler sharing e.g. verification code links for external users (Q4 2017)
    • List enhancements e.g. formatting, attention view, indexing and Flow improvements etc. (Q4 2017)
    • Better site/content analytics (early 2018)
    • LinkedIn integration with Office 365 people card (Q4 2017)

    Previously-announced,
    but not yet delivered

    Yes

    Multiple
    • New Admin Center (First Release Tenants in early CY2018)
    • App Launcher updates
    • PowerApps for SharePoint lists (October 2017 for FR tenants)
    • PowerApps enhancements e.g. upload attachments, simpler conditional views etc. (before end 2017)

    NOTE:– I’d love to hear from anyone who spots an error or something I missed with these details (e.g. a timeline). Please leave a comment if you don’t mind and I’ll update!

    My thoughts – especially on the missing items

    So Microsoft didn’t deliver everything I was hoping for. BUT, they did deliver a whole bunch of things that weren’t in my list! I list most of these in the “under the radar” and and “previously announced, but not yet delivered” categories. Us MVPs are fortunate enough to have something of an inside track on most of them (thanks Microsoft, your work here is MUCH appreciated by the way) so I had familiarity lots of them before the event. It’s great that those categories have so many items, and no doubt many more could be added too. BUT:

    •  Tagging/metadata for modern pages
      • I was disappointed not to hear more on this. It feels like there are still significant gaps when it comes to building solutions around modern pages, especially when it comes to roll-ups and displaying content of different types (e.g. pages tagged with X). Yes, there’s a new PnP re-usable control, but you’d have to do some work to integrate this, and that feels like Microsoft’s job to be honest.
    • Profile page extensibility
      • Still nothing. What’s up with that? This has been talked about for a LONG time, but still we can’t add custom widgets or tailor the Office 365/Delve profile page. I didn’t even hear any mention of it to be honest, yet lots of organizations I work with want to do something there.
    • Web hooks on Group creation (site)
      • Again, nothing here either. Vesa has mentioned some engineering considerations around providing this, but I was hoping for an announcement so that applying a custom PnP templates to self-service created Office 365 Group sites would become easier. Sure, a Flow can be used with the forthcoming Site Designs capability, but that seems to still leave a gap for default sites which don’t use any kind of Site Design, like an out-of-the-box Group site. The info was only released on this yesterday, so I could be missing something though – hope so..
    • Provisioning/templating for Teams (tabs, connectors, bots)
      • Lots of progress on Microsoft Teams, but still no proper templating story. I was *really* surprised not to hear something on this - I definitely have clients who want to use Teams at scale, but with the same set of custom tabs etc. Configuring by hand just isn’t an option, so let’s hope for something soon (again, unless I missed it).

    Of course, let me know if I am missing anything, or you disagree with my interpretation of things.

    * A note on Site Designs

    So, we do have a way of applying templating to Communication Sites (and it goes beyond that – Site Designs can be also applied to Team Sites created from the out-of-the-box UI, so this is a big deal). But, right now I do have some reservations on the model here. Obviously there’s ANOTHER way to define a site template now (the JSON format used by Site Designs, which doesn’t look too easy to work with actually – seems like there are quite a few attributes/actions to understand), and that feels sub-optimal given that the PnP provisioning building blocks have evolved so much. We *can* integrate PnP provisioning (woohoo), but the architecture is Site Design > Flow > Azure queue item > QueueTrigger/Azure Function > my PnP provisioning code. Which is fine and ticks many boxes, but:

    • Frankly I would have preferred some form of Microsoft-hosting my PnP provisioning template and taking care of the execution. The fact that we still need Azure can be a blocker for some organizations, and means there is still a level of complexity, and a chunk of work for us to do. It was pointed out to me that Microsoft may have chosen this approach because they don’t want to host/support PnP provisioning themselves (as a community effort rather than pure Microsoft), and I guess I can understand that actually. But still..
    • Templating Office 365 Group sites still seems to be a gap. Yes, I can call out to my Flow for a site which *does* have a custom Site Design – but what about Group sites which are springing up as users create Groups/Teams/Planner plans/Power BI workspaces etc.? There’s a way in which a default Site Design can be specified at the tenant level, but will this apply to Group Sites? I’m not clear at this stage. But I certainly want the capability of applying a custom template to a Group-connected site in a timely way.
      • UPDATE – just minutes after publishing, I picked up on the detail in the video linked below, that it IS possible to target a Site Design at an out-of-the-box Group Site. This is done by associating your Site Design to WebTemplate=”64” for a Group site, or WebTemplate=”68” for a Communication site etc. Happy days.

    I still think it’s something of a shame to have another templating language/approach though. Which bits of the template will be done in the Site Design and which in a PnP template? I can imagine lots of different approaches being used for this. But of course, the main advantage is that this form of templating integrates with the out-of-the-box UI for creating SharePoint sites, which opens up a lot of possibilities. I just wonder if in the end, we’ll be implementing “shell” Site Designs which call out to a PnP template which does the real work of creating content types/lists/pages/web parts and so on in the site. Let’s see..

    For more on Site Designs, see https://techcommunity.microsoft.com/t5/SharePoint-Developer/SharePoint-Patterns-amp-Practices-PnP-Core-and-PnP-PowerShell/m-p/114082#M3496

      Conclusion

      Despite not hitting all items on my list (which are just the views of one guy of course – everyone else has their priorities too), I think Microsoft are actually exceeding what I hoped for. Yes, there will always be gaps and as you can imagine, there are LOTS of things I’m not covering here. Whether it’s general developments such as new Office 365 Plans or Bing for Business, the raft of enhancements to Microsoft Teams (e.g. taking the place of Skype for Business for online), or developer-focused things such as Graph enhancements (e.g. Extensions in Azure Functions, SP list data in the Graph etc.), there’s lots of other things to keep up with. Some good starting points for further reading are: