Last Updated on August 12, 2024
What programming models are available in SharePoint?
In this article, I’ll explain the different programming models for developers working with SharePoint.
Let’s get started.
Table of Contents:
General Classification of Models
There are two general models for SharePoint programming:
1. Server-Side Object Model (SSOM)
This server-side object model has been a foundational approach for developers working with SharePoint.
That’s because it has a deep integration with SharePoint’s core that allows for robust custom solutions.
Its key aspects include:
- Rich API support
- Run on SharePoint servers
- Best for on-premises
If you use SSOM, you will have direct access to SharePoint’s server components for comprehensive customization.
It’s a great model if you want to use it locally in environments where you need to extend SharePoint capabilities.
SSOM is particularly useful when performing complex operations interacting deeply with SharePoint’s backend.
However, because the code runs on the SharePoint server, there’s a higher risk of affecting performance if not optimized properly.
⚠️ Note: SSOM is less relevant for SharePoint Online, where client-side models like SharePoint Framework (SPFx) are preferred
2. Client-Side Object Model (CSOM)
On the other hand, those who want to work with SharePoint Online and hybrid environments prefer CSOM.
That’s because CSOM allows for remote interaction with SharePoint data using client-side code.
Some key aspects here include:
- Remote access
- Support languages
- Lightweight operations
Client-side object model is available in various programming languages like C#, JavaScript, and .NET.
As opposed to SSOM, this model is ideal for tasks that don’t require deep server integration.
It’s useful in scenarios where performance is a concern as it minimizes the load on the server (execution is on the client side).
⚠️ Note: CSOM interacts with SharePoint via REST APIs and other services, making it flexible for building modern web applications
Sign up for exclusive updates, tips, and strategies
SPFx is the modern and preferred SharePoint development model for building client-side solutions.
It supports the creation of responsive and mobile-ready applications using common web technologies.

Here are its key aspects:
- Client-side development
- Integration with modern tools
- Seamless integration
What’s nice with SPFx is that it allows the user of popular web development tools and libraries like React and Angular.
It also integrates smoothly with SharePoint data and you can use it across various platforms, including Microsoft Teams.
It also supports the latest advancements in AI and ML (a versatile choice for modern enterprise SharePoint solutions).
You can read more about it in the SharePoint developer documentation:
👉 Related: Overview of the SharePoint Framework (SPFx) | Microsoft Learn
Development Models for Specific Use Cases
There are also other development models that are suited for various specific use cases, depending on the needs.
From the word itself, these add-ins are standalone solutions that run independently of the SharePoint server.
Some key aspects:
- Isolated environment
- Flexible deployment
- User-friendly installation
What’s cool here is that add-ins can be deployed in both SharePoint Online and on-premises environments.
They can also be installed and removed easily by end-users without requiring extensive IT involvement.
These add-ins are typically consist of a combination of SharePoint components like:
- Lists
- Document libraries
- Workflows
They can also go with external web applications that can interact with Microsoft SharePoint.
Well, the use of add-ins might be decreasing now, but they still serve a purpose in specific scenarios.
⚠️ Note: This feature has been fully retired. It’s still supported, but it won’t get any new investments.
These are powerful extensions that run on the SharePoint server with full trust (full permissions).
They are typically used for administrative tasks and deep integrations as they’re suitable for complex customizations.
Here are their key features:
- Full trust execution
- Server-side code
- Wide scope
These solutions involved server-side code that interacts directly with the SharePoint server object model.
As for the deployment, they can be at the:
- Farm
- Web application
- SharePoint site collection level
These are most commonly used for tasks that require extensive server-side processing like custom time jobs and workflows.
Unfortunately, they have significant access to resources so they must be managed carefully to avoid performance issues.
⚠️ Note: Unlike other models, farm solutions aren’t suitable for SharePoint Online as they require direct access to the server environment.
The last one on this list is publishing sites, which are designed for large-scale content management and distribution.
They’re especially useful for enterprises that need to manage a significant volume of web content.
Key features include:
- Content management
- Document and record management
- Customizable workflows
From the name, these sites support the management of documents, records, and compliance with regulatory standards.
If you’re wondering why they’re on this list, that’s because they’re often used for building:
- Intranets
- Corporate websites
- Large-scale content repositories
They have a high degree of customization and integration with other SharePoint features like taxonomy and content types.
They also include the usual site features like version control, content approval workflows, and scheduling.
👉 Related: SharePoint Server Publishing Infrastructure (For Beginners)
Continued Evolution of SPFx
Going forward, SPFx will continue to evolve as the preferred development model for building modern client-side solutions.
With ongoing updates and new features, SFPx is expanding to integrate seamlessly with other Microsoft apps.
Anyway, got any questions about programming models in SharePoint? Let me know below.
For any business-related queries or concerns, contact me through the contact form. I always reply. 🙂