Rencore TechTalks: Episode 8 – Benefits of using Office 365 PnP in your organization, with Eric Overfield

Welcome to the Rencore Tech Talks show. This time I’m catching up with Eric Overfield. We’re talking about the benefits of using Office 365 Patterns and Practices in your organization, and what it has to offer. Eric is sharing his best tips on what the core benefits are, where to find more information about it, etc.

[Recorded: 2017-02-19]

Listen to this show to learn more about things like:

  • What is Office 365 PnP?
  • Code samples, documentation, videos and webinars
  • Community driven initiative with plenty of open-for-all community calls
  • Microsoft actively contributing and driving it forward
  • SIG’s (Special Interest Groups)
  • Open Source. Contribute, or just use it and modify it to fit your needs
  • Use GitHub to communicate issues, ideas, proposals etc. It’s very actively monitored.
  • Eric’s top 5 use cases for Office 365 PnP
  • SharePoint PnP Partner Pack
  • And more

Guest: Eric Overfield

PixelMill Co-Founder, SharePoint Branding and UI Designer, Builder and Creator. In 2016, Microsoft recognized Eric’s contributions to SharePoint and Office 365 by awarding him as a Microsoft MVP, and then in 2017, Microsoft recognized his community leadership and general technology expertise by accepting him in to the Microsoft Regional Director program.

Show notes:

Full transcript

[Tobias] = Tobias Zimmergren
[Eric] = Eric Overfield

[Tobias]: Today we’re going to discuss what impact you’ve seen Office 365 PnP have on my organization. And with me today joining from Malmo, I have Eric Overfield. Welcome. Glad to have you.

It’s been long overdue, right? Trying to get this to work, right?

[Eric]: Yeah. That’s right.

[Tobias]: But now we’re in the same time zone. We are both here, so why not. And previously, we had a few discussions related to PnP already in the podcast, but it’s a pretty broad topic. So in this episode, we’ll touch upon the benefits of using Office 365 PnP or Patterns and Practices and what can your organization benefit from implementing that. So with that said, Eric, can you enlighten us? First of all, what is Office 365 PnP and why is it important to know about that?

[Eric]: Sure. Absolutely. Okay, so the SharePoint Office 365 dev Patterns and Practices, which we now call PnP – first of, I mean that’s not a part of the official Patterns and Practices that the Microsoft team has. This is a separate thing that we typically call now PnP or SharePoint PnP. That’s an open source framework, open source community that was created by Microsoft consultants back in 2013. Since then, it has grown to an international community of people inside as well as outside of SharePoint. It’s extremely cool.

PnP was created to help with the cloud environment that we now see ourselves in. Basically, if we have SharePoint and we need to now develop for the Cloud, for 365 or even hybrid, there was the need of what are some repeatable practices and patterns that could be developed that we all could follow that would be future-friendly and cloud-friendly as well.

So PnP goes beyond just like simple helping or simple code, it has so much. There’s code samples and that’s what we all want. Right? So there’s open source projects, there’s open source like many projects included in PnP such as the responsive UI that’s extremely popular. And just recently, when this was recorded in February 2017 during the community monthly call that a community member showed off his internet starter pack that he had created and now it’s publicly available, freely and publicly, open source available in PnP. There’s the partner pack that’s a part of PnP as well that helps take PnP and help you use it right away.

So this is great code, plus all these documentations and video training as well. The amount of videos that are now being produced as part of PnP by the community developed for the community is just insane. In fact, I have found that PnP is one of my go-to resources for documentation on SharePoint even. It’s becoming that cool.

[Tobias]: It’s a lot of guidance in there, right?

[Eric]: So much good guidance and best practices. So if you’re going to develop for SharePoint or for the Cloud, or for hybrid, you want to talk to graph API’s now being included in PnP. Here’s the best way to do it in a way that is more future friendly.

So PnP currently is an open source community but it’s run out of the Microsoft SharePoint product group. So one of the lead guys is Vesa Juvonen who’s out of Finland. He’s a part of the Microsoft product group. So he has some of that knowledge that can help figure out what’s the roadmap for SharePoint Office 365 so that PnP can help further that messaging.

