Modern UI – Part II


Modern document libraries and lists were released in the summer of 2016 for SharePoint Online with the goal of creating better end-user experiences, including faster, better, and intuitive responses in a user-friendly environment.  Not only is it highly recommended that one transitions to the “modern” list and library but customizations be converted to the “modern” experience as there are many benefits to the “modern” experience.  Some of these benefits include the following:

updated user interface: “modern” document libraries are similar to OneDrive, offering intuitive responses such as creating new folders and uploading files in the browser;

–  pinned documents:  pin documents so they are above the fold in any screen view for quick and easy access

copy and move:  unlike old copy and move commands, the “modern” experience is intuitive and allows one to create new folders on they fly as the architecture of your information is displayed

decrease number of copies of document: “modern” document libraries are intelligent.  They remember files that you have used in SharePoint which allows you to import files from other libraries as links rather than data files, thereby, decreasing the amount of storage space and duplicity numerous of files. 

organizing files: “modern” document libraries provide the ability to group files directly on the main page without having to go to a separate admin screen.  In addition to this, there is the capability to click and drag columns to change their size plus sorting, filtering, and grouping can be done from any column header

–  mobile browsers:  whether accessing SharePoint Online with a keyboard, mouse, screen reader or touch, all mobile browsers will now have the same features as a desktop

–  editing metadata:  it is no longer necessary to click through multiple screens to apply an update as metadata can now be edited from the main view on the information panel

–   integration:  by integrating Office Online with SharePoint Online, SharePoint Online now provides a complete document preview at the top of the information panel and is completely navigable.  The information panel displays pertinent metadata including history of recent activities, recipients of the file for sharing and updates to the file

It is important to note that the “classic” experience will not be deprecated but will co-exist with the “modern” experience. 

There is an option available to the Admin to enable SharePoint to automatically detect when certain features are being used.  This auto-detect automatically returns the “modern” experience back to the “classic” experience when certain features are used. 

These features that are compatible to auto-detect include:

1. Navigation Features:  all libraries on sites that have metadata navigation and filtering features enables are shown in “classic” experience;

2.  Column Types:  geolocation columns, external data columns, and publishing columns (including publishing HTML, Publishing Image, Publishing Hyperlink); and

3.  Customizations:  JSLink code on fields, and CustomActions that include ScriptBlock or ScriptSrc properties. 

Auto-detect can be enabled, assuming the “modern” experience was not disabled under the site, web, or list levels, by following these steps:

1.  Choose Admin Centres;

2.  Choose SharePoint;

3.  Choose Settings;

4.  Scroll down to SharePoint Lists and Libraries experience; and

5.  Choose New Experience (auto-detect) (the black should appear in the circle next to this). 

Auto-detect is now enabled. 

Customization Options

Unlike the “classic” lists and libraries, the “modern” list and libraries supports fewer customization options; however, the SharePoint Product Group is continually working towards supporting more options in the future.  In the meantime, supported capabilities include Subset of User Custom Actions, Custom Branding, and PowerApps and Flow Integration. 

Customizations that are not currently supported for “modern” lists and libraries include: JSLink based field and view customizations, custom CSS via AlternateCSSUrl web property, custom JavaScript embedded via User Custom Actions, Custom master pages, customization via InfoPath, Minimal Download Strategy (MDS), and SharePoint Server Publishing.  For embedded Custom JavaScript, there will be controlled methods of embedding JavaScript on the pages through SharePoint Framework, and not only client-side web parts. 


User Custom Actions

Not all user custom actions supported by “classic” mode are supported in “modern” experience mode.  The following is a list of supported custom action locations and how they are surfaced in the “modern” UI:

1. User Custom Action Location:  EditControlBlock will be visible and show up as custom menu items; 

2.  User Custom Action Location:  CommandUI.Ribbon will be visible and show up as toolbar items; and

3.  User Custom Action LocationScriptlink and all other locations will not be visible and will not surface in the “modern” experience

Adding custom links to the context menu can be achieved by using the EditControlBlock as the location for your custom action.  Likewise, to extend the toolbar in the “modern” list and library experiences can be achieved by adding a user custom action targeting the CommandUI.Ribbon location. 

User Custom Action Limitations

It is important to keep in mind the limiting parameters when developing user custom actions. These limitations include the following:

1. Control of User Custom Actions:  one does not have complete control of the order in which the user custom actions show up.  The current API does not account for the sequence attributes;

2. Usage of JavaScript:  user custom actions will not show up if JavaScript is embedded in the command actions as it is not supported;

