Programming Models in SharePoint (Not Mutually Exclusive)

Programming Models in SharePoint (Not Mutually Exclusive)

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.

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

    SharePoint Framework (SPFx)

    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.

    spfx example cases

    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.

    SharePoint Add-ins (Retired)

    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:

    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.

    SharePoint farm solutions

    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.

    SharePoint publishing sites

    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:

    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. 🙂

    About Ryan Clark

    As the Modern Workplace Architect at Mr. SharePoint, I help companies of all sizes better leverage Modern Workplace and Digital Process Automation investments. I am also a Microsoft Most Valuable Professional (MVP) for SharePoint and Microsoft 365.

    Subscribe
    Notify of
    guest
    0 Comments
    Oldest
    Newest Most Voted
    Inline Feedbacks
    View all comments
    0
    Would love your thoughts, please comment.x
    ()
    x
    Scroll to Top