Quantcast
Channel: Blog
Viewing all 429 articles
Browse latest View live

SharePoint PnP Webcast – Business Value of PnP assets - Why to use reusable components?

$
0
0

In this PnP Webcast, we wanted to concentrate on the PnP initiative and really talk about the value of the initiate or it's assets for the field. This can be considered as 100 level introduction to the SharePoint PnP initiative, including objectives and value it's targeted to provide for the customers and partners. PnP initiative is coordinated and owned by SharePoint engineering, but work happens together with community members. All PnP initiative assets are open source and you can use them anyway as you wish in your own deployments or customizations. 

Presentation covers following topics:

  • Past, present and current with PnP - Usage of the libraries cross the world
  • Key reasoning to get familiar with PnP initiative
    • Kickstart your solutions with reusable samples and components
    • Learn proven practices
    • Stay current
    • Reuse existing IP built together with community
  • Introduction or value of main PnP assets
    • PnP .NET Core component
    • PnP PowerShell Cmdlets
    • PnP JavaScript Core Library
    • PnP Partner Pack
    • PnP Sample Gallery
  • Public customer and partner references

Webcast presenters: Vesa JuvonenPaolo Pialorsi

Presentation used in this web cast is available from http://docs.com/OfficeDevPnP.

Video at YouTube.

Additional resources

See following resources around the different covered topics.

What is SharePoint Patterns & Practices (PnP) web cast series?

SharePoint / Office Dev Patterns and PracticesSharePoint Patterns & Practices (PnP) webcast series covers different patterns, practices and topics around development with Office 365 and SharePoint. Majority of the topics are valid for the Office 365 and SharePoint on-premises. Our objective is to release new around 30 minute long web cast each Monday with few slides and a live demo on the covered topic. All web casts are published at the PnP YouTube channel with additional references on the existing materials.

PnP is community driven open source project where Microsoft and external community members are sharing their learning's around implementation practices for Office 365 and SharePoint on-premises (add-in model). Active development and contributions happen in our GitHub repositories under dev branch and each month there will be a master merge (monthly release) with more comprehensive testing and communications. Latest activities and future plans are covered in our monthly community calls which are open for anyone from the community. Download invite from http://aka.ms/SPPnP-Call

This is work done by the community for the community without any actual full time people. It’s been great to find both internal and external people who are willing to assist and share their learning's for the benefit of others. This way we can build on the common knowledge of us all. Currently program is facilitated by Microsoft, but already at this point we have multiple community members as part of the Core team and we are looking to extend the Core team with more community members.

If you have any questions, comments or feedback around PnP program or this blog post, please use the Microsoft Tech Community (SharePoint Developer group).

“Sharing is caring”


Vesa Juvonen, Senior Program Manager, SharePoint, Microsoft - 20th of February 2017


SharePoint Framework reaches general availability—build and deploy engaging web parts today

$
0
0

(this is a re-post of the main announcement on the Office blog)

The past year has come with significant updates to our SharePoint user experiences, such as modern team sites, document libraries and pages. These modern experiences feature simple and powerful web parts that are responsive, easy to use and mobile-ready. By customizing web parts on a page, team members can build tailored sites that feature the most relevant content and tools for their team. In addition to a rich set of web parts available within SharePoint, developers can also create completely new web parts. We’re modernizing our developer surface to keep pace with rapidly changing techniques and technologies used in the broader industry. SharePoint Framework lets developers take advantage of up-to-date practices, tools and libraries to help them build more engaging, mobile-ready web parts at a rapid pace.

Today, we’re proud to announce the general availability of SharePoint Framework—allowing developers and administrators to build and deploy parts that are used by Office 365 users in their production environments.

What is the SharePoint Framework?

Our partners, customers and independent developers have created innovative solutions using SharePoint’s page and web part model, which was largely implemented in .NET and, like many content and collaboration systems, was designed and matured in the server-rendered era. The SharePoint Framework (SPFx) is a page and web part model that provides full support for client-side SharePoint development, easy integration with SharePoint data and support for open source tooling. With the SharePoint Framework, you can use modern web technologies and tools in your preferred development environment to build productive experiences and apps on SharePoint that are responsive and mobile-ready from day one!

For more details, be sure to check out our full blog post announcing the SharePoint Framework last May.

Product momentum

Since the SharePoint Framework Developer Preview was released in August, we’ve seen substantial community excitement and contributions. At Microsoft Ignite, SharePoint Framework was one of the top discussed items on Twitter among Microsoft technologies at the event. Community contributions to the evolving SharePoint Framework have been strong, with dozens of blog posts around tools and techniques from the community exploring various facets and techniques of building parts. Over 30 code samples are now live in our GitHub repository for code samples—many of which were built by the community. We also have a showcase of parts created by partners—many created a few short weeks after initial release.

The React-Multipage (Poll) web part—one of over 30 sample web parts developers can begin using.

During the developer preview period, the SharePoint Framework itself evolved quickly based on feedback. Over the span of three months, six distinct updates to the framework were made, including many features and fixes based on developer feedback from the community. Examples include improved initial start size and making facets of our build process more customizable and consistent.

What’s next?

The SharePoint Framework General Availability release tools are now available. Over the next week and beyond, the SharePoint Framework General Availability release will be rolled out to Office 365 tenancies. After this, we’ll continue to iterate on the SharePoint Framework, making fixes and improvements based on community feedback. Now that we’ve reached general availability, ensuring continued compatibility across versions will be our focus. We’re also working on the next legs of our product roadmap, including on-premises support and new development scenarios—so stay tuned for new SharePoint Framework extensions and capabilities.

How to get started

Developers can learn more about building web parts and custom solutions with the SharePoint Framework at the Office Dev Center, leveraging code samples from our GitHub repository, and by watching these related sessions from Microsoft Ignite:

Administrators and site owners can now use and deploy SharePoint Framework web parts to their production environments. They can learn more on governing and deploying SharePoint Framework components in this article.

We—and a lot of #SPFx developers—can’t wait to see SharePoint Framework web parts in the hands of users!

New SharePoint CSOM version released for SharePoint Online - February 2017

$
0
0

We are happy to announce availability of new SharePoint Client Side Object Model (CSOM) version targeted for the Office 365 or more specifically for SharePoint and Project Online. This release again contains few updates on the existing SharePoint CSOM assemblies and some maintenance changes. Key changes in this release is the updates around the CSOM alert APIs.

You can find the latest CSOM package for SharePoint Online, including the Project Online CSOM assembly, from the NuGet gallery with an id of 'Microsoft.SharePointOnline.CSOM'. We are also working on updating the redistributable package at some point, but you can already right now start using some of these new capabilities in your solutions. We do recommend you to use the NuGet Package to gain access on latest version, rather than downloading the SDK to your machine.

Version of the newly released CSOM package is 16.1.6216.1200. Previous versions of the NuGet have not been removed, so that your existing solutions will continue working without issues and you can decide when the new version is taken into use. Notice that even though the Nuget version is increased to 16.1.6216.1200, actual assembly version of the released assemblies is 16.1.0.0. You can also check the version of the assemblies from the File Version attribute, which aligns with the NuGet version.

Screenshot of the CSOM NuGet package at Visual Studio Nuget Gallery view

SharePoint Online Management Shell will be also updated around the 1st of March to match on the CSOM version. We are also working on getting the MSDN reference API documentation updated with the latest release with additional documentation on new APIs, so that you can more easily see all the latest and supported APIs for SharePoint Online.

Notice that since this NuGet package is targeted to SharePoint Online, you cannot use it directly in on-premises environments (SharePoint 2013 or 2016). This is because of the server side dependencies of the APIs. CSOM versioning model and dependency to your target environment is clarified in following blog post - Using correct Client Side Object Model (CSOM) version for SharePoint customizations. We have released separate NuGet packages for on-premises. See following blog post for additional details - SharePoint CSOM versions for on-premises released as NuGet packages.

Creating Alerts using CSOM

We released original support for creating Alerts in the SharePoint Online with the January 2017 release of the CSOM, but unfortunately this release had a bug related on the defining the alert details and only way you could create them, was not optimal, like explained in Todd Baginski's blog post. Here's updated example on how to create Alerts using CSOM in SharePoint Online.


// Load needed information from SharePoint Online
User currentUser = ctx.Web.CurrentUser;
ctx.Load(currentUser);
ctx.Load(currentUser.Alerts);
ctx.Load(currentUser.Alerts,
lists => lists.Include(
list => list.Title,
list => list.ListID));

ctx.ExecuteQuery();

// Create new alert using CSOM for the user
AlertCreationInformation newAlert = new AlertCreationInformation();
newAlert.List = ctx.Web.Lists.GetByTitle("Documents");
newAlert.AlertFrequency = AlertFrequency.Daily;
newAlert.AlertTime = DateTime.Today.AddDays(1);
newAlert.AlertType = AlertType.List;
newAlert.AlwaysNotify = false;
newAlert.DeliveryChannels = AlertDeliveryChannel.Email;
newAlert.Status = AlertStatus.On;
newAlert.Title = "New alert created at : " + DateTime.Now.ToString();
newAlert.User = currentUser;
newAlert.EventType = AlertEventType.All;
newAlert.Filter = "0";
// 0 = Anything Changes
// 1 = Someone else changes a document
// 2 = Someone else changes a document created by me
// 3 = Someone else changes a document modified by me

