How To Build Custom SharePoint Apps and Extensions
Elevate your business with a trusted SharePoint development services company. Our experts deliver tailored solutions for seamless collaboration and productivity.
Join the DZone community and get the full member experience.
Join For FreeMicrosoft recently unveiled several improvements and promises for SharePoint Framework X at the Ignite Conference, promising its growth over time. Now available on-premises in SharePoint 2016 Feature Pack 2, not all that's available online can be used locally, such as extensions that currently only work in SharePoint implementation Online. Modern UI does not yet support SharePoint services on-premises, but this may change with SharePoint 2019's support — this feature may eventually make its way onto classic sites, too.
Investing in techniques like JSLink would not be wise when extensive extensions are already present from SharePoint Framework extensions are available. SharePoint On-Premises has yet to offer all of its desired features, such as tenant-level deployment improvements. While On-Premises could become its own product in the future, for now, it should serve as a subset — whatever you create on-premises should also work in SharePoint Online without needing any special modification.
Similarly, some features will also make their way back onto On-Premises SharePoint development services offshore. Microsoft recently made waves when they released SharePoint Framework Extensions — one of their most exciting updates. SPFx now caters to more than just Web Parts and thus expands its applicability further, creating an exciting future development story.
What Are SPFx Extensions?
SharePoint Framework extensions offer a fantastic way to customize and enhance the SharePoint experience. While Web Part customizations may be at the core, you can modify how lists are rendered and add actions or content at specific points within SharePoint.
Microsoft provides all the features necessary to meet business requirements and rails for your train so that it stays on course while taking in its surroundings. Yes, SPFx may allow for complete control of SharePoint pages; however, Microsoft clarifies acceptable and unacceptable use cases. Although it might seem fun to ride it across uncharted territory, you should always remain on its tracks.
There are currently three categories of extensions:
- Application Customizers allow you to add scripts or HTML elements directly onto a webpage and render custom logic within those placeholders.
- Field Customizers allow you to alter the appearance of lists. A "progress" area might look more appealing with bars representing progress instead of numbers alone; using field customizers, you can make that number appear like bars of progress instead.
- Command sets allow users to add new actions while providing client-side behavior code.
Let's examine each element individually.
Application Customizers
These customizable controls let you add scripts or access popular HTML elements, including placeholders, to implement custom development rendering logic. As an experienced SharePoint developer, you may remember "delegate controls." Microsoft allows this way of customizing elements like the header or footer in an approved manner.
This feature can be precious; you can examine a website URL and give users disclaimers. Or embed functionality to allow them to change a site's appearance while maintaining all your SPFx customizations. Another significant benefit: If deploying SPFx solutions tenant-wide, feature.xml does not get used at all - meaning tenant-wide custom solutions won't support solutions that rely on particular lists or content types. Solutions could include installing a hook that runs code when we deploy or uninstall solutions. Two ways are possible to avoid this issue:
- PnP PowerShell should be used on the site where you intend to activate the feature.
- Application Customizers allow for one-time script execution that enables features at the site, web, and list scopes;
Let's look at how we can create one now. Your experience will be guided through a wizard where you will:
- Select "SharePoint Online Only"
- When asked to choose a solution that applies to all tenants, select "N."
- Select "Extension" for the type of component.
- Choose "Application Customizer."
Once your project has been opened, search the src extensions directory for your Customizer — there should only be one, and its name should match what was entered when creating the solution — manifest.json should contain information about this file containing a unique identifier which SharePoint development services company will recognize; make a note of it immediately as you'll need it again later.
An Application Customizer is simply a class that inherits from BaseApplicationCustomizer and can be strongly typed like Web Parts. Note, however, that customizations should only occur during "OnInit" rather than its constructor since this allows access to its state.
Please be aware that we have broken down the URL with return characters to make it easier for you to read; however, as it remains a URL, it should still be written on one line, and the GUID corresponding with manifest.json should remain intact.
It is enhanced with this disclaimer that allows debug scripts to run within the page, providing users and developers a quick way to test and inject their code. This approach ensures both parties stay safe from unexpected content being downloaded from the Internet while providing developers with an effective method for testing code insertion and injection.
Can this technique be misused, and what are its restrictions? Microsoft has provided "rails" as guidelines, while Application Customizers allow access to predefined areas on your page. Let's expand an Application Customizer so it supports this by editing its import statement within your.ts Customiser file: Use the same URL you had before, but include the Top and Bottom properties.
Deploying Customizer
Since we've been testing out Customizer in debug mode, users may forget a long URL easily — to deploy Application Customizer successfully, you must take at least two steps: With SPFx's feature.xml file, you can indicate to it that a specific customizer with an assigned GUID, as specified by the ClientSideComponentId property, will use properties specified via JSON in ClientSideComponentProperties for customization.
Your next question might be, "Is it necessary to hard code properties in an escaped JSON within an XML document." It is. These properties serve only as starting points. They can point you toward either dynamic Web Services that provide dynamic values, or they can calculate dynamic ones based on context. But don't take our word for it: tenants' properties offer another solution. An initial starter value can point towards tenants' properties where users can set their value; tenants' properties could even point back towards another web service or parameter that can be changed at run time. The final step is to activate and upload files through CDN. Confirm that the application customizer now displays as default on the website on which the Customizer was activated.
However, one important consideration when deploying SPFx solutions containing extensions to all tenants should be remembered: tenant-wide solutions do not activate feature XML files, even though you deploy them. With PnP PowerShell, you can manually activate features you require to bypass this requirement and then use customizers with tenant-wide deployment for customizations across multiple sites.
Field Customizers
Now, we will turn our focus to Field customizers. We will only address their critical differences as the deployment steps for both Application Customizers and Field Customizers are similar. Field Customizers allow you to alter how list views of a field are rendered, giving users more flexibility over how they see the data. However, keep in mind that rendering will only occur once all field renderer methods have completed their task - keep these simple for optimal performance or consider delegating complex rendering jobs to asynchronous operations instead.
Field rendering methods go beyond simply customizing fields; they can also be used for presenting master-detail data or information from another system. Easy Field Customizer Creation. Launching SharePoint development consulting services Generator can help create Field Customizers quickly. These generators can then be found within Application Customizer for easier field customization.
Once your application has been scaffolded, open the.ts for your FieldCustomizer class. It should be a straightforward class inheriting BaseFieldCustomizer with its properties represented through an interface. All SPFx artifacts follow this pattern closely.
Note that you can also render custom HTML code with onRenderCell by using event. Use the element to access the DOM element, rendering the field and rendering it however you wish. This Field Customizer was explicitly written to search for fields named Percentage on UX websites — create a list and add a "Percentage" column as part of it, then visit the URL address to launch this Customizer.
Command Sets
Command Sets enable you to add customized actions directly into SharePoint's user experience (UX). Create a new SharePoint Project, select SharePoint Online, and create an extension using the command sets below. After this has been accomplished, visit your manifest.json file to select commands you would like added.
As is customary, you'll find the definition of your command set extension in its associated.ts file. As is customary, this class inherits from BaseListViewCommandSet, which supports properties your command set supports; additionally, there will be two overridden methods in this class. When the ListView state changes, this method is invoked. Here, you can change its title or hide/show elements as needed — each command being called here upon every list view change.
When invoking the execute method, you can place your logic within this method. An ID can be used to locate the currently active command. Execute the command-set extension as you would usually. Verify that any commands enabled through this extension appear in the list's command bar if activated, and check that both appear when selecting list items.
Conclusion
The SharePoint framework introduces an innovative way of customizing SharePoint. All these requirements make modern sites much simpler to develop. Furthermore, its application to both on-premises and cloud means we have an identical programming model across both environments.
SharePoint consulting and development services Framework has not reached "completeness" yet. Vital features and functionality that require construction remain vital; nonetheless, it's quickly emerging as an effective development tool for SharePoint.
Opinions expressed by DZone contributors are their own.
Comments