Okay. There’s more. Oh wait, there’s more. There’s the Core API that’s been built into PnP. Using CSOM primarily PnP has wrapped a lot of things that you may want to do. And again, in this most recent call, just to freshen my mind in the community call, there was a demo being provided on the next little piece that I think is cool is the PnP PowerShell. So one of the developers was showing off some of the new PowerShell stuff and it showed 2 or 3 lines of code to manipulate SharePoint. And one of the comments made by an MVP and MCM, and this a developer I greatly respect, he said, ‘’That used to take me 20 or 30 lines of PowerShell and now it takes 1 or 2.’’

So PnP offers so much cool stuff. There’s still a little more. So community driven, right? There is a monthly community call that happens that anyone can join in. So they can be a part of this community because it’s community driven. There are special interest groups or Sigs, s-i-g. There are two of them as of right now. There’s a PowerShell Sig and a JavaScript SharePoint Framework Sig and they both meet bi-weekly. So you’ve got these calls that you can call in at.

There’s an agenda for this hour and they talk about what’s going on, but then there’s always this open call for, ‘do you have any questions or comments?’ This is unheard of in the Microsoft space and even in general space to have this kind of community that meets and that is building things and that is all open source, all freely available.

[Tobias]: Full transparency and you can get in touch with people in the community there.

[Eric]: Yeah, and if you don’t like what they did then you go and you fork the whole report – because it’s all on GitHub, it’s all in Open Source – and you tweak it. You find something wrong with PnP PowerShell, fix it. Make a poll request. The fact that it’s all there for you and you can see why it was done and how it was done and you can tweak it yourself. If you don’t like a way that a video was created or a documentation was created or you see a gap, you can contribute and you can put it in and you can see it quickly. Amazing stuff.

Sorry, that was a long answer, but it’s an excellent system.

[Tobias]: Great feedback! There are a lot of things in there and you mentioned there is JavaScript and there’s SharePoint Framework stuff, there’s PnP PowerShell and there are department pack and the Core Library for CSOM and all of that stuff. Do you utilize everything in the PnP tools yourself or is it part of it? What‘re your favorite parts of using and why?

[Eric]: Absolutely. All of PnP is too big for me I suppose, to like use it all the time, but there are definitely pieces that I use on a daily basis. Primarily, I use and my organization we’re using the PnP PowerShell. This is the new way that we’re interacting with SharePoint for deployment. It just works so well and I like it a lot.

The second thing is the Core API. The Core API is designed primarily, in my opinion, for when you want also to build compelled code that you want to then speak to SharePoint. So you might be building a console App or something or maybe an Opt-in and it’s going to get deployed into something, and you want to be able to talk to SharePoint cleanly and consistently. Well, I’m trying to stay away from that. So I’m typically staying away from the Core API, but it is really good and I know a lot of people do use it. PowerShell, though, that’s where I’m spending most of my time with PnP.

It’s the new methodology that we’re using for deploying any kind of assets into SharePoint because the feature framework is supposed to be going away. It’s not been deprecated in any way, it’s just that it’s not a long-term best practice. Something like PnP PowerShell is a better way to provision stuff, so I’m using that. But we’re all using the JavaScript Core Library that came out that’s a part of the JavaScript sig I talked about. And then they recently released V2 of that. The big rewrite there is, it was written in typescript, which is cool, but it’s just JavaScript ready because typescript does transfer to JavaScript. If you want to interact with SharePoint in your JavaScript code or even in your typescript code, if you’re going to be using SharePoint Framework, the JavaScript Core Library makes that communication so much easier. And I’m going to kind of reiterate something I said before which is since all of this is still Open Source, it’s all available. If you don’t like it, you can change it and that’s what I like.

[Tobias]: You can submit that back to the community, right?

[Eric]: You can definitely submit it and I would always recommend it. But maybe you don’t want to, maybe your organization is going to take PnP and extend it internally. You can do that. So you’ve got literally thousands of hours of development time into this environment that you can freely use. And you can tweak it, if you need to, you can use it straight out of the box, which I’m sure 99% of people are just using it, and it’s just so cool.

[Tobias]: Nice. If you would give a list of 5 use cases – I mean, it’s very technical, there’s a lot of really good technical stuff in there – but from the business angle, if you would give a list of five use cases of stories, where PnP helped you or your customers, what would that be?

[Eric]: Sure. Five?

[Tobias]: Five should be easy.

[Eric]: Okay. The first thing I can think of straight of the bat is when we’re building client project, and I would say any project that I would build in SharePoint now, the PnP methodologies allow us to build a more maintainable installation of creatable packages, so in that thinking, we have PnP PowerShell.