// add the alert for the user
var newAlertGuid = currentUser.Alerts.Add(newAlert);
currentUser.Update();

//Execute creation request to the SPO
ctx.ExecuteQuery();

New properties and methods cross assemblies

Here's a raw list of all the changes in the classes, properties and methods within this package. 

Microsoft.SharePoint.Client

Following properties, classes and methods have been added.

  • public method Microsoft.SharePoint.Client.APIHubConnector.CreateListItem
  • public method Microsoft.SharePoint.Client.APIHubConnector.GetEntityValues
  • public method Microsoft.SharePoint.Client.APIHubConnector.GetListItem
  • public method Microsoft.SharePoint.Client.APIHubConnector.GetListItems
  • public method Microsoft.SharePoint.Client.APIHubConnector.GetNewListItems
  • public method Microsoft.SharePoint.Client.APIHubConnector.GetUpdatedListItems
  • public method Microsoft.SharePoint.Client.APIHubConnector.UpdateListItem
  • public property Microsoft.SharePoint.Client.ConnectorResult.ContextData

  • public class Microsoft.SharePoint.Client.CustomerKeyInfo

  • public method Microsoft.SharePoint.Client.File.GetImagePreviewUri
  • public method Microsoft.SharePoint.Client.File.GetUploadStatus

  • public property Microsoft.SharePoint.Client.ListItem.ServerRedirectedEmbedUri
  • public method Microsoft.SharePoint.Client.ListItem.SetComplianceTagWithRecord

  • public class Microsoft.SharePoint.Client.MicroServiceManager
  • public class Microsoft.SharePoint.Client.MicroServiceUtilities

  • public class Microsoft.SharePoint.Client.MoveCopyOptions
  • public property Microsoft.SharePoint.Client.NavigationNode.ListTemplateType

  • public method Microsoft.SharePoint.Client.RemoteWeb.GetFileByServerRelativePath
  • public property Microsoft.SharePoint.Client.RenderListDataParameters.ReplaceGroup
  • public enum Microsoft.SharePoint.Client.RequestType

  • public method Microsoft.SharePoint.Client.Site.OnboardTenantForBringYourOwnKey

  • public property Microsoft.SharePoint.Client.Web.DesignPackageId
  • public method Microsoft.SharePoint.Client.Web.GetViewFromPath

  • public class Microsoft.SharePoint.Client.Utilities.UploadStatus

Following items have been REMOVED from this assembly

  • public property Microsoft.SharePoint.Client.AlertCreationInformation.Properties
    • Notice that this might impact your customizations, if you started using this Alert CSOM APIs from January 2017 release. This is a fix for the bug, which existed on the first release.
  • public property Microsoft.SharePoint.MicrosService.MicroServiceManager

Microsoft.Online.SharePoint.Client.Tenant

Following properties, classes and methods have been added.

  • public method Microsoft.Online.SharePoint.TenantAdministration.Tenant.GetTenantCdnRestrictedSiteClassifications
  • public property Microsoft.Online.SharePoint.TenantAdministration.Tenant.OwnerAnonymousNotification
  • public method Microsoft.Online.SharePoint.TenantAdministration.Tenant.SetTenantCdnRestrictedSiteClassifications

  • public method Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.GetTenantCdnRestrictedSiteClassifications
  • public property Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.OwnerAnonymousNotification
  • public method Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.SetTenantCdnRestrictedSiteClassifications

Microsoft.Office.Client.Policy

Following properties, classes and methods have been added.

  • public property Microsoft.SharePoint.Client.CompliancePolicy.ComplianceTag.AutoDelete
  • public property Microsoft.SharePoint.Client.CompliancePolicy.ComplianceTag.BlockEdit
  • public property Microsoft.SharePoint.Client.CompliancePolicy.ComplianceTag.HasRetentionAction

  • public method Microsoft.SharePoint.Client.CompliancePolicy.SPPolicyStore.GetPolicyAssociations
  • public method Microsoft.SharePoint.Client.CompliancePolicy.SPPolicyStore.GetPolicyBindings
  • public method Microsoft.SharePoint.Client.CompliancePolicy.SPPolicyStore.GetPolicyRules

Microsoft.Office.Client.Publishing

Following properties, classes and methods have been added.

  • public class Microsoft.SharePoint.Client.Publishing.SitePageVersionInfo
  • public property Microsoft.SharePoint.Client.Publishing.TextValueWithLanguage.ColorSeed

Microsoft.Office.Client.Taxonomy

Following properties, classes and methods have been added.

  • public method Microsoft.SharePoint.Client.Taxonomy.TermStore.GetPackage
  • public method Microsoft.SharePoint.Client.Taxonomy.TermStore.GetPackagesUpdateInformation

“Sharing is caring”


Vesa Juvonen, Senior Program Manager, OneDrive-SharePoint Engineering, Microsoft - 24th of February 2017

Yammer Partner Q&A: Process Street’s CTO, Cameron McKay

$
0
0

The benefit of online forums is that developers can learn from each other. At Yammer, we expand on this knowledge sharing by publishing interviews with the developers of successful Yammer integrations.

The latest Partner Q&A is with Cameron McKay, the CTO of Process Street. Cameron, with a strong focus on UX, explains how using the Yammer Platform has helped their users:

“The best ‘experience improver’ for our product has been the ability to suggest other [Yammer] team members – we use this both within the invite flow and to help users assign members to tasks/workflows.”

Elaborating, Cameron details which REST API endpoints have been most useful, and how they relate to Process Street’s features. Visit developer.yammer.com/blog to read more about Process Street and the specific endpoints they recommend.

ISV GTM (Go to Market) Series : How to run effective campaigns with campaign tracking and acquire new users

$
0
0

This blog post is part of a new series based on our newly published guide for being effective in “Going to Market” with your Office add-in or service. We’ll follow up in later blogs with a deep dive on different campaign types, how to best upsell to a new add-in user, how to encourage them to deploy that add-in to others within that user’s organisation and more. This blog series is targeted for people developing add-ins and apps for Office.

Search, web, social and email campaigns are a standard part of how all software companies drive users to discover their new apps or services. This blog describes how regardless of the size of your company, you can build campaigns to effectively drive users to try your Office add-in, including how to target users effectively and how to track campaign success.



Why run campaigns?

The Office Store that is embedded within the Microsoft Office apps like Excel or Outlook has many visitors each day. Simply listing your app in the Store and waiting for “organic” visitors will yield some new customers each day. However there are many competing available services within categories such as CRM or data visualisation, and it can be hard to attract a user’s attention so they can understand why your service is better than that of the competitors. The bottom-line is, waiting for organic visitors will only get you a certain level of success.

Also many of your customers have a “set way” of achieving important tasks within Microsoft Office, and don’t go out of their way to fundamentally change how they complete those tasks, even though they may benefit by doing so. There is huge opportunity for you to reach these users by using standard web marketing mediums – search, web, social and email campaigns. By not relying solely on ‘organic visitors’, you can take back control of your add-in’s success by running your own marketing and winning more users for your add-in’s and apps.



Step 1: Plan your campaign end to end and identify the right audience

Before rushing into channels, ads and budgets, you should outline the goals for your campaigns. In addition to expanding your user base, do you plan to target users who work in a specific field or organisations? Will you be generating leads within your add-in? Are you planning to upsell users once they have become engaged with your solution? And will these users be potential candidates to share your solution within their organisation?

Based on these answers you can move forward to plan the best marketing activities fitting to your goals.



Step 2: Focus on right channels and optimize for success

Invest in channels that yield the best results – you may have historical data from previous campaigns you have run what works, but do expect a period of learning and trying variations, as you explore multiple strategies to see how best your customers respond.

SEARCH ENGINE MARKETING

If you don’t have an existing customer base, it’s good to start building awareness by running campaigns that allow you to learn about the audience, messaging and creatives with low cost. SEM is a good place to start since it allows you to easily set keywords and control your budget.

SOCIAL MEDIA MARKETING

Once you have a good understanding of your audience, you can expand your marketing to include different social media channels such as LinkedIn, Facebook and Twitter. Those platforms allow you to do specific targeting beyond geo-location, device and age. You can target users who have interests related to your add-in or who work in a field that is relevant to the core use-case of your add-in.

EMAIL MARKETING

Engaging and re-engaging with your users is commonly done using direct email marketing. Setting up email campaigns is fast and cheap, but stay mindful of not overly spamming your users. Keeping your style and messaging consistent and relevant is key, otherwise you’ll see users opting out from the email list.

DIGITAL MARKETING

A blog can be a perfect place to let people know about your add-in and all the great capabilities it has. You can highlight specific features and give tips on getting the most out of your solution and share news and updates. Your blog, landing page or web page is also a great place to get people to try your add-in. The pages you host yourself will also enable you to collect more insights on visitors who have expressed interest towards your solution.

We will do a deeper dive into different marketing channels and share more insights & best practices in our later posts.



Step 3: Track success of your efforts with Campaign Tracking

Whatever channels you choose to use, tracking your marketing efforts will help you understand what works or doesn’t work about a campaign, and evaluate the return on investment for the campaign cost.

