Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Monthly Update 2015 August
Clone this wiki locally
The Office 365 Developer Patterns and Practices project was announced at the end of July 2014 and there has been tremendous interest for the project since, which we truly appreciate! We have gone really far with the program in one year together with the community. The PnP program is an open source community program for community to contribute their learning between each other. We have received lots of valuable contributions from the community and input on the overall planning. This wiki page is collecting the highlights from the past month.
August 2015 master merge or release was enourmous also due the fact that we skipped July release due vacation period for key resources in the PnP core team. There's huge amount of new content around around code, guidance, presentations and videos.
We will also cover the details of the latest release during our August community call on Tuesday August 11th. If you are interested on seeing some of the new samples in action and hear about the future then feel free to join that call.
August 2015 monthly community call
Agenda for the 11th of August (8 AM PST) community call:
- Summary on the August release and other updates in program - Vesa Juvonen ~30 min
- Including PnP usage survey results from June community survey
- New provisioning solution using PnP engine - Erwin van Hunen ~15 min
- Additional community demo (TBD) ~15 min
If you have any questions, comments or feedback, please participate in our discussions in the Office 365 Patterns and Practices Yammer group at http://aka.ms/OfficeDevPnPYammer. We already have more than 3000 members in this group with lively discussions on different add-in model related topics. This is the most active developer group in the Office 365 Technical network and we are definitely proud and thankful of this.
Splitting of PnP repo's in GitHub
We have started now re-factoring of the PnP GitHub repo. Since repo has grown to be too big for easy management, it will be now split to multiple sub repos. Main PnP repo will still remain as the main location for the SharePoint Add-in/App samples and solutions, but other material is redistributed to smaller sub repos. Here's the detailed repository structure around PnP topics.
This will impact partly on the existing forks, but PnP repo still exists, so your fork is not orphaned. If you however want to contribute or consume material around more specific topics, you should fork the other repositories as needed. See guidance on getting started with PnP repositories from the PnP wiki with step-by-step instructions on how to fork and optionally contribute back for others in the community.
- PnP - Main repository in future as well, but will be smaller
- PnP-Guidance` - Guidance, presentations and articles which are partly sync'd to MSDN
- PnP-Sites-Core` - Office Dev PnP Core component
- PnP-PowerShell - Office Dev PnP PowerShell Cmdlets
- PnP-Office-Addins - Office Add-in samples and models
- PnP-Office365-API - Office 365 and Azure AD related add-ins
- PnP-Partner-Pack - Packaged guidance with detailed instructions on setting things up in Office 365 and in Azure. This initiative will be started during August and target date for final delivery is on mid-Oct.
Notice that this change will be visible in the main branch after September release, but all development should be already done in dev branch of the right repository where the content is located. PnP Core team will guide the PRs to new locations as needed. Repo's are already visible, but some samples are still in progress of moving over.
The first version of the PnP remote provisioning engine was released with the April release. For the August release we have continued to add new supported capabilities and made improvements from stability perspective for both Office 365 and on-premises. This list contains the main updates that have been added in the August release:
- Delta handling support for template provisioning where possible
- For example for fields, content types, lists, views, custom actions
- Overall quality and performance improvements
- Significant improvements on the on-premises support
- Support to provision URL Field into the DataRow of a ListInstance
- JSLink provisioning support for views
Notice. There is a small breaking change introduced for the engine related for the CustomAction object where data type of CommandUIExtension has been changed from string to XElement. This will require some changes on your code only if you specifically manipulate CustomAction objects in your code by setting string value to this property. IF this is the case, you can just parse the string to XElement, so change is minimal.
customAction.CommandUIExtension = XElement.Parse(xmlInStringFormat);
In general engine is being considered now as pretty stable. Next improvements are on the capability side to enable for example regional settings, language settings, auditing settings support natively in the engine.
PnP Core: Lots of re-factoring done to improve code quality and completeness:
- provisioning engine updates (see above)
- Azure AD Authentication support
- Build and test automation improvements
- Both PnP Core Nuget packages (cloud and on-premises) have been also updated accordingly.
- New component Core.JQuery contains a set of jQuery extensions to enable extending SharePoint functionality to provider hosted apps using the familiar jQuery syntax.
- New solution Core.ConnectedAngularAppsV2 shows AngularJS and SignalR way to perform connected web parts with enhanced implementation.
- New sample BusinessApps.RemoteCalendarAccess shows a method of sharing a SharePoint site calendar with any calendar client via iCalendar. The sample reads events from a SharePoint calendar and converts those events into a standard iCalendar format utilizing SharePoint CSOM, Azure Active Directory Graph Client Library, SQL Azure via Entity Framework, and Azure Web Apps.
- New sample AzureAD.RedisCacheUserProfile shows how to use windows Azure Active directory to get user profile information and how to use Azure REDIS Cache to make performant Add-Ins.
- New sample AzureAD.WebAPI.SPOnline shows how to call a Web API secured by Azure AD and the API calls SharePoint Online on behalf the logged in user. This scenario is useful for situations where you need a protected API Proxy to interact with SharePoint Online using User's credentials.
- Updated solution Core.TimerJobs.Samples with new sample code for the PnP timer job framework usage with real business scenarios.
- Updated sample Core.MMSSync to support CustomSortOrder property replication cross taxonomy stores.
- Updated solution Provisioning.UX.App with new UI capabilities and provisioning fixes.
- Updated all Scenario code to use updated SharePoint CSOM Nuget package
- Updated PowerShell.Commands with new CommandLets and with few fixes
- Performance and overall quality improvements
- Help and guidance improvements
- Set/Get-SPOSearchConfiguration search configuration configuration
- Remove-SPOWeb for removing sub webs from a web
- Add-SPOMasterPage for easy deployment of master page to a site
- ADFS authentication support for Connect-SPOnline
- Adal authentication support for Connect-SPOnline
PnP Guidance articles
The PnP Guidance repository has been setup for working on articles. Part of these articles are already available on MSDN and more will follow. Everyone can contribute or update these articles via updating them in GitHub and the changes will flow back to MSDN once the synchronization setup has been completed.
Right now we are working on specific App Model Recipes (>30 articles overall) in this area together with Todd Baginski where Todd is collecting the key guidance from the Core team and community for collecting the learnings and recommendations with specific topics. You are more than welcome to also contribute on this work by providing input and feedback.
In the this release the following new articles have been added or we have applied changes since last master merge:
- SharePoint Add-in Recipe - Custom Actions
- SharePoint Add-in Recipe - Custom field type
- SharePoint Add-in Recipe - Delegate controls
- SharePoint Add-in Recipe - Document ID Provider
- SharePoint Add-in Recipe - Elevated privileges
- SharePoint Add-in Recipe - Event Receivers & List Event Receivers
- SharePoint Add-in Recipe - Feature Stapling
- SharePoint Add-in Recipe - Information Management Policy
- SharePoint Add-in model recipe - List definition / list template
- SharePoint Add-in model recipe - List instance
- SharePoint Add-in Recipe - Localization
- SharePoint Add-in Recipe - Master Pages
- SharePoint Add-in Recipe - MMS manipulation
- SharePoint Add-in model recipe - Modules
- SharePoint Add-in Recipe - OneDrive for Business customization
- SharePoint Add-in Recipe - Performance Considerations
- SharePoint Add-in Recipe - Remote Timer Jobs
- SharePoint Add-in Recipe - Search API Usage
- SharePoint Add-in Recipe - Search API Usage
- SharePoint Add-in Recipe - User Profile Manipulation
- SharePoint Add-in Recipe - Variations
- SharePoint Add-in Recipe - User controls and Web controls
- SharePoint Add-in Recipe - Web Part
- SharePoint Add-in Recipe - Workflows, Actions (Activities), Events, and Forms
- SharePoint Add-in Recipe - Yammer Integration
PnP Guidance videos
After the last release, we have published numerous new videos around the PnP topics, incuding recording of the free PnP transformation training presentations. This training contains videos, presentations, demos and labs for anyone to reuse as they wish.
- Introduction to PnP Transformation Process
- PnP Add-In Transformation Training module 1: Introduction
- PnP Add-In Transformation Training Module 2: Managing site settings using add-in model
- PnP Add-In Transformation Training module 3: Branding with add-in model
- PnP Add-In Transformation Training module 5: Using Remote Event Receivers and Remote Timer Jobs
- PnP Add-In Transformation Training module 6: Site provisioning with add-in model
- PnP Add-In Transformation Training module 8: Using Enterprise Content Management Capabilities with add-in model
- PnP Add-In Transformation Training Module 9: Using Search Capabilities with add-in model
- PnP Add-in Transformation Training Module 10: Transformation guidance from farm solutions to add-in model
- Demo - How to customize a Search Center with SharePoint add-ins
- Demo - How to build SharePoint add-ins that leverage search
- Demo - How to perform personalized search queries with CSOM
- Demo - How to Export and Import Search Configurations with CSOM
- Demo - Asynchronous remote provisioning solution for self service site collection creation
- Demo - Using remote provisioning pattern for sub site creation
- Demo - Using Office 365 themes to provide branding elements in Office 365
- Demo - Applying and using custom SharePoint themes with add-in model
- Demo - Using alternate CSS for providing custom branding in SharePoint site
- Demo - How to use Azure Service Bus to debug your remote event receivers
- Demo - How to use remote event receivers for your SharePoint add-ins
- Demo - You can still have timer jobs using the add-in model
- Demo - How to use client side caching to optimize the performance of your add-ins
- Demo - How to modify wiki pages using the add-in model
Notice that PnP transformation training videos are unfortuately still missing 2 modules, which will be included in the package during upcoming weeks.
Key contributors for the August 2015 release
Here’s the list of active contributors (in alphabetical order) during the month August in PnP repositories. It's great to see familiar names and also new people joining on the communnity effort and asisting others. We are looking forward to continue working with such a talent and hope to get more additional people involved on this joint effort to help the community in the transition towards Office 365 and SharePoint add-in model/app model techniques.
Thank you for your assistance and contributions from the behalf of the community. You are making a difference!
- afsandeberg - GitHub alias
- André Lage (Processlynx AG)
- Ben McClaren
- Erwin van Hunen (Knowit AB) - @erwinvanhunen
- Etienne Bailly | MCT - @etienne_bailly
- Danny Jessee - @dannyjessee
- GeiloStylo - GitHub alias
- Ivan Vagunin (Knowit AB) - @ivagunin
- Ken Domen (Nike) - @kendomen
- Lester Sconyers - @lestersconyers
- Louis-Charles Gagnon (LS2 Investments Inc.)
- Luis Valencia - @levalencia
- Matthew Chestnut
- Michael Schau (WorkPoint A/S)
- Nige Price - @Nigel_Price
- Nanddeep Nachan - @NanddeepNachan
- Paolo Pialorsi (PiaSys.com) - @PaoloPia
- Radi Atanassov (OneBit Software) - @RadiAtanassov
- Robin Engström (Knowit AB) - @robinestrm
- Rodrigo Romano - rodrigoromano.net
- Roman Rozinov - @romanrozinov
- Stijn Neirinckx
- Tobias Zimmergren (Tozit AB) - @zimmergren
- Todd Baginski (Canviz LLC) @toddbaginski
- Torsten Schuster
- Vardhaman Deshpande - @vrdmn
- Vincent Wesker - @VWesker
- ZeBobo5 - GitHub alias
Here’s the list of Microsoft people who have been closely involved on the PnP work during last month.
- Antons Mislevics (Microsoft)
- Bert Jansen (Microsoft) - @O365Bert
- Brian Michely (Microsoft) - @brianmichely
- Dan Budimir (Microsoft)
- Eric Xu (Microsoft)
- Frank Marasco (Microsoft) - @frank_marasco
- Jeremy Thake (Microsoft) - @jthake
- Jonathan Huss (Microsoft) - jonathanhuss.com
- Kiki Shuxteau (Microsoft)
- Laura Graham (Microsoft)
- Patrick Rodgers (Microsoft)
- Reeza Ali (Microsoft)
- Ron Tielke (Microsoft)
- Sami Nieminen (Microsoft)
- Steven Follis (Microsoft) - @steven_follis
- Steve Walker (Microsoft) - @sharepointing
- Vesa Juvonen (Microsoft) - @vesajuvonen
Here's some statistics from the PnP repository. It's great to see the growing contribution numbers and for example how our punch card looks like, since it proofs that this is truly a global effort with contributions 24/7.
See About Repository Graphs for more details on above statistics.
- August monthly community call is on 11th of August for August release details
- Following master merge will happen on 4th of September and September community call is on 8th of September