Lower coupling
Application code depends on ADO.NET and the provider rather than scattered REST/CAML calls in individual modules.
A REST-only ADO.NET provider that exposes SharePoint lists and document libraries to .NET applications through standard ADO.NET primitives and pragmatic SQL-like queries.
The application works with connection, command, parameter, reader, adapter and SQL-like queries; the provider translates and optimizes those operations for SharePoint REST.
The provider interprets SQL-like queries, builds logical and physical plans, and selects the safest combination of CAML, REST/OData, batching and local relational processing.
ASP.NET Core, Windows Forms, services and enterprise .NET applications.
Connection • Command • Parameter • Reader • Adapter
Planner • Optimizer • Semantic validation • Cost model
CAML • REST • OData • $batch • RLDAS
SharePoint Online • SharePoint Server Subscription Edition
An optimization is considered only when it preserves the expected SQL result. The cost model chooses among strategies that are already semantically valid.
One component centralizes data access concerns while preserving the platform's real limits and behavior.
Application code depends on ADO.NET and the provider rather than scattered REST/CAML calls in individual modules.
The same surface targets .NET Framework 4.8 and .NET 8 across SharePoint Online and Server SE.
Authentication, metadata, paging, batching, mutations and fallbacks are handled in one provider.
Existing applications can introduce the provider progressively without replacing the entire data stack.
Scan and mutation limits plus conservative fallbacks prevent partial or semantically different results.
The goal is not to turn SharePoint into SQL Server, but to expose the operations needed by real .NET applications through a coherent provider contract.
DbProviderFactory, DbConnection, DbCommand, DbDataReader, DbParameter, DbDataAdapter, DbCommandBuilder, connection string builder.
SELECT, WHERE, TOP, ORDER BY, BETWEEN, IN, LIKE, NULL semantics, parameters, aliases and SQL comments.
INNER JOIN, LEFT JOIN, CROSS JOIN plus semi/anti-join semantics from EXISTS, NOT EXISTS, IN and NOT IN.
COUNT, SUM, AVG, MIN, MAX, GROUP BY, HAVING, local HASH/STREAM strategies and certified SERVER AGGREGATE.
DISTINCT, COUNT(DISTINCT), OFFSET/FETCH, UNION ALL and UNION with SQL-aware cardinality behavior.
Arithmetic, searched CASE, COALESCE, NULLIF, CAST and essential scalar functions.
INSERT, UPDATE, DELETE, expression-based UPDATE SET, INSERT ... SELECT and UNION-backed sources.
Schema discovery, provider-supported DDL/DCL, metadata cache and controlled invalidation.
CAML/OData pushdown, $batch, RLDAS, plan cache, cost-based planning and local fallback.
Timeouts, cancellation/async, MaxRows, MaxMutationItems, Server SE digest cache and Online/SE authentication.
The provider does not simulate ACID transactions and does not attempt to implement every SQL Server construct. Advanced syntax is added only when there is a concrete application need and reliable semantics.
The client code stays in ADO.NET and SQL-like territory while the provider handles SharePoint transport, planning and fallback.
* REST is cross-platform; integrated authentication to SharePoint Server depends on the Kerberos / Negotiate / NTLM configuration available in the operating system and infrastructure.
The engine is designed to avoid partial results and semantically unsafe optimization when exposing a non-relational platform through SQL.
Applied to the correct final rowset, including after UNION composition.
INSERT ... SELECT checks mutation cardinality before writing when the configured limit would be exceeded.
Aggregations and DISTINCT use server-side primitives only for certified shapes; local operators remain available as safe fallbacks.
Queries that require a complete scan fail rather than returning a partial aggregate when safety limits prevent completion.
Validation pipelines cover .NET Framework 4.8, .NET 8, SharePoint Online and SharePoint Server SE.
Reduce SharePoint-specific code and centralize access through an ADO.NET contract.
Use SharePoint lists as an operational backend with queries, joins, aggregations and DML.
Run parameterized queries and aggregates while keeping ADO.NET as the application contract.
Integrate DataTable/DataSet, binding, DataGridView and traditional enterprise UI components.
Use the provider from ASP.NET Core and .NET services while isolating business logic from SharePoint APIs.
The planned C# sample is intended as a tutorial and proof-of-concept base, using the same lists employed in provider validation and covering connection, parameters, DataAdapter binding, CRUD, JOINs, aggregations, UNION, schema and diagnostics.
ADO.NET as the application contract, REST-only as the runtime, pragmatic SQL as the language, and semantic correctness as the optimization boundary.
Current status: the planned SQL/ADO.NET 1.0 core is complete through UNION, expression-based DML and INSERT ... SELECT, with validation across .NET Framework 4.8 / .NET 8 and SharePoint Online / Server SE.