Use a unique Campaign ID to allow you to better understand the impact of your individual marketing efforts. When you link from your promotional campaigns to your add-in page in the Office Store, include the following query parameters at the end of the URL:

  • mktcmpid=Your marketing campaign ID, which can include up to 16 characters (any letter, number, _ , and -). For example, blogpost_12. This is a parameter you can design based on your campaign sources.
  • mktvid=Your Store Provider ID, which is included in the URL of your Store Provider page. For example, PN102957641. (To find your Store Provider page, go to the Add-in details page on Store.Office.Com and click on your company/provider name. It always begins with the letters PN.)

PickIt""

Office

Find the Provider ID by selecting the link from your listing’s ‘Details’ section

The following example shows a URL that includes the two query parameters:

https://store.office.com/app.aspx?assetid=WA102957661&mktcmpid=refexample&mktvid=PN102957641

Adding these parameters to your campaign URL, will enable insights into your campaign's user funnel. You will have access to the number of users who visited your add-in page in the Office Store, number of users who clicked to acquire the add-in and finally the number of users who successfully installed and launched the add-in inside Office.

Tip: Bookmark this guidance page on how to create links with Campaign ID!

(NOTE: this campaign tracking capability is currently available for FREE Word, Excel and PowerPoint add-ins listed in Store.Office.Com.)

 

Step 4: Monitor success

Coming soon, we will share campaign insights with you on Seller Dashboard. This will give you the tools needed to analyse the success of each campaign and focus your efforts on channels and messaging that works. Until this is available, you can contact us at omexdatarequests@microsoft.com to get your campaign tracking analytics from the campaign tracking URL’s.



Call to action

To gain more customers for your add-in, plan your campaigns today and leverage campaign tracking URL’s. See the Go to Market Guide for more strategies.

SharePoint PnP Webcast – Automate custom solution deployment steps at Office 365 and Azure

$
0
0

In this PnP Webcast, we wanted to concentrate on how you can automate your custom solution deployments to Office 365 and to Azure. We use PnP Partner Pack reference solution as the example case, which also contains now the updated wizard steps, which you can use in your solutions as well. PnP Partner Pack has simple UI to sign-in to Office 365 and to Azure subscription and will then fully take care of the deployment steps to the specific Office 365 tenant. Automation will compile latest version of the available code, create needed site collections and takes care of the Azure configuration for app-only access to SharePoint Online. 

Solution is combination of SharePoint PnP PowerShell, usage of Microsoft Graph APIs and API calls to Microsoft Azure management APIs

Presentation covers following topics:

  • Introduction to reference solution - PnP Partner Pack
    • Ready to use reference solution for Office 365 and SharePoint Online
    • Open source solution available from GitHub
    • Based on SharePoint PnP samples, guidance and processes
    • Based on community efforts
    • Easy to setup and maintain
  • Web cast demo (11:08) shows following details
    • Demonstration of the UI elements around the automation
    • Walkthrough of the key areas in the code

Webcast presenters: Vesa JuvonenPaolo Pialorsi

Presentation used in this web cast is available from http://docs.com/OfficeDevPnP.

Video at YouTube.

Additional resources

See following resources around the different covered topics.

What is SharePoint Patterns & Practices (PnP) web cast series?

SharePoint / Office Dev Patterns and PracticesSharePoint Patterns & Practices (PnP) webcast series covers different patterns, practices and topics around development with Office 365 and SharePoint. Majority of the topics are valid for the Office 365 and SharePoint on-premises. Our objective is to release new around 30 minute long web cast each Monday with few slides and a live demo on the covered topic. All web casts are published at the PnP YouTube channel with additional references on the existing materials.

PnP is community driven open source project where Microsoft and external community members are sharing their learning's around implementation practices for Office 365 and SharePoint on-premises (add-in model). Active development and contributions happen in our GitHub repositories under dev branch and each month there will be a master merge (monthly release) with more comprehensive testing and communications. Latest activities and future plans are covered in our monthly community calls which are open for anyone from the community. Download invite from http://aka.ms/SPPnP-Call

This is work done by the community for the community without any actual full time people. It’s been great to find both internal and external people who are willing to assist and share their learning's for the benefit of others. This way we can build on the common knowledge of us all. Currently program is facilitated by Microsoft, but already at this point we have multiple community members as part of the Core team and we are looking to extend the Core team with more community members.

If you have any questions, comments or feedback around PnP program or this blog post, please use the Microsoft Tech Community (SharePoint Developer group).

“Sharing is caring”


Vesa Juvonen, Senior Program Manager, SharePoint, Microsoft - 27th of February 2017

SharePoint PnP Webcast – Provisioning SharePoint assets for your SharePoint Framework solution

$
0
0

In this PnP Webcast, we covered diffrent options around provisioning SharePoint assets to SharePoint sites as part of the SharePoint Framework solution package. Typical scenario would be a requirement to have a list(s) for a client-side web part in the site, when the solution is installed. This list should obviously get provisioned automatically for the site, when package is taken into use. This webcast shows different options on how to make this happen in practice and also specific demo around the feature framework based provisioning from SharePoint Framework solution packages. There are advantages and disadvantages in each of the possible options, so it's important to understand the technical implications in detail when you design your own SharePoint Framework solutions.

Presentation covers following topics:

  • SharePoint asset provisioning for SPFx solution as part of solution deployment
  • Different options for provisioning SharePoint assets from SharePoint Framework solution
  • Supported feature framework elements when declarative option is used
  • Update and upgrade story for solution packages

Web cast demo (28:10) shows following details

  • Creating feature framework assets for client-side web part
  • Showing where the assets are stored in the solution
  • Feature Framework definitions for field, content types and list instances
  • Creating schema.xml to have custom list experience
  • Show needed configuration in package-solution.json file for feature xml elements
  • Showing how the SPFx is packaging feature xml assets to solution file

Webcast presenters:  Vesa JuvonenWaldek Mastykarz

Presentation used in this web cast is available from http://docs.com/OfficeDevPnP.

Video at YouTube.

Additional resources

See following resources around the SharePoint Framework. 

What is SharePoint Patterns & Practices (PnP) web cast series?

SharePoint / Office Dev Patterns and PracticesSharePoint Patterns & Practices (PnP) webcast series covers different patterns, practices and topics around development with Office 365 and SharePoint. Majority of the topics are valid for the Office 365 and SharePoint on-premises. Our objective is to release new around 30 minute long web cast each Monday with few slides and a live demo on the covered topic. All web casts are published at the PnP YouTube channel with additional references on the existing materials.

PnP is community driven open source project where Microsoft and external community members are sharing their learning's around implementation practices for Office 365 and SharePoint on-premises (add-in model). Active development and contributions happen in our GitHub repositories under dev branch and each month there will be a master merge (monthly release) with more comprehensive testing and communications. Latest activities and future plans are covered in our monthly community calls which are open for anyone from the community. Download invite from http://aka.ms/SPPnP-Call

This is work done by the community for the community without any actual full time people. It’s been great to find both internal and external people who are willing to assist and share their learning's for the benefit of others. This way we can build on the common knowledge of us all. Currently program is facilitated by Microsoft, but already at this point we have multiple community members as part of the Core team and we are looking to extend the Core team with more community members.

If you have any questions, comments or feedback around PnP program or this blog post, please use the Microsoft Tech Community (SharePoint Developer group).

“Sharing is caring”


Vesa Juvonen, Senior Program Manager, SharePoint, Microsoft - 6th of March 2017

Microsoft Graph portal has a fresh, new look!

$
0
0

Today, we’re announcing that the Microsoft Graph developer portal has a new look, and will redirect to a new home on the Microsoft Developer Center.

Check out the Examples page for inspiration and see how partners are using the Microsoft Graph, the Graph Explorer to try out a few calls, check out the Quick Start, or get going with the Samples and SDKs.  As we head to Build, we’ll continue to make improvements based on your feedback across each of these. 

man

We welcome your feedback

Head over to https://developer.microsoft.com/graph today, and let us know what you think by posting your suggestions on UserVoice.  


Happy Anniversary, Visual Studio!

$
0
0

Happy Birthday Cupcake

On behalf of the Office developer teams, congratulations to the Visual Studio team on their launch of Visual Studio 2017 and on their 20th anniversary! In those 20 years, Visual Studio has caused big shifts in the developer world. The changes it has ushered in for Office development are no less significant.

Visual Studio and Office: A Productive History

The shared history of Office and Visual Studio really goes back to the 1990s – even before Visual Studio emerged  when Office and Visual Studio shared a foundation of Visual Basic. Visual Basic (and its cousin, Visual Basic for Applications) pioneered many concepts around rapid application design and simple-but-powerful coding. Within Excel, Word, and PowerPoint, hundreds of thousands of developers created simple VB forms and functions to make their jobs easier and their work smarter. The tight connection continued with Visual Studio 2003, which introduced Visual Studio Tools for Office. Visual Studio Tools for Office (VSTO) supported visual designers and integrated projects for creating Office add-ins, document integrations and panes. More importantly, it also brought the innovations of Visual Studio – fantastic .NET support, rich IntelliSense, integrated debugging, and deep software development lifecycle support – all into Office.

Today: Web-based Development is Office Development

Since Office 2013 and Visual Studio 2013, extending Office has centered on building web applications. Add-ins and tools in Visual Studio make it easy to integrate web applications into the Office user experience. In all the ways the Visual Studio family improves and adds new functionality for building web apps, so too will Office development get better.