3. ScriptLink and ScriptBlock:  as ScriptLink is not supported, any user custom action relying on ScriptLink will not run in the “modern” experience; and

4.  Image Maps:  Image maps is not supported but you can specify individual images that are only 16 x 16.

Custom Branding

If your site employs a custom theme, then this custom theme will be respected in the “modern” list and library experience. 



Configuring End User Experience

The “modern” or “classic” list and library experience can be controlled at multiple levels:

1.  Tenant Level Configuration:  Highly suggested for disabling the “modern” experience completely.  In your tenant admin center, go to settings, select “classic” experience;

2.  Site/Web Level Configuration:  For preventing a web or site collection from using the “modern” experience, one can enable/disable features; and

3.  List/Library Configuration:  Control can be found at the library level by going to list settings, advanced settings, and then choose how you want to change the behavior.  Optionally, it can also be done using CSOM. 

As the SharePoint Team continues to add more supported features, it is highly recommended that one transitions to the “modern” list and library to take full advantage of the user-friendly environment which results in a satisfying end-user experience. 



The Modern Experience – Part I


For better end-user usability and additional customization options, SharePoint Online as begun rolling out “modern” experiences.  The modern experiences currently supported include Modern Team Sites, Modern List and Library Experiences, and Modern Site Pages.  Each of these can be controlled at the tenant or site levels. 

Adopting Modern Experiences

There are several recommended steps for preparing and deploying modern experiences, especially for those who have existing customizations that are business critical for your deployment.  The adoption process recommended is as follows:

1. Readiness:  It is important to thoroughly understand and comprehend the “modern” experiences, their features and, especially, which features are not currently available.

2.  Assess:  Assess your current customizations and determine which customizations and features can work within the “modern” experience and those that cannot.  Those that cannot work within the “modern” experience should be updated or be retained in the “classic” format.  For those that can work within the “modern” experience, determine to what extent they will work. 

3Solution Planning:  Analyze, develop and finalize the plan on the requirements needed to prepare your custom solutions and sites to be used with “modern” experiences. 

4Develop and Test:  Develop, apply and test the changes required for your customizations.  Confirm that they will work, and if they do not, then repeat Steps 2, 3 and 4. 

5Deploy:  Roll out the updated changes to your SharePoint environment. 

Existing Sites and Converting to “Modern” Team Sites

Currently, existing collaboration sites cannot be converted to “modern” team sites with an associated Office 365 group. However, “modern” experiences can be used in the “classic” collaboration sites by enabling the capabilities at the tenant level, then, modifying the sites based on functional requirements.

For newly added pages in “classic” SharePoint sites, the default will be a “modern” page with the option of changing the welcome page to a “modern” page. Setting a new “modern” page for a “classic” SharePoint site can be done programmatically in CSOM or REST APIs.  For “modern” lists and library usage, control is available at the tenant, site, web and list/library levels. 

SharePoint On-Prem and “Modern” Experiences

Currently, “modern” experiences for SharePoint On-Prem are not available.  They are planned to become available for SharePoint 2016 in an upcoming feature pack and will be available with a step by step guide. 

“Modern” experiences in SharePoint Online focus on end-user usability and appearances and offers more centralized, easily accessible information from multiple platforms while on the go.  In the next installments, we will discuss Modern UI and Modern Team Sites in greater detail. 


SharePoint and Office 365: Patterns & Practices – Part 2 Contributing, Resources, and Sources


As the community and Microsoft work together to create sample code and guidance, they begin to form the libraries, or repositories, that store this information but before they can be stored, they must meet the PnP support guidelines and recommended techniques. These are then reviewed and approved by SharePoint Engineering.  Once approved, and depending upon their functionality, they are then released through the following channels:

1.   PnP Core Component:  significant functionalities and add-ons to increase developer productivity


2.   PnP PowerShell: maintain shipment deployment on-line or on-prem


3.   PnP Partner Pack:  starter kit for achieving certain functionalities on online shipment


4.   PnP JavaScript Core:  SharePoint library for JavaScript


5.   UI Responsive Package:  components and solutions for SharePoint online and on-prem 


6.   Other components and solutions 

Even though PnP is owned and coordinated by SharePoint Engineering, it is completely driven by the community both internally and externally.  The collaboration, sharing of knowledge and the opportunities provided for learning has and will continue to benefit those in the community.  The program is facilitated by Microsoft, but being community driven, Microsoft has reached out to the community, resulting in the appointments of multiple community members into the PnP Core Team. Microsoft is currently looking to extend the Core Team with more community members. 