So if I want to deploy branding assets, if I want to deploy lists and libraries content type, if I want to deploy site structures, when I deploy a group that is going to get my team site and I want to customize that team site with my own current structure, PnP is the way to go. Straight up, hands down. It’s the way to do that. So that’s the biggie that I can think of.

[Tobias]: Okay.

[Eric]: So more things and more use cases I’ve got — the responsive UI. So the responsive UI, if you do an internet search on something like SharePoint PnP responsive UI you’re going to get to this component. It’s one of the more popular components of PnP right now that I’ve seen according to their metrics. The responsive UI is a core set of code that is really easy to deploy by using PnP PowerShell that will make your classic SharePoint sites responsive – Office 365 classic team sites, as well as your on-prem 2016 and I think 2013 as well.

[Tobias]: Nice.

[Eric]: So I mean, this is really cool that it provides you simple code that makes your team site much more mobile friendly. That being said, my suggestion is, and I hope Microsoft doesn’t shoot me for it, it’s that I wouldn’t necessarily take the responsive UI and put it to production without working with it within my own environment that I’ve got for my specific project, let’s say. But it’s a great core, it’s a great place to get started. So that when you want to make your team sites through your organization mobile friendly, you just grab this responsive UI, strip that apart. It’s actually pretty simple. How they built it is beautiful. See how they did it and then you might tweak the CSS, you may add just a little bit more code to make it fit your specific environment. But again, they’ve touched so much over for you, the resource, the RND, all that. That original work that you have to do has already been done for you.

[Tobias]: Reusable components, right?

[Eric]: It’s so good. That’s what PnP is for. Okay. Let’s come up with a few more. Another use case, the JavaScript Core Library. It’s accelerated a bunch of the more recent products I’ve worked on because it alleviates the need for me to build or even to try to maintain a library to communicate with SharePoint. So I want to talk to lists and libraries, I want to grab and manage metadata, I need to do certain stuff, the core library already does that for me in a really good way and it’s also kind of cool because this is filmed in typescript now.

If you want to work with typescript, which is you want to go to SharePoint Framework. You really have no choice. You need to do it. You can go see this huge project how they did it. And as a JavaScript developer trying to move to another typescript world I think having that code base that helps you see how you might build an application that could help get you there.

[Tobias]: Alright.

[Eric]: Two more. I’m trying to learn SharePoint Framework right now, I’m trying to learn how to work with Graph API and all these kinds of cool stuff. Well, it’d be really helpful to have some documentation. Maybe some more example code to make a request to Graph API etc. Guess what, PnP has that. Perfect use case, you’re trying to learn any of this kind of stuff your go-to place should be PnP and see what they’ve got. If you have a question or comment like, ‘’Hey, I’m trying to make this kind of thing happen.’’ you use GitHub to make that feedback, to give that feedback, and say I’m looking for documentation on this or you join one of the special guest room calls or the community call and you make that comment. Like, ‘’I’m trying to learn how to do this. Does anyone either have a spot for it or could someone work on it?’’

And the core members, the core PnP team, most of them are on these community calls every month or bi-weekly whenever they occur. They’re listening and they’re providing feedback and if you watch the Skype call they’ve got the chat on the side and you’re watching it like we’re talking about some really knowledgeable people. Some of the top SharePoint minds are part of these calls and they’re listening. And we know that one of the current spots in PnP that could use more help is documentation, but sometimes it’s just helpful to know what kind of documentation is there. So that one’s that.

The other issue I can think of is those community calls, which I talked about. They’re the last use case I can come up with. So I said I’ve talked a couple of times about these community calls. It can be sometimes difficult to find them all. I made up my own little plugin for this. If you go to Ericoverfield.com I wrote a blog post on this most recently about January 2017 time, and I tried to compile all of the call information. So go there to kind of get the invites for them.

[Tobias]: Get summary.

[Eric]: People kept asking me for like where is it and I got to keep going finding it and it’s there. I just tried to make it a little tighter.

[Tobias]: Okay.

[Eric]: Okay, so what I like about these calls is that you can ask for feedback. You’re getting almost 0 date-ish kind of information. So most recently here in the beginning of 2017 when the SharePoint Framework is coming out we’re getting some of the most – it’s going to go GA – we’re getting some of the most gleaming edge information directly from the people that know.