Visual Studio 2017 – launching today – provides improved refactoring, IntelliSense, and debugging functionality to make everyday development easier. It also includes many new capabilities for cloud development, including refined DevOps flows as well as deeper support for container and microservices that more demanding Office web-based add-ins may use.

Visual Studio 2017 also makes building mobile apps easier, whether you use native, Xamarin, Cordova, or Ionic technologies. Coupled with the Microsoft Graph, where developers can easily work with all types of data from their organization, it’s never been easier to build intelligent cross-platform mobile business applications.

Visual Studio, Xamarin, and Microsoft Graph Development

Developing with Xamarin in Visual Studio 2017, including Android emulators and integrated debugging

The Visual Studio family has grown in recent years, as well. Visual Studio for Mac lets developers who use the macOS operating system easily create web and mobile apps. Visual Studio Code specializes in providing a lightweight, flexible code editor for the diverse files you may see in modern, client-oriented web apps.  It works well for some types of web projects – particularly those using many different build and compilation tools and formats, such as building new SharePoint Framework web parts.

Visual Studio Code

Editing a TypeScript + React file for a SharePoint Framework Web Part, in Visual Studio Code

With its continued focus on supporting web and mobile development, the Visual Studio family will continue to make all developers – and especially those building Office apps -- more productive at building powerful and engaging applications. Happy Birthday, Visual Studio, and we look forward to many more great years to come!

As part of Visual Studio 2017 Launch activities, you can catch a full day of live training tomorrow, March 8th – including a session on building web apps and Bots with Microsoft Teams, as well as building mobile business applications with Xamarin + Graph. We hope you can make it!

Adding custom app data to Microsoft Graph now in preview

$
0
0

Microsoft Graph provides a single API endpoint that gives you access to rich people-centric data and insights, via a number of resources like users and messages. Frequently, developers want to associate additional custom data of their own with these resource types, requiring significant additional infrastructure – until now.

We're happy to announce that there’s now a way for you to extend Microsoft Graph with your own data. Extensions allow you to add custom properties to Microsoft Graph resources without requiring an external data store. For example, you can store app-specific user profile data in Microsoft Graph by extending the user resource, instead of needing to invest in dedicated data-store infrastructure for your app. Alternatively, you might want to retain your app’s existing user profile store and link its records to users in Microsoft Graph by adding an app-specific identifier to the user resource.

Microsoft Graph offers two types of extensions:

  • Open extensions: A good way for developers to get started with extending resources  with custom data.  
  • Schema extensions: A more versatile mechanism for developers who care about storing typed data, making their schema discoverable and shareable, being able to filter, and in the future being able to perform input data validation and authorization.

NOTE: Open extensions (formerly known as Office 365 data extensions) were already available for Outlook resource types like message and event. We're now adding the same capability for directory resource types like user and group.

Let's take a quick look at how you can add custom data with open and schema extensions.

Using open extensions

Let's say you want to let users configure their UI experience so it’s consistent no matter which device they use to sign in to your app. Adding roaming profile information to an existing user resource can be done with a POST.

POST https://graph.microsoft.com/beta/me/extensions

{

    "@odata.type":"microsoft.graph.openTypeExtension",

    "extensionName":"com.contoso.roamingSettings",

    "theme":"dark",

    "color":"purple",

    "lang":"Japanese"

}

When the user signs in to the app from another device, the app can retrieve the user's profile details as well as their roaming settings:

GET https://graph.microsoft.com/beta/me?$select=id,displayName,mail,mobilePhone&$expand=extensions    

 HTTP/1.1 200 OK

{

    "id": "84b80893-8749-40a3-97b7-68513b600544",

    "displayName": "John Smith",

    "mail": "john@contoso.com",

    "mobilePhone": "1-555-6589",

    "extensions": [

        {

            "@odata.type": "#microsoft.graph.openTypeExtension",

            "extensionName": "com.contoso.roamingSettings",

            "id": "com.contoso.roamingSettings",

            "theme": "dark",

            "color": "purple",

            "lang": "Japanese"

        }

    ]

}

Using schema extensions

Schema extensions allow you to define a schema you can use to extend a resource type. First, you create your schema extension definition and then use it to extend resources with strongly-typed custom data. In this example we'll define a training  course extension for groups which specifies  new properties for a course ID (courseId) and a course name (courseName).

Create the schema extension definition

POST https://graph.microsoft.com/beta/schemaExtensions

Content-type: application/json

{

    "id":"graphlearn_courses",

    "description": "Graph Learn training courses extensions",

    "targetTypes": [

        "Group"

    ],

    "properties": [

        {

            "name": "courseId",

            "type": "Integer"

        },

        {

            "name": "courseName",

            "type": "String"

        }

    ]

}

Now we have a schema definition, we can use it to describe our training course.

Add custom data by setting schema extension values

We can add custom data either when creating or when updating a group. When updating an existing group, add the graphlearn_courses schema extension value to the body of the PATCH request:

PATCH https://graph.microsoft.com/beta/groups/dfc8016f-db97-4c47-a582-49cb8f849355

Content-type: application/json

{

    "graphlearn_courses":{

          "courseId":"123",

          "courseName":"New Managers"

    }  

}

After adding the extension to the group, we can get the custom data together with other group data by using a $select statement:

GET https://graph.microsoft.com/beta/groups/dfc8016f-db97-4c47-a582-49cb8f849355?$select=displayName,id,description,graphlearn_courses

HTTP/1.1 200 OK

{

      "displayName": "New Managers March 2017", 

      "description": "New Managers training course for March 2017",

      "graphlearn_courses": {

          "@odata.type": "#microsoft.graph.ComplexExtensionValue",

          "courseId":"123",

          "courseName":"New Managers"

      }

}

More information

Please take a look at our Extensions overview documentation and try it out using the updated Microsoft Graph UWP Snippets Sample (REST) or by using Microsoft Graph Explorer. Note that you cannot create or manage schema extension definitions through Graph Explorer - for that you'll need to create your own application.

Please let us know what you think and what other things you'd like to see in open and schema extensions.

Improved Trending Insight

$
0
0

In addition to exposing users’ data, like who they are and what content they work with (files, messages, conversations, tasks, etc.), the Microsoft Graph also exposes calculated insights based on the users’ activity. These insights enable applications to get to relevant data about users. For example, using the Trending API to get documents that are trending or using the People API to get people they closely work with.

Today we are announcing an improvement in our Trending API based on feedback we received from our developer community. This API returns documents that are relevant to users in their organization. The Trending API was initially exposed under the /trendingAround navigation on any user in the beta endpoint. We are removing this navigation over the next few months and the improved version of the Trending API is now available under a new navigation: /insights/trending.

This improved Trending API returns not only the list of relevant documents but also new visualization properties that let you render the documents in your app experiences as cards, the same way we do in Office 365, for example in Delve. And it also returns reference properties, that enable navigations to the actual documents.

The Trending API uses an intelligent background analysis to deliver the most relevant documents. To improve the API further, the analysis now happens in near real-time. This means that users see what is trending around them at the very moment.

 

Using the improved Trending API

The Trending API is accessible in the Microsoft Graph via /insights/trending, available in the beta namespace.

You can call the API to get documents trending around you:

https://graph.microsoft.com/beta/me/insights/trending

Or around someone in your organization:

https://graph.microsoft.com/beta/users/anneg@contoso.com/insights/trending

You can try calling the new API right now with our Graph explorer. Try making a call with the demo tenant or log in with your own user and see what documents are currently trending around you.



Working with the results

A call to the improved Trending API returns a set of trending documents – the top 10 documents by default. The API supports the standard ‘top’ and ‘select’ query options. Each document returned by the API has a weight property with a value that shows to what extent the item is trending around the user. The higher the value, the more relevant the item is to the user. The results are sorted by this value in descending order.

Each returned document contains a resourceVisualization and a resourceReference complex value type (CVT).

The resourceVisualization CVT contains properties such as ‘title’ and ‘previewImageUrl’. We use visualization properties to render the files in our experiences:

resource



The resourceReference CVT contains a ‘webUrl’ that allows you to navigate users to the location of the trending document, in either SharePoint, OneDrive or Outlook attachments.

See our documentation for more information on the Trending API. Let us know what you think in the comments below!



Mário Henriques and Jakub Cech on behalf of the Insights team in Microsoft Graph.

SharePoint PnP Webcast – Accessing data in SharePoint from SharePoint Framework solution

$
0
0

In this PnP Webcast, we concentrate on covering what are the different options on accessing SharePoint data from SharePoint Framework solution. There are numerous options for the approach of querying SharePoint APIs from your solution and the right model depends on multiple factors, like on the JavaScript library which you are using. Webcast demonstrates four different options first from the consideration perspective and then showing their usage in practice from a client-side web part. You can find also direct links to used samples and guidance documentation under additional resources section in this blog post.  

Presentation covers following topics:

  • Options to access SharePoint data from SharePoint Framework solution
    • JSOM - SharePoint JavaScript Object Model
    • Raw REST API
    • SPHttpClient class from SharePoint Framework
    • SharePoint PnP JS Core library

Web cast demo (16:55) shows following details

  • Demonstration of the differences between the options
    • JSOM data access demonstrated with a model available as guidance from development documentation
    • Other options demonstrated using CRUD sample solution available from GitHub

