Skip to content

Quick Start Guide

HomeDocumentationSetup → Quick Start

Get up and running with Cesivi Server in 5 minutes.

Prerequisites

  • .NET 10.0 SDK - Download from dotnet.microsoft.com
  • Windows/Linux/macOS - All platforms supported
  • PowerShell 7+ (optional, for PnP PowerShell examples)

Verify .NET installation:

dotnet --version
# Output: 10.0.x

1. Clone & Build (2 minutes)

# Clone the repository
git clone https://github.com/your-org/Cesivi.git
cd Cesivi

# Build the server
dotnet build
# Output: 0 Error(s), 0 Warning(s)

2. Run the Server (1 minute)

# Start the mock server
cd Cesivi.Server
dotnet run

# Server runs on http://localhost:5000
# You'll see: "Kestrel listening on http://localhost:5000"

3. Quick Test Examples (2 minutes)

Example 1: Test REST API (Easiest)

# In a new terminal
curl http://localhost:5000/_api/web

Expected response:

{
  "Title": "Default Web",
  "Url": "http://localhost:5000",
  "Lists": [...],
  "Webs": [...]
}

Example 2: Test CSOM (C#)

Create a file test-csom.cs:

using Microsoft.SharePoint.Client;
using System;
using System.Net;

class Program
{
    static void Main()
    {
        using (var ctx = new ClientContext("http://localhost:5000"))
        {
            // Use default credentials (Windows auth)
            ctx.Credentials = CredentialCache.DefaultCredentials;

            // Load web title
            var web = ctx.Web;
            ctx.Load(web, w => w.Title);
            ctx.ExecuteQuery();

            Console.WriteLine($"Site Title: {web.Title}");
        }
    }
}

Run:

csc /reference:"C:\Program Files\Microsoft.SharePoint.Client\*.dll" test-csom.cs
./test-csom.exe
# Output: Site Title: Default Web

Example 3: Test PnP PowerShell (Advanced)

# Import PnP module
Import-Module "C:\Source\_AI\Cesivi\SharePointPnPPowerShell2019\3.29.2101.0\SharePointPnPPowerShell2019.psd1"

# Connect to mock server
Connect-PnPOnline -Url http://localhost:5000 -CurrentCredentials

# Get web info
Get-PnPWeb

# Get lists
Get-PnPList

# Disconnect
Disconnect-PnPOnline

Known Limitations

Before you get started, be aware of these documented limitations:

CSOM (70.3% coverage)

  • Load() with lambda expressions - Use ctx.Load(obj) without property selectors
  • Property initialization - Some properties may not be fully initialized from server
  • Workaround - Use REST API for complex operations

Why? CSOM uses a proprietary binary JSON format. Without Microsoft's official protocol documentation, exact compatibility is limited.

PnP PowerShell (21.4% coverage)

  • Limited cmdlet support - Many advanced operations not implemented
  • Depends on CSOM - PnP wraps CSOM, so CSOM limitations apply

Why? PnP PowerShell wraps CSOM. Improving PnP coverage requires improving CSOM first.

→ See Known Limitations for complete details

Next Steps

For REST API Users

→ Read REST API Guide for endpoint documentation

For CSOM Developers

→ Check CSOM Guide for compatibility details

For PnP PowerShell

→ See PnP PowerShell Guide for supported cmdlets

For Troubleshooting

→ Consult Troubleshooting Guide for common issues

For Architecture Questions

→ Read Architecture Guide to understand design decisions

Common Tasks

Create a List via REST

curl -X POST http://localhost:5000/_api/web/lists \
  -H "Content-Type: application/json" \
  -d '{"Title": "My Documents", "BaseTemplate": 101}'

Get List Items via REST

curl http://localhost:5000/_api/web/lists/getbytitle("My%20Documents")/items

Add List Item via CSOM

ctx.Load(web.Lists, lists => lists.Include(l => l.Title));
ctx.ExecuteQuery();

var list = web.Lists.GetByTitle("My Documents");
var item = list.AddItem(new ListItemCreationInformation());
item["Title"] = "New Document";
item.Update();
ctx.ExecuteQuery();

Multi-Instance Development

Run multiple mock servers on different ports:

# Instance 1 (Terminal 1)
$env:CESIVI_HTTP_PORT = "5100"
cd Cesivi.Server
dotnet run
# Server on http://localhost:5100

# Instance 2 (Terminal 2)
$env:CESIVI_HTTP_PORT = "5200"
cd Cesivi.Server
dotnet run
# Server on http://localhost:5200

See Configuration Guide for complete guide.

Support & Issues

Key Statistics

Component Coverage Status
REST API 78.7% ✅ Production Ready
CSOM 70.3% ⚠️ Architectural Limit
SOAP Services ~80% ✅ Most Working
PnP PowerShell 21.4% ⚠️ CSOM Dependent

Project Philosophy

The mock server uses an "Acceptable Excellence" philosophy: - ≥95% coverage = Production Ready - Focus on real-world scenarios - Document Known Limitations - Clear expectations for users - High-ROI Development - Implement commonly-used features first - Quality > Completeness - Better 80% complete than 100% broken

This keeps the project maintainable while providing genuine value for development and testing.


Next Steps: - Detailed Setup Guide - Comprehensive installation - Docker Deployment - Production deployment - Configuration Guide - Advanced configuration - Features Overview - See what you can do

← Back to Setup | View All Docs