Let’s take another one. SPFX released candidate 0, when that came out that was announced almost on the community call, almost. When the internet starter kit was updated they did a review almost instantly on these community calls and by the way, all these community calls are recorded on YouTube. So if you missed them you can go and get caught up on them, because the time zone on these calls are almost always built for the Eastern US, European time and they typically take place somewhere around 7 or 8 AM Pacific time. So that’s kind of like in the early morning of the Californians and the Washingtonians but then for the Eastern Europeans, it’s when their day is shutting down. So if you’re in one of the Asian time zones, Indian time zones or even Australian time zones, it might be difficult to make those calls, but they’re all recorded.

So if you want to learn about how to use the internet starter kit that’s where that information is going to come out. If you want to learn about the latest updates to PowerShell, you’re getting these updates every two weeks. So these community calls have become a must-attend for me and my team actually because we’re getting some of the most important stuff.

[Tobias]: Right. So it’s not just about what technical stuff is in the PnP that you can re-use, but it’s a way to wrap up your own skills all the time to keep current with what is happening in SharePoint’s world.

[Eric]: And hear it directly from the sharpest minds in SharePoint that I know. My idols are on these calls, running these calls, chatting in these calls and the amount of information is just insane.

[Tobias]: That’s some pretty cool use cases, man

[Eric]: Thank you.

[Tobias]: So you mentioned the PnP Partner Pack and it’s a pretty big deal and can be used as a getting started kit for customers and partners. It contains reusable components and solutions that can be used in any Office 365 tenant and builds up on top of the PnP core components. So from two angles would you mind sharing your thoughts on number one, how this helps businesses and number two, how do you get up and running technically with the Partner Pack?

[Eric]: Sure. The first thing it’s just why you are doing it? Speed to market, speed to get up and running. They’ve done a lot of the heavy lifting for you to be able to build a reusable SharePoint climate for your organization for your project. So the Partner Pack takes PnP and it drafts pieces of PnP and puts it together for you to build a re-deployable portal. It almost gives you pieces for self-service site creations.

So if someone asks for a site, the partner pack has the tools necessary to allow them to create their own information, to create their own sites. And I keep hoping on this, but it’s open source. So if you don’t like what they did, you tweak it, you make it fit your need. A lot of those decisions have been done for you. So that’s kind of the no-brainer. It’s going to get your project out the door that much quicker. It is a great place to start. At least if you’re going to start a new project you should go look at it, see how they did it and see how can I leverage as much of this as possible so I can just reuse that code that has been built using some of the best practices Microsoft has been promoting for my specific project. So that’s just that.

Then, how do you get started? The best way to get started and this is like the URL you might forget, so best way I can think of, is you’re going to do a web search for a SharePoint PnP Partner Pack. It’s up to version 2.0 so you’re going to find their site. They have videos on this so that can learn how to use it. Then you download it and you deploy it to a test environment. The deployment methodology for this is simple PowerShell. It’s extremely quick. You have the thing deployed in minutes. Just watch the videos first and see what they do.

So let’s say you know you’re not going to use out of the box, install it first, deploy it to some sort of test environment, test site collection, test it somewhere and see what it does and leave that there in an untouched state so that you’ve got the core components in place. Now you can build off of that on your specific dev environment and you can improve upon what they did.

The partner pack I think it’s another one of those things like the responsive UI. I don’t see too many people – and I could be wrong – but the clients I work with, the people I work with they wouldn’t use it straight out of the box as it is. It’s always going to be tweaked to fit their needs and that’s perfect, that’s the power of PnP. Its patterns and practices and not nutshell-only-built-this-way-with-the-code-that-we-produced.

So take the Partner Pack, just use this way to find it, google search for it and you’ll find it quickly, watch the videos and read some of the documentation, then deploy it somewhere just so you can see it in action. From there, you can do whatever you want with it.

[Tobias]: Nice. So there’s a lot of information in terms of PnP stuff.

[Eric]:  There needs to be more. So don’t say that — people don’t yell at me, saying ‘Oh, this is such a comprehensive…!’

[Tobias]: Don’t relax yet, right?

[Eric]: Yeah, but will that ever change? I mean, is there ever going to be enough documentation? Probably not. There’s always going to be something else that you can have information on.

[Tobias]: And when there is enough it’s already changed so you have to revamp it anyway.

[Eric]: It’s the power of the community.

[Tobias]: Speaking in terms of community and getting the most out of it, like we discussed there are the monthly releases, there are the community calls that anyone can join, there are the webcast and a lot of samples on the GitHub repositories, and dev.office.com/patternsandpractices is a good place to start. I’ve even submitted a few pull requests myself and they got approved, which I’m very happy for, but aside of all of that, do you have any other tips for where to find the right information and stay up to date with PnP?