Webcast presenters:  Waldek MastykarzVesa Juvonen

Presentation used in this web cast is available from http://docs.com/OfficeDevPnP.

Video at YouTube.

Additional resources

See following resources around the SharePoint Framework. 

What is SharePoint Patterns & Practices (PnP) web cast series?

SharePoint / Office Dev Patterns and PracticesSharePoint Patterns & Practices (PnP) webcast series covers different patterns, practices and topics around development with Office 365 and SharePoint. Majority of the topics are valid for the Office 365 and SharePoint on-premises. Our objective is to release new around 30 minute long web cast each Monday with few slides and a live demo on the covered topic. All web casts are published at the PnP YouTube channel with additional references on the existing materials.

PnP is community driven open source project where Microsoft and external community members are sharing their learning's around implementation practices for Office 365 and SharePoint on-premises (add-in model). Active development and contributions happen in our GitHub repositories under dev branch and each month there will be a master merge (monthly release) with more comprehensive testing and communications. Latest activities and future plans are covered in our monthly community calls which are open for anyone from the community. Download invite from http://aka.ms/SPPnP-Call

This is work done by the community for the community without any actual full time people. It’s been great to find both internal and external people who are willing to assist and share their learning's for the benefit of others. This way we can build on the common knowledge of us all. Currently program is facilitated by Microsoft, but already at this point we have multiple community members as part of the Core team and we are looking to extend the Core team with more community members.

If you have any questions, comments or feedback around PnP program or this blog post, please use the Microsoft Tech Community (SharePoint Developer group).

“Sharing is caring”


Vesa Juvonen, Senior Program Manager, SharePoint, Microsoft - 13th of March 2017

SharePoint Patterns & Practices – March 2017 release

$
0
0

SharePoint / Office 365 Dev Patterns and Practices (PnP) March 2017 release is out with new contributions from community for the community. This post contains all the details related on what was included with the release and what else has been happening in the PnP world during the past month.

 

What is SharePoint Patterns & Practices (PnP)?

SharePoint / Office Dev Patterns and Practices PnP is community driven open source initiative where Microsoft and external community members are sharing their learning's around implementation practices for SharePoint and Office 365. Active development and contributions happen our GitHub projects under 'dev' branch and each month there will be a master merge (monthly release) with more comprehensive testing and communications.

PnP is owned and coordinated by SharePoint engineering, but this is work done by the community for the community. It’s been great to find both internal and external people who are willing to assist and share their learning's for the benefit of others. This way we can build on the common knowledge of us all. Currently program is facilitated by Microsoft, but already at this point we have multiple community members as part of the PnP Core team and we are looking to extend the Core team with more community members.

Notice that since this is open source community program, there’s no SLAs for the support what we provide from program. You can use SharePoint Developer group in the Microsoft Tech Community for providing input and to ask any questions around the existing materials. If you are interested on getting more closely involved, please check the following guidance from our GitHub wiki or a referenced PnP Webcast.

Some key statistics around PnP program from February 2017

  • GitHub repository forks at different repositories 
  • Unique visitors during past 2 weeks' cross PnP repositories - 16098
  • Unique visitors during past 2 weeks in SharePoint organization repositories - 4791
  • Merged pull requests cross PnP repositories (cumulative) - 3645
  • Closed issues and enhancements ideas cross PnP repositories (cumulative) - 1602
  • PnP Core component NuGet package downloads (cumulative) - 79463
  • Unique visitors in PnP MSDN pages during February 2017 - 43929
  • Unique tenants using PnP CSOM Core component during February 2017 - 3998
  • Http requests towards SharePoint Online from PnP CSOM Core Component during January 2017 - 1522948035
  • PnP YouTube channel had 13560 views with 100030 minutes watch time during February 2017

Main resources around PnP program

March 2017 monthly community call

Agenda for the Tuesday 14th of March community call at 9 AM PST / 5 PM CET:

  • Summary on the March 2017 release and other program updates - Vesa Juvonen ~20 min
  • Building custom script editor web part (React-Script-Editor) with SharePoint Framework - Mikael Svenson ~15 min
  • Provisioning options for "modern" SharePoint sites (using new SP REST APIs or Microsoft Graph) - Vesa Juvonen ~15 min
  • Q&A

Monthly community call will get recorded and release to PnP YouTube channel typically within 24 hours after the recording is ended. If you have any questions, comments or feedback, please participate in our discussions in the Microsoft Tech Community under SharePoint developer group. Notice that there's one hour change for the PST time due different schedules around the daylight savings between Europe and US. 

PnP Sites Core, PnP PowerShell and provisioning engine Special Interest Group (SIG)

PnP Sites Core, PowerShell and Provisioning Special Interest Group (SIG) has bi-weekly meetings to cover latest development in the PnP CSOM core component, PnP PowerShell and in the PnP remote provisioning engine. We do touch also generic SharePoint development practices around remote APIs in these calls. These calls have also free Q&A section, if you have any questions around SharePoint development in on-premises or in cloud. Need to get recommendation to your design or having hard time with some APIs? - Drop by, ask a question and we'll help you.

You can download invite for the bi-weekly meeting from following location.

All SIG meetings are being recorded and are available for view from PnP YouTube Channel. Here's the latest recordings from the SIG calls.

  • 8th of March - Quick look on Feb 2017 statistics. Demos on "modern" SP site creation using SharePoint REST APIs and programmatically detect list rendering style in SharePoint Online (classic or modern)
  • 22nd of February - PnP PowerShell documentation in MSDN. Demos on managing modern SP pages programmatically and on automation wizard for PnP Partner Pack deployment (Office 365 and Azure configuration)
  • 8th of February - PnP usage in SPO with conclusions on metrics. Demos on latest changes in PnP PowerShell and on PnP Provisioning Engine refactoring (500 level) 

Notice. Next SIG for PnP Component / PowerShell will be on Wednesday 22nd of February - If you have questions around these topics, please join this call and use the opportunity to ask questions from SP engineering and PnP Core team.

SharePoint Framework (SPFX) and JavaScript Special Interest Group (SIG)

SharePoint Framework and JavaScript Special Interest Group (SIG) has bi-weekly meetings to cover latest changes in the SharePoint Framework side, from engineering perspective and to cover also latest development related on the PnP JS Core library. These calls are designed to have 50%/50% of content and demos and there has been already great community demos on the new SharePoint Framework Client-side web parts. If you're interested on showing your code, just let us know.

All SPFx and JS SIG meetings are recorded, so that you can check the demos and discussions, if you can't make the actual call. You can find the latest recordings from the PnP YouTube Channel. Here's the latest recordings.

  • 2nd of March - Latest on SPFx and PnP JS Core. Demos on TravisCI integration in SP JS Core project and JS Link cusotmization automation for classic sites
  • 16th of February - Latest on SPFx and PnP JS Core. Concentration on what SP engineering has in the backlog around SPFx and what are we planning to delivery in future
  • 2nd of February - Latest on SPFx and PnP JS Core. Demos on Vue.js with SPFx and Movie Carosel implementation with SPFx

Notice. Next SIG for SharePoint Framework and JavaScript development will be on Thursday 16th of February - If you have questions around these topics, please join this call and use the opportunity to ask questions from SP engineering and PnP Core team.

PnP Weekly Webcasts

We started new PnP Weekly Webcast series on October 2015 and have continued releasing new videos since that. All new webcasts are released in PnP YouTube Channel. Old webcasts and other demo videos are also found from the PnP Channel 9 section. Here's the new web casts released after the last monthly release.

PnP repositories in GitHub

There are quite a few different GitHub repositories under the PnP brand since we wanted to ensure that you can easily find and reuse what's relevant for you. We do also combine multiple solutions to one repository, so that you can more easily sync and get latest changes of our released guidance and samples. In general we do recommend you to use the PnP sample search tool at dev.office.com for locating relevant material for you. This should be easier and faster than trying to locate relevant material from GitHub.

During November, majority of the PnP repositories were moved to SharePoint GitHub organization

Here's the current repository structure, including short description for each of them.

On top of the specific PnP repositories, PnP initiative also controls the new repositories under the SharePoint organization. PnP is owned nowadays by SharePoint engineering and we will be using PnP as the channel and forum to facilitate community work.

What's supportability story around PnP material?

Following statements apply cross all of the PnP samples and solutions, including samples, core component(s) and solutions, like PnP Partner Pack.

  • PnP guidance and samples are created by Microsoft & by the Community
  • PnP guidance and samples are maintained by Microsoft & community
  • PnP uses supported and recommended techniques
  • PnP implementations are reviewed and approved by Microsoft engineering
  • PnP is open source initiative by the community – people who work on the initiate for the benefit of others, have their normal day job as well
  • PnP is NOT a product and therefore it’s not supported through Premier Support or other official support channels
  • PnP is supported in similar ways as other open source projects done by Microsoft with support from the community by the community
  • There are numerous partners that utilize PnP within their solutions for customers. Support for this is provided by the Partner. When PnP material is used in deployments, we recommend to be clear with your customer / deployment owner on the support model

Latest changes

SharePoint Framework samples

