Quick Start Guide¶
Home → Documentation → Setup → 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¶
- Documentation: Full Documentation Index
- Known Issues: Known Limitations
- Troubleshooting: Troubleshooting Guide
- GitHub Issues: Report bugs on project repository
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