Where do I start if I want to become more involved?

As they saying goes, “Sharing is caring”, and one can join the community and share one’s knowledge. The following are highly recommended if you want to become more closely involved:

a.    Wiki:  How to get started and contribute to Office 365 Dev PnP program

b.    Webcast: Office Dev PnP Webcast – How to get started with Office Dev PnP

c.    Video Blog:


Why and How to Contribute to PnP Initiative

The PnP initiative is an open source community which is comprised of internal and external members of the Microsoft community.  Like all open source communities, the success of the community is driven by the members and their degree of contribution and active engagement.  In PnP, this is no different as every member who contributes is recognized during a monthly public recap of all things being contributed and implanted into the latest version of PnP. 

As a collaborator and member, you have opportunities to help others, whether they are just beginning to consider PnP to those who are advanced, whom you could recommend patterns to.  Being an active member of the PnP initiative provides the opportunities for networking where you will not only find peers who work on similar topics, but you will engage with customers and partners. 

Contributing and participating is made simple through the usage of three platforms.  The first being Yammer, as it is not only a great place to participate in the discussion, but it is the place to help others or to ask your own questions.  You can follow monthly releases and discussions on the latest topics from the second platform, Skype for Business.  In Office Hours, discussions revolving on the topics of needed capabilities within Yammer or Office Hours take place.  In addition to these, opportunities to discuss reporting and fixing issues, contributing new samples, guidance, and documentation feedback.  When there are submissions, they will be reviewed, and if approved, will be meshed with the existing components.

I’m in!  Now what?

The best way to contribute and participate is to become informed, committed and knowledgeable.  As an open source community, there are many members who contribute, teach, review and mentor others within the community.  The beauty of collaboration is that there is no one way of doing things as there are many avenues to reach that end goal, but with many minds on the task, that road becomes wider and more accessible, allowing the team to reach that goal more efficiently, quickly and with great focus. 

Where do I find Key PnP Resources?

At the Microsoft development centre, you can find code samples and guidance documentation.  At, you can access code samples and guidance through the drop down menu under the heading Resources by choosing Patterns and Practices

How to find what is relevant to me in PnP?

As each contributors' needs are different and many times are dependent upon client needs, there are several ways to find what is relevant to your unique situation.  These resources contain many articles for support and how to's for:   

a.    PnP Web Casts (aka Chanel 9)

Key topics that are discussed in consideration of your customization of Office 365 to on-prem include the following:


–      setting up on-prem add-in model infrastructure

–      remote provisioning vs. feature framework usage

–      JavaScript performance considerations with SharePoint

–      provisioning engine and references solution with AngularJS

–      SharePoint Nugent Packages and PnP Core Component

–      throttling mechanisms in SharePoint Online


b.    Blog post 


c.    Documents


Presentations and graphics that you will find here:


–      webcast presentations

–      community call presentations

–      seminar presentations

–      reusable graphics

–      PnP Graphics presentation contains over 100 slides and drawings for reuse


d.    Add-in Model transformation training


                     i.        Video, presentations, demos and hands-on demos


                    ii.        10 training modules on specific topics including the following:


1)       Introduction to Transformation

2)       Site Settings and JS embed

3)       Branding with add-in model

4)       Building UX components with add-in model

5)       Remote event receivers and timer jobs

6)       Site and site collection provisioning

7)       User personalization and OneDrive for Business

8)       ECM with add-in model

9)       Search with add-in model

10)    Transformation guidance from FTCs to add-ins

How do I keep up-to-date in PnP?

With the large community that participates in PnP, changes and additions occur at a fast and high rate.  To contribute, participate and keep abreast of new additions, one must keep current.  There are three sites that will help you to keep current and whether you are listening or asking questions, these three resources will prove to be invaluable:

      a. Yammer:

A place where you can participate in the discussion while helping others with questions and answers.

b.  Bi-weekly office hours:

Open mic theme for answering all questions with open discussion.

c.  Monthly community calls:

Held every second Tuesday on a monthly basis via Skype for Business, the community receives a recap of what has taken place the month before, thus bringing all its members up to date on the latest version.

Can I have a cheat sheet for all the information I will need?

There are four key sources for information, and they are as follows:

1.  Key resources:

2.  Repositories include:

3.  Presentations:

4.  Starter Kit:

5.  Twitter: @OfficeDevPnP

What are you waiting for?

Now with all the resources at your fingertips, empower yourself and become a participating force in shaping the content and future of Patterns and Practices in SharePoint and Office 365.