These are samples which are available from the SharePoint client-side web part sample repository at https://github.com/SharePoint/sp-dev-fx-webparts. We are working on getting samples on the RC0 level and many of them have been already properly updated. You can find supported version always from the readme file of each sample. 

  • New sample react-feature-framework showing how to provision SP assets using feature framework as part of SPFx solution package
  • New sample knockout-sp-pnp-js showing how to use PnP JS Core library in client-side web part
  • New sample handlebarsjs-webpack-loader demonstrating how to setup SPFx to use Handlebars through webpack loader
  • New sample react-script-editor showing how to build custom script editor web part for modern pages
  • New sample react-modern-charts showing how to integrate chart.js to client-side web part
  • New sample angular-yammer showing how to build custom Yammer discussion part which integrates to specific Yammer group
  • New sample js-modern-calendar showing how to build a client-side web part which shows calendar items from SharePoint lists
  • Updated SPFx tutorials to SharePoint Framework GA version
  • Updated SharePoint CRUD sample to use SharePoint Framework GA version
  • Upgrades to numerous other samples for using SPFx GA version

PnP CSOM Core and Provisioning Engine

PnP CSOM Core component is a wrapper on top of native CSOM and REST, which simplifies complex scenarios with remote APIs, one of the example is the PnP Provisioning Engine for remote templates. The first version of the PnP remote provisioning engine was released with the May 2015 release. For the February 2017 release we have continued to add new supported capabilities and made significant improvements from stability perspective for both SharePoint Online and SharePoint on-premises (2013 and 2016). This list contains the main updates that have been added in the March 2017 release:

  • General overall quality and performance improvements for on-premises and online
  • Modern SharePoint pages creation and modification APIs
  • Improved support for group creation using Graph API
  • Added support to get list of OneDrive sites from Tenant.GetSiteCollections() method
  • Improved logic for server side version detection for better handling on different on-premises versions
  • Refactoring of Responsive UI (removed dependency on jQuery, better support for SharePoint 2013, and improved performances)
  • Updated to use latest SPO CSOM NuGet package
  • Unit/integration test improvements
  • Updated base templates for the SPO, 2013 and 2016 - used in delta handling

See also https://testautomation.sharepointpnp.com for day-to-day results and executed tests.

PnP JavaScript Core library v2.0.2

The latest release, 2.0.2, of the Patterns and Practices JavaScript Core Library represents an incremental update serving two main purposes. Firstly to align our releases to other releases across the SharePoint PnP program and secondly to include an update described below when working in SharePoint Framework. Thanks to everyone who has provided valuable feedback and helped the library grow. Exact details on the 2.0.2 can be found from following blog post.

This is similar effort as what PnP initiative previously has done with the PnP CSOM Core Component together with community. 

  • Revert to es5 in lib Folder
  • Optimization for contextinfo calls
  • Support for Ambient Typings
  • Updated to Webpack 2
  • General fixes and updates
  • Improved developer guidance documentation

PnP PowerShell 

PnP PowerShell providers more than two hundred additional PowerShell cmdlets, which can be used to manipulate content in SharePoint Online and in on-premises (SP2013, SP2016). These cmdlet's are addative for SharePoint Online management shell, which concentrate more on the administrative tasks with SharePoint Online. 

Here's the latest changes in the PnP PowerShell

  • Support for setting default column values for people fields added to Set-DefaultColumnValues
  • Support for setting owners, memebers and visibility for existing group using Set-UnifiedGroup
  • Support to use app-only connectivity with Connect-PnPMicrosoftGraph cmdlet
  • Sample on using Connect-PnPMicrosoftGraph cmdlet with app-only permissions
  • Overall quality improvements and bug fixes
  • Moved automatically generated PnP PowerShell cmdlet documentation to MSDN

PnP sample library

Here's updates cross the PnP code sample library by the community on the code and documentation, which is great way to contribute as well.

  • New sample Provisioning.Modern.Console.RESTAPI showing how to use SharePoint REST APIs to provision "modern" SharePoint sites in seconds
  • UpdatedBusiness.StarterIntranet with small bug fixes and improvements
  • Updates to the PnP Partner Pack
    • Introducing PnP Partner Pack installation wizard for easy deployment of PnP Partner Pack
    • Fine tuning and polishing based on community input
    • Fixed issue when searching for Site Collection Admins

PnP Guidance articles

The PnP Guidance repository contains guidance articles which are published at MSDN. Starting from end of May 2016 this process was changed to be fully automated and there's automatic contributors list in the MSDN side showing who have been providing updates to these documents. We are looking forward on your contributions around real life learnings in different areas. Read more details around this open publishing model from following blog post

Here's the new guidance released since past monthly communications.

See MSDN articles from the PnP MSDN section at http://aka.ms/sppnp-msdn.

PnP initiative also controls the articles in the dev.office.com around SharePoint development. Here's new/updated articles around the SharePoint Framework client-side web parts.

PnP Guidance videos

You can find all PnP videos from our YouTube Channel at http://aka.ms/sppnp-vidoes. This location contains already significant amount of detailed training material, demo videos and community call recordings. Since last release communications, we did not release any specific guidance videos on top of weekly web casts.

Notice that ome of the old PnP videos are also in the PnP Channel 9 video blog, which was previously used.

Key contributors for the March 2017 release

Here’s the list of active contributors (in alphabetical order) during past month in PnP repositories. PnP is really about building tooling together with the community for the community, so your contributions are highly valued cross the Office 365 customers, partners and obviously also at Microsoft.

Thank you for your assistance and contributions from the behalf of the community. You are making a difference!

Companies: Here's the companies, which provided support for PnP initiative for this month by allowing their employees working for the benefit of others in the PnP initiative. There were also people who contributed from other companies during last month, but we did not get their logos and approval to show them on time for these communications. If you still want your logo for this month's release, please let us know and share the logo with us. Thx.

CA Technologies
ClearPeople
ContentAndCode
Knowit
piasys
 Puzzlepart
 onebit software
 Rapid Circle
 rencore
 Sogeti
 Stefan Bauer
 Triad
 WorkPoint
 Wortell


Microsoft people:
Here’s the list of Microsoft people who have been closely involved on the PnP work during last month.

Latest traffic statistics

Here's traffic statistics from the PnP, PnP PowerShell, PnP Sites Core (.NET)JavaScript Core component and SP Dev FX Web Parts repositories.

Traffic at PnP repository

Traffic in GitHub repository

Traffic from PnP CSOM Core repository

  Traffic in GitHub repository   

Traffic from PnP PowerShell repository

  Traffic in GitHub repository 

Traffic from PnP JavaScript Core Component repository

  Traffic in GitHub repository 

Traffic from SharePoint Framework Web Parts repository

  Traffic in GitHub repository 

See About Repository Graphs for more details on above statistics.

Next steps

  • March 2017 monthly community call is on 14th of March at 9 AM PST / 5 PM CET for latest release details with demos (notice time change in US due different schedules with daylight savings) - Download invite with detailed schedule for your time zone from http://aka.ms/sppnp-call.

PnP Resources in one picture - numerous links mentioned in this blog post

“Sharing is caring”


Vesa Juvonen, Senior Program Manager, SharePoint, Microsoft - 13th of March 2017

Microsoft Teams Now Generally Available to Office 365 Customers Worldwide

$
0
0

Today, we announced that Microsoft Teams, the chat-based workspace in Office 365, is now generally available in 181 markets and in 19 languages.  Since announcing the Preview in November, more than 50,000 organizations have started using Teams, including Alaska Airlines, Conoco Phillips, Deloitte, Expedia, J.B. Hunt, J. Walter Thompson, Hendrick Motorsports, Trek Bicycle and Three UK.

With 85 million monthly active users, Office 365 empowers individuals, teams and entire organizations with the broadest and deepest toolkit for collaboration on the market.  As the latest addition to that toolkit, Teams provides an exciting new opportunity to reach end users with your apps and services.  Take advantage of the  Microsoft Teams developer platform and get started today.

Microsoft Teams is built to be customizable to meet the unique needs of every team.  This means making it easy to use the tools and resources they depend on right within Teams.  More than 150 integrations are available or coming soon, including bots from Hipmunk, Growbot and ModuleQ; and tabs from Wrike, Smartsheet and Sapho.  We’re also partnering with SAP SuccessFactors and Trello to build new integrations that let users bring important apps and services into Microsoft Teams, truly making it their own hub for teamwork.

Of course, a rich developer platform and capabilities are core to building integrations that teams love and make getting work done easy.  In February, we added ‘bots in channels’ and ‘deep link to items in a tab’ to our developer platform.  Today’s release introduces these new features:

  • Bots can now @mention users. Your bot can call out specific users, or even @mention the entire channel, to call attention to important events generated by your experience. 
  • The new Invoke action type allows you to create a silent call-back from a user to your bot, via a button press or card tap. This allows your bot to receive messages – confirmation or item selection – in a schema you define, allowing much more control in message handling than the current imBack action supports.
  • New conversation update events like teamMemberAdded and channelCreated allow your bot to keep track of the events happening within the teams they have been added to.
  • A brand-new side loading process allows you to easily add both bots and tabs to your team, with a consolidated manifest format that supports bots and tabs in a single package.
  • We’ve also added the ability to pin a tab to your bot conversation view. For example, imagine a task management bot with a tab containing a list of the user’s assigned tasks.

We will continue to evolve developer capabilities and incorporate feedback from our developer community.  We’ll have more to share at our annual developer conference, Microsoft Build, so stay tuned.