[Eric]: There is the aka.ms/PnP which takes you to that URL that I’m trying to remember because it’s a little shorter, but it’s dev.office.com/PnP. There are so many URLs out there.

My go-to place it’s got to be Github.com/SharePoint/PnP or again GitHub.com/SharePoint then you’ll find the PnP. That’s where you’re going to see all the releases, that’s where you’re going to be able to follow the comments that have been made and the poll requests are out there. You’re going to find all of the old chats, it’s basically all there as well. There’s an issues list where people talk about issues and not only submitting issues but following the issues is a great place because there are really good discussions that happen there. And following it just because some of the sharpest minds in SharePoint development they’re logging their issues there and you’ll see the responses from the product group at Microsoft helping replying to that and if you follow along you can save yourself time by just catching what’s going on.

It’s the community call, it’s GitHub, and then there’s the blog. I’m figuring the URL–

[Tobias]: I’ll put that in the show notes.

[Eric]: Perfect. So that you can see what’s being released by Microsoft. But the community calls are a must attend. You need to get those on your calendars so that you know they’re happening. The monthly community call, it’s once a month. It’s the 2nd Tuesday of the month at 8 AM Pacific time. But you can find all that on my blog or online. You’ve got to attend that as your start. Joining these special groups and just being on the call or at least listening to their recordings is the next spot that I would highly recommend for staying up to date.

Then there are some blogs – and this one is hard – I mean, I’ve got some people that I’m following on all this stuff. One of your co-workers, Waldek, I mean his blog is a must-read. Erwin van Hunen – I follow his blog like crazy. All of the Rencore guys I guess. Elio Struyf is another guy I’m following. The blogs are really good. They’re giving you another view, but if you just want to know what’s going on with the PnP, the community calls are going to be your go-to spot and then I think GitHub is your backup.

[Tobias]: Nice. So that is a lot of information, a lot of go-to places. I’ll put all of that in the show notes and with that said, I don’t have any more questions. Unless there’s anything you’d like to share extra, then we’re done.

[Eric]: The only thing I could say is if you’ve not heard of PnP or you’ve heard of it, but you haven’t really touched it yet you’re falling behind in SharePoint development. I think that this is going to be a place where the community of Microsoft as well are going to be focusing and at least the community is focusing their time. You’ve got to be doing it. If you’re deploying into SharePoint, PnP PowerShell you need to take a serious look at why you aren’t doing it, if you’re not and then keeping up to date with the code. If you’re building a portal on SharePoint you should be looking up the internet starter kit that they just recently created. You might not use it, but you should look to see what the community did.

[Tobias]: And learn from that, right?

[Eric]: Yeah, and not being aware of that you’re hurting yourself, you’re hurting your organization, you’re hurting your own dev talents because you might be reinventing the wheel that’s already been invented. So get the groundwork out of the way. You’ll leverage through the community. I love Open Source for that reason. I would like to say, if you then have something to contribute please do. I know a lot of us have no time. We’ve been talking through odd times. My day might start at midnight because we’ve been working for the last 12 hours. What’s an 8-hour day anymore?

I totally understand that, but if you have things to contribute, please do and make those poll requests. Do you not know what a poll request is, no problem. In PnP, there was a video created by I believe by Vesa and Waldek, where they told you exactly how to go through creating a poll request so that you can help contribute to the community. There is no excuse. The only excuse I have is time, and I get that, but even that time barrier is becoming less and less because they’re taking away a lot of the grump up speeds that might have taken you time. So I hope to see you all in the PnP community. I look forward to it growing over the next series of years. I think it’s only going to get bigger and better and it’s wonderful to be a part of.

[Tobias]: Nice. Well, thank you very much for that. 

[Eric]: You are welcome.

[Tobias]: Next time you’re in Sweden lets hook up and let’s do the next episode.

[Eric]: Sounds good to me. I love it here. Thank you.

[Tobias]: Thank you. See you. And that concludes to yet another episode of Rencore Tech Talks. Thanks again to Eric for his time and thank you to everyone who tuned in to listen. Check out more about Eric and his experiences in his blog listed in the show notes.

About the author

Tobias is a 9 year Microsoft MVP and works as a product manager for our cloud offerings. He has the lead on building a cloud platform for Rencore, where our customers can securely and easily use our tools and offerings as services on demand.