I had an opportunities to work with SharePoint Online and Windows Azure related implementations for the last one year. Initially I was struggled a lot to setup a proper development process in SharePoint Online like SharePoint on-premises.
We can find a lot of code samples in Office PnP for SharePoint Online development. For the same implementation, we can find the multiple approaches in Office PnP. Even though we don’t have a proper Application Lifecycle Management process for SharePoint Online development.
If we want to setup a proper development setup for SharePoint Online like On-premises, we should know that what we are missing in SharePoint Online comparing with on-premises.
Let’s take an intranet portal development scenario and recap how we did the same implementation in SharePoint on-premises.
How we implement an Intranet Portals in SharePoint on-premises?
Here are the list of activities we will follow in SharePoint on-premises for implementing a portal.
1. Setup the environments (Development, QA and Production).
2. Build the SharePoint solutions (WSP) using Visual Studio. Each WSP files may have the following items,
b. Site Columns
c. Content Types
d. List and Library schemas
e. Visual and Standard Web Parts (using server side C# or VB.NET code)
f. Application Pages
g. Visual Studio based Workflow
h. BDC model files for Business connectivity Services.
i. Feature activation or deactivation code block and event receivers.
j. Custom Timer Jobs
3. Deployment PowerShell scripts.
4. If everything is working well in DEV environment then, deploy the same WSP solutions in QA and then production environment.
Comparing the Licensing model between SharePoint on-premises and SharePoint Online.
Understanding the licensing model is important factor for setup the environments. Let’s assume we are planning an intranet portal for 1000 employees in Contoso Inc.,
Here the license model will be the combination of SharePoint instances and the number of users count. So we will buy a SharePoint Server licenses for DEV, QA and PROD environments and also a user CAL licenses for 1000 users.
Here the license approach is different and there is not instance based license model. So will buy a licenses based on user counts and not server instance basis. Here are the few licensing options.
For setup a full blown environments like on-premises (DEV, QA and PROD), we need to buy a three different domains like contoso.dev, contoso.qa and contoso.prod with 1000 user’s licenses for each domain. This approach is too expensive.
Alternatively, buy the single domain with 1000 user’s licenses. We can create and use the multiple site collections for DEV, QA and PROD for intranet portal implementation. But the main challenges are with shared services like Content hub, Taxonomy and Search. This is a cost effective option also.
Available Development Approaches in SharePoint Online
Let’s see the available development approaches for SharePoint Online development
1. SharePoint Add-Ins based development (or Apps)
As my experience, we can develop a multiple isolated modules like leave requests, meeting requests, and employee directory using Add-Ins approach and cannot develop or provision a full blown Intranet Portals using SharePoint Add-Ins. Because each app is loading inside an iframe and have lot of challenges in sharing and presenting the data.
Already we have a lot analysis regarding the traditional SharePoint solution development vs. Add-Ins (App) and I am not going to write here the same again.
2. PnP provisioning Engine
Customizing the sites using browser and/or SharePoint designer and then use PnP provisioning Engine for moving the customizations from DEV to QA/PROD. Office PnP team has recently released this option for moving customization from one site collection to another. Still the framework is in development and not production ready.
3. Remote Provisioning using Client Object Model
Office PnP team has released the SharePoint Online Client SDK and we can provision the customization programmatically. For more information about the remote provisioning http://www.sharepoint-reference.com/Blog/Code%20Samples/Introducing%20the%20PnP%20Provisioning%20Engine.pdf
SharePoint Online PowerShell.
PowerShell support has enabled for SharePoint Online recently and we cannot provision all the options like SharePoint on-premises.
By using the combination of above features, we can build the portals in SharePoint Online.
Common Development Activities in SharePoint
We can divide an entire portal development activities into three main categories,
· Customizing the Out of box features
· Custom implementation/development
As we discussed above, we have multiple options are available for site provisioning in SharePoint Online. But I prefer the remote provisioning using SharePoint Online Client Object. Initially it will required a lot of efforts for building the framework. But the deployment will easier and controllable by developer at any time.
1. How to automate the Site Columns provision in SharePoint Online using Client Object Model – Part 1
2. How to automate the Content Types provision in SharePoint Online using Client Object Model – Part 2
3. How to automate the Lists and Libraries provision in SharePoint Online using Client Object Model – Part 3
4. How to automate the Site Pages provision and embedding the Web Parts in SharePoint Online using Client Object Model – Part 4
5. How to automate the Pages Layouts provision in SharePoint Online using Client Object Model – Part 5
6. Feature Stapling in SharePoint Online using Client Object Model – Part 6
7. Managing the Roles and Site Permissions in SharePoint Online using Client Object Model – Part 7
8. Provisioning the current and global navigations in SharePoint Online using Client Object Model – Part 8
The next series of post, I will cover the OOB customization and custom development.