Sign up for the Microsoft Office 365 Developer Program for access to the Office 365 developer subscription and Microsoft Teams to start building your integrations.

Richard  Moe, Microsoft Teams Developer Community Manager

SharePoint PnP Webcast – Programmatically creating and updating modern pages in SharePoint Online

$
0
0

In this PnP Webcast, we concentrate on how you programmatically can create modern pages and how to update them. Modern pages are the default page type for both modern SharePoint sites as for classic SharePoint team sites, hence being able to use CSOM to create modern pages and update them by adding or removing client side web parts is something that’s very useful SharePoint extensibility scenarios. You can find also direct links to used samples and guidance documentation under additional resources section in this blog post. 

Presentation covers following topics:

  • How to programtically create a modern page in SharePoint site
  • Internal structure of a modern page
  • PnP Sites Core component support for creating and updating modern pages

Webcast demo (10:58) shows following details

  • PnP Sites Core support for modern pages
  • Creating an empty modern page
  • Adding a text control and custom client-side web part on a modern page
  • Adding an OOB client-side Image web part on a modern page
  • Deleting a modern page
  • Removing a control from a modern page

Webcast presenters: Bert JansenVesa Juvonen 

Presentation used in this web cast is available from http://docs.com/OfficeDevPnP.

Demo used in the webcast is available from SharePoint PnP GitHub repository.

Video at YouTube.

Additional resources

See following resources around the covered topics.

What is SharePoint / Office Dev Patterns & Practices (PnP) web cast series?

SharePoint / Office Dev Patterns and PracticesSharePoint / Office Dev Patterns & Practices (PnP) webcast series covers different patterns, practices and topics around development with Office 365 and SharePoint. Majority of the topics are valid for the Office 365 and SharePoint on-premises. Our objective is to release new around 30 minute long web cast each Monday with few slides and a live demo on the covered topic. All web casts are published at the PnP YouTube channel with additional references on the existing materials.

PnP is community driven open source project where Microsoft and external community members are sharing their learning's around implementation practices for Office 365 and SharePoint on-premises (add-in model). Active development and contributions happen in our GitHub repositories under dev branch and each month there will be a master merge (monthly release) with more comprehensive testing and communications. Latest activities and future plans are covered in our monthly community calls which are open for anyone from the community. Download invite from http://aka.ms/SPPnP-Call

This is work done by the community for the community without any actual full time people. It’s been great to find both internal and external people who are willing to assist and share their learning's for the benefit of others. This way we can build on the common knowledge of us all. Currently program is facilitated by Microsoft, but already at this point we have multiple community members as part of the Core team and we are looking to extend the Core team with more community members.

If you have any questions, comments or feedback around PnP program or this blog post, please use the Microsoft Tech Community (SharePoint Developer group).

“Sharing is caring”


Vesa Juvonen, Senior Program Manager, SharePoint, Microsoft - 20th of March 2017


Office Developer Program. NEW value, FREE perks!

$
0
0

We are excited to share that the Microsoft Office Developer Program has added NEW value, NEW training opportunities and FREE perks for developers who build solutions that extend Office and the Office 365 experience across desktop, web and mobile platform.  

As a developer, you can now participate in virtual and in-person training events led by both Microsoft Office engineers and Microsoft Most Valued Professional (MVPs). You will have the opportunity to not only learn about new technologies, but also get 1:1 guidance on your existing development to achieve higher success.

Join the Microsoft Office Developer Program today to take advantage of the following developer focused activities and participate in our Office developer community.

  • "Office Hours" to meet with Microsoft engineering teams in your region to discuss your Office development projects
  • "Office development community events" to hear from Microsoft MVPs on new development technologies about Office, SharePoint, Microsoft Graph, Microsoft Teams, Office and Outlook Add-ins and more. Meet in person with other Office developers in your region.
  • Chances to win tickets to Microsoft conferences and industry events (5 developers have won tickets to Microsoft Build 2017)
  • One year, free Office 365 developer subscription
  • Access to online trainings (coming in May, 2017)
  • Previews of and insights into Office Extensibility announcements (coming in May, 2017)

Join Today!

Yammer Partner Q&A: tyGraph’s Director of Product, Dean Swann

$
0
0

Since 2014, tyGraph for Yammer has been a social analytics app in the Yammer App Directory. Built upon input from Yammer community managers and IT collaboration experts, this analytics app uses both the Yammer REST API and the Yammer Data Export API.

Since the app’s launch, tyGraph has been helping companies of all sizes. Dean Swann, Director of  Product, shared one of his favorite success stories about a company that used Yammer for a recognition campaign and then used tyGraph to show the impact. “Based on the evidence-based results, the company made a huge donation to a hunger relief organization.”

Learn from this Yammer Partner Q&A why and how this app was developed!

SharePoint PnP Webcast – What is SharePoint PnP JavaScript Core library?

$
0
0

In this PnP Webcast, we concentrate on covering PnP JavaScript Core library (sp-pnp-js). Key concentration is around the scenarios and value of what this library actually provides. PnP JS Core library can be used in SharePoint Online or in SharePoint on-premises to simplify access to SharePoint data in JavaScript development. It can also be used in server side JavaScript implementation with Node.js. Library provides easy to use, fluent API for the typical information in SharePoint. It simplifies operations towards SharePoint by hiding any additional complexity with REST API operations. You can us it with SharePoint Framework, SharePoint add-ins or with Script Editor Web Part based implementations.

Presentation covers following topics:

  • History of the sp-pnp-js library
  • Current state of the library
  • Relantionship with SharePoint Framework
  • Future golas for the library
  • Optionbs to access SharePoint data from SharePoint Framework - comparing sp-pnp-code to other options

Webcast demo (20:59) shows following details

  • Eplanation of the demo setup
  • Adding items in a batch to a list
  • Debugging information provided by pnp-js-core library
  • Using pnp-js-core in script editor web part
  • Using pnp-js-core project for debugging and testing the JS library

Webcast presenters: Patrick RodgersVesa Juvonen 

Presentation used in this web cast is available from http://docs.com/OfficeDevPnP.

Demo used in the library is available from the PnP JS Core GtiHub repository.

Video at YouTube.

Additional resources

See following resources around the covered topics.

What is SharePoint / Office Dev Patterns & Practices (PnP) web cast series?

SharePoint / Office Dev Patterns and PracticesSharePoint / Office Dev Patterns & Practices (PnP) webcast series covers different patterns, practices and topics around development with Office 365 and SharePoint. Majority of the topics are valid for the Office 365 and SharePoint on-premises. Our objective is to release new around 30 minute long web cast each Monday with few slides and a live demo on the covered topic. All web casts are published at the PnP YouTube channel with additional references on the existing materials.

PnP is community driven open source project where Microsoft and external community members are sharing their learning's around implementation practices for Office 365 and SharePoint on-premises (add-in model). Active development and contributions happen in our GitHub repositories under dev branch and each month there will be a master merge (monthly release) with more comprehensive testing and communications. Latest activities and future plans are covered in our monthly community calls which are open for anyone from the community. Download invite from http://aka.ms/SPPnP-Call

This is work done by the community for the community without any actual full time people. It’s been great to find both internal and external people who are willing to assist and share their learning's for the benefit of others. This way we can build on the common knowledge of us all. Currently program is facilitated by Microsoft, but already at this point we have multiple community members as part of the Core team and we are looking to extend the Core team with more community members.

If you have any questions, comments or feedback around PnP program or this blog post, please use the Microsoft Tech Community (SharePoint Developer group).

“Sharing is caring”


Vesa Juvonen, Senior Program Manager, SharePoint, Microsoft - 27th of March 2017

New SharePoint CSOM version released for SharePoint Online - March 2017

$
0
0

We are happy to announce availability of new SharePoint Client Side Object Model (CSOM) version targeted for the Office 365 or more specifically for SharePoint and Project Online. This release again contains few updates on the existing SharePoint CSOM assemblies and some maintenance changes. Notice that there are quite a significant changes in the CDN related operations in Tenant object related on the upcoming General Availability of Office 365 CDN capability. 

You can find the latest CSOM package for SharePoint Online, including the Project Online CSOM assembly, from the NuGet gallery with an id of 'Microsoft.SharePointOnline.CSOM'. We are also working on updating the redistributable package at some point, but you can already right now start using some of these new capabilities in your solutions. We do recommend you to use the NuGet Package to gain access on latest version, rather than downloading the SDK to your machine.

Version of the newly released CSOM package is 16.1.6323.1200. Previous versions of the NuGet have not been removed, so that your existing solutions will continue working without issues and you can decide when the new version is taken into use. Notice that even though the Nuget version is increased to 16.1.6323.1200, actual assembly version of the released assemblies is 16.1.0.0. You can also check the version of the assemblies from the File Version attribute, which aligns with the NuGet version.

NuGet Gallery open in VS2017 showing latest CSOM version package

SharePoint Online Management Shell will be also updated during upcoming days to match with this CSOM release. MSDN reference API documentation was updated during March and it will be again refreshed to match this latest release within following days. 

Notice that since this NuGet package is targeted to SharePoint Online, you cannot use it directly in on-premises environments (SharePoint 2013 or 2016). This is because of the server side dependencies of the APIs. CSOM versioning model and dependency to your target environment is clarified in following blog post - Using correct Client Side Object Model (CSOM) version for SharePoint customizations. We have released separate NuGet packages for on-premises. See following blog post for additional details - SharePoint CSOM versions for on-premises released as NuGet packages.

New properties and methods cross assemblies

Here's a raw list of all the changes in the classes, properties and methods within this package. 

Microsoft.SharePoint.Client

Following properties, classes and methods have been added.

  • public property Microsoft.SharePoint.Client.CustomActionElement.ClientSideComponentId
  • public property Microsoft.SharePoint.Client.CustomActionElement.ClientSideComponentProperties

  • public property Microsoft.SharePoint.Client.CustomerKeyInfo.PrimaryKeyVault
  • public property Microsoft.SharePoint.Client.CustomerKeyInfo.SecondaryKeyVault
  • public class Microsoft.SharePoint.Client.CustomerKeyVaultInfo

  • public property Microsoft.SharePoint.Client.Field.ClientSideComponentProperties

  • public method Microsoft.SharePoint.Client.File.CopyToUsingPath
  • public method Microsoft.SharePoint.Client.Folder.AddSubFolderUsingPath

  • public enum Microsoft.SharePoint.Client.FormRenderMode
  • public method Microsoft.SharePoint.Client.List.CreateDocumentFromTemplateUsingPath
  • public property Microsoft.SharePoint.Client.List.ImagePath
  • public property Microsoft.SharePoint.Client.List.PageRenderType

  • public property Microsoft.SharePoint.Client.ListItem.ComplianceInfo
  • public class Microsoft.SharePoint.Client.ListItemComplianceInfo

  • public enum Microsoft.SharePoint.Client.ListPageRenderType

  • public method Microsoft.SharePoint.Client.Site.OnboardSiteForBringYourOwnKey

  • public property Microsoft.SharePoint.Client.UserCustomAction.ClientSideComponentId
  • public property Microsoft.SharePoint.Client.UserCustomAction.ClientSideComponentProperties

  • public method Microsoft.SharePoint.Client.Sharing.DocumentSharingManager.RemoveItemsFromSharedWithMeViewByPath

Following items have been REMOVED from this assembly

  • public property Microsoft.SharePoint.Client.CustomerKeyInfo.PrimaryKeyVaultUri
  • public property Microsoft.SharePoint.Client.CustomerKeyInfo.SecondaryKeyVaultUri

Microsoft.Online.SharePoint.Client.Tenant

Following properties, classes and methods have been added.

  • public enum Microsoft.Online.SharePoint.TenantAdministration.OdbMigrationStatus
  • public property Microsoft.Online.SharePoint.TenantAdministration.SiteProperties.SiteDefinedSharingCapability
  • public property Microsoft.Online.SharePoint.TenantAdministration.SPOTenantCdnPolicy.PolicyType
  • public property Microsoft.Online.SharePoint.TenantAdministration.SPOTenantCdnPolicy.PolicyValue
  • public enum Microsoft.Online.SharePoint.TenantAdministration.SPOTenantCdnPolicyType

  • public method Microsoft.Online.SharePoint.TenantAdministration.Tenant.CreateTenantCdnDefaultOrigins
  • public property Microsoft.Online.SharePoint.TenantAdministration.Tenant.DisallowInfectedFileDownload
  • public method Microsoft.Online.SharePoint.TenantAdministration.Tenant.GetIdleSessionSignOutForUnmanagedDevices
  • public method Microsoft.Online.SharePoint.TenantAdministration.Tenant.GetTenantCdnPolicies

  • public method Microsoft.Online.SharePoint.TenantAdministration.Tenant.GetUserMigrationProperties
  • public method Microsoft.Online.SharePoint.TenantAdministration.Tenant.GetUserMigrationPropertiesByFilter
  • public method Microsoft.Online.SharePoint.TenantAdministration.Tenant.SetIdleSessionSignOutForUnmanagedDevices
  • public method Microsoft.Online.SharePoint.TenantAdministration.Tenant.SetTenantCdnPolicy

  • public property Microsoft.Online.SharePoint.TenantAdministration.Tenant.SpecialCharactersStateInFileFolderNames

  • public class Microsoft.Online.SharePoint.TenantAdministration.UserMigrationProperties
  • public class Microsoft.Online.SharePoint.TenantAdministration.UserMigrationPropertiesEnumerable
  • public class Microsoft.Online.SharePoint.TenantAdministration.UserMigrationPropertiesEnumerableFilter
  • public class Microsoft.Online.SharePoint.TenantAdministration.UserMigrationPropertiesEnumerablePropertyNames
  • public class Microsoft.Online.SharePoint.TenantAdministration.UserMigrationPropertiesPropertyNames

  • public method Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.CreateTenantCdnDefaultOrigins
  • public method Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.GetIdleSessionSignOutForUnmanagedDevices
  • public method Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.GetTenantCdnPolicies
  • public method Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.SetIdleSessionSignOutForUnmanagedDevices
  • public method Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.SetTenantCdnPolicy
  • public enum Microsoft.Online.SharePoint.TenantManagement.SpecialCharactersState

Following items have been REMOVED from this assembly

  • public method Microsoft.Online.SharePoint.TenantAdministration.Tenant.GetTenantCdnAllowedFileTypes
  • public method Microsoft.Online.SharePoint.TenantAdministration.Tenant.GetTenantCdnRestrictedSiteClassifications
  • public method Microsoft.Online.SharePoint.TenantAdministration.Tenant.SetTenantCdnAllowedFileTypes
  • public method Microsoft.Online.SharePoint.TenantAdministration.Tenant.SetTenantCdnRestrictedSiteClassifications

  • public method Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.GetTenantCdnAllowedFileTypes
  • public method Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.GetTenantCdnRestrictedSiteClassifications
  • public method Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.SetTenantCdnAllowedFileTypes
  • public method Microsoft.Online.SharePoint.TenantManagement.Office365Tenant.SetTenantCdnRestrictedSiteClassifications

Microsoft.Office.Client.Policy

Following properties, classes and methods have been added.

  • public property Microsoft.SharePoint.Client.CompliancePolicy.ComplianceTag.IsEventTag
  • public class Microsoft.SharePoint.Client.CompliancePolicy.SPPolicyEvent

  • public method Microsoft.SharePoint.Client.CompliancePolicy.SPPolicyStore.CreatePolicyEvent
  • public method Microsoft.SharePoint.Client.CompliancePolicy.SPPolicyStore.GetPolicyEvent
  • public method Microsoft.SharePoint.Client.CompliancePolicy.SPPolicyStore.GetPolicyEventList
  • public method Microsoft.SharePoint.Client.CompliancePolicy.SPPolicyStore.GetPolicyEvents
  • public method Microsoft.SharePoint.Client.CompliancePolicy.SPPolicyStore.UpdatePolicyEvent

“Sharing is caring”


Vesa Juvonen, Senior Program Manager, OneDrive-SharePoint Engineering, Microsoft - 31st of March 2017

SharePoint PnP Webcast – SharePoint Framework and organizational considerations

$
0
0

In this PnP Webcast, we concentrate on the governance and organizational considerations around SharePoint Framework solution development and deployment. This is more a discussion based webcast around the different aspects from customer, architect and developer perspective. What does the SharePoint Framework means for governance perspective and also what are the key topics consider from operational and development perspective?

Presentation covers following topics:

  • Organizational considerations
    • New toolchain
    • New skillset
    • Client-side library usage
    • Hosting location
    • Governance plan
  • Considerations for customers
    • Standardize client-side libraries
    • External scripts policy
    • Hosting location
    • Explicit agreement with ISVs
  • Considerations for developers / architects
    • Development practices
    • Testing processes
    • Deployment to production
    • Updates and support

Webcast presenters:  Waldek MastykarzVesa Juvonen

Presentation used in this web cast is available from http://docs.com/OfficeDevPnP.

Video at YouTube.

Additional resources

See following resources around the SharePoint Framework. 

What is SharePoint Patterns & Practices (PnP) web cast series?

SharePoint / Office Dev Patterns and PracticesSharePoint Patterns & Practices (PnP) webcast series covers different patterns, practices and topics around development with Office 365 and SharePoint. Majority of the topics are valid for the Office 365 and SharePoint on-premises. Our objective is to release new around 30 minute long web cast each Monday with few slides and a live demo on the covered topic. All web casts are published at the PnP YouTube channel with additional references on the existing materials.

PnP is community driven open source project where Microsoft and external community members are sharing their learning's around implementation practices for Office 365 and SharePoint on-premises (add-in model). Active development and contributions happen in our GitHub repositories under dev branch and each month there will be a master merge (monthly release) with more comprehensive testing and communications. Latest activities and future plans are covered in our monthly community calls which are open for anyone from the community. Download invite from http://aka.ms/SPPnP-Call

This is work done by the community for the community without any actual full time people. It’s been great to find both internal and external people who are willing to assist and share their learning's for the benefit of others. This way we can build on the common knowledge of us all. Currently program is facilitated by Microsoft, but already at this point we have multiple community members as part of the Core team and we are looking to extend the Core team with more community members.

If you have any questions, comments or feedback around PnP program or this blog post, please use the Microsoft Tech Community (SharePoint Developer group).

“Sharing is caring”


Vesa Juvonen, Senior Program Manager, SharePoint, Microsoft - 3rd of April 2017

Viewing all 429 articles
Browse latest View live