Skip to content

Commit 997103b

Browse files
author
MPCoreDeveloper
committed
sync docs distributed featurs
1 parent 41600dd commit 997103b

File tree

89 files changed

+23030
-1864
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+23030
-1864
lines changed

.github/copilot-instructions.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,4 @@
1212
## Project-Specific Rules
1313
- Custom requirement A
1414
- Custom requirement B
15+
- Require full SQLite compatibility: SharpCoreDB sync and provider must support all SQLite syntax/features users could use, never less; extra capabilities are fine.

Examples/README.md

Lines changed: 208 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,208 @@
1+
# SharpCoreDB Examples
2+
3+
Deze directory bevat praktijkvoorbeelden voor het gebruik van SharpCoreDB in verschillende scenario's.
4+
5+
## 📁 Directory Structuur
6+
7+
```
8+
examples/
9+
├── sync/ # Synchronisatie voorbeelden
10+
│ ├── SyncExample.cs # Basis Dotmim.Sync integratie
11+
│ └── CrossPlatformSyncExample.cs # Cross-platform sync (SQL Server, PostgreSQL, etc.)
12+
└── README.md # Deze file
13+
```
14+
15+
## 🔄 Synchronisatie Voorbeelden
16+
17+
### Basis Synchronisatie
18+
**Bestand:** `sync/SyncExample.cs`
19+
20+
Toont hoe SharpCoreDB te synchroniseren met SQL Server via Dotmim.Sync:
21+
22+
```csharp
23+
using Dotmim.Sync;
24+
using Dotmim.Sync.SqlServer;
25+
using SharpCoreDB.Provider.Sync;
26+
27+
// Configureer SharpCoreDB als lokale provider
28+
var sharpcoredbProvider = new SharpCoreDBSyncProvider("Data Source=local.db");
29+
30+
// Configureer SQL Server als remote provider
31+
var sqlServerProvider = new SqlSyncProvider("Server=mssql;Database=sync;Trusted_Connection=True;");
32+
33+
// Maak sync agent
34+
var agent = new SyncAgent(sharpcoredbProvider, sqlServerProvider);
35+
36+
// Definieer tabellen om te syncen
37+
var tables = new string[] { "Users", "Orders", "Products" };
38+
39+
// Voer bidirectionele sync uit
40+
var result = await agent.SynchronizeAsync(tables);
41+
42+
Console.WriteLine($"Geüpdatet: ↑{result.TotalChangesUploaded} ↓{result.TotalChangesDownloaded}");
43+
```
44+
45+
### Cross-Platform Synchronisatie
46+
**Bestand:** `sync/CrossPlatformSyncExample.cs`
47+
48+
Demonstreert synchronisatie met meerdere database types:
49+
50+
```csharp
51+
// Sync met PostgreSQL
52+
var postgresProvider = new PostgreSqlSyncProvider("Server=postgres;Database=sync;User Id=user;Password=pass;");
53+
var pgAgent = new SyncAgent(sharpcoredbProvider, postgresProvider);
54+
await pgAgent.SynchronizeAsync(tables);
55+
56+
// Sync met MySQL
57+
var mysqlProvider = new MySqlSyncProvider("Server=mysql;Database=sync;Uid=user;Pwd=pass;");
58+
var mysqlAgent = new SyncAgent(sharpcoredbProvider, mysqlProvider);
59+
await mysqlAgent.SynchronizeAsync(tables);
60+
```
61+
62+
## 🚀 Hoe Uitvoeren
63+
64+
### 1. Dependencies Installeren
65+
66+
```bash
67+
# Voor basis sync
68+
dotnet add package SharpCoreDB.Provider.Sync
69+
dotnet add package Dotmim.Sync.Core
70+
dotnet add package Dotmim.Sync.SqlServer
71+
72+
# Voor cross-platform sync
73+
dotnet add package Dotmim.Sync.PostgreSql
74+
dotnet add package Dotmim.Sync.MySql
75+
dotnet add package Dotmim.Sync.Sqlite
76+
```
77+
78+
### 2. Voorbeeld Project Aanmaken
79+
80+
```bash
81+
# Maak nieuw console project
82+
dotnet new console -n SharpCoreDBSyncExample
83+
cd SharpCoreDBSyncExample
84+
85+
# Voeg dependencies toe
86+
dotnet add package SharpCoreDB.Provider.Sync
87+
dotnet add package Dotmim.Sync.Core
88+
dotnet add package Dotmim.Sync.SqlServer
89+
90+
# Kopieer voorbeeld code
91+
# (Kopieer code van sync/SyncExample.cs)
92+
```
93+
94+
### 3. Uitvoeren
95+
96+
```bash
97+
dotnet run
98+
```
99+
100+
## 🎯 Use Cases
101+
102+
### 1. Lokale Eerst Architectuur (AI Agenten)
103+
- SharpCoreDB voor lokale opslag
104+
- Sync met cloud database voor backup/deling
105+
- Offline-first capability
106+
107+
### 2. IoT Edge Computing
108+
- SharpCoreDB op edge devices
109+
- Periodieke sync met centrale database
110+
- Offline data buffering
111+
112+
### 3. Mobile Apps
113+
- Lokale SharpCoreDB database
114+
- Sync met backend bij connectiviteit
115+
- Conflict resolution voor offline changes
116+
117+
### 4. Enterprise Data Warehousing
118+
- Operationele data in SharpCoreDB
119+
- Sync met centrale data warehouse
120+
- ETL processen ondersteunen
121+
122+
## 📋 Vereisten
123+
124+
- **.NET 10** of hoger
125+
- **SharpCoreDB** v1.4.0+
126+
- **Dotmim.Sync** v1.3.0+
127+
- Database-specifieke providers (SQL Server, PostgreSQL, etc.)
128+
129+
## 🔧 Configuratie
130+
131+
### Connection Strings
132+
133+
```csharp
134+
// SharpCoreDB (lokaal)
135+
"Data Source=local.db"
136+
137+
// SQL Server
138+
"Server=mssql;Database=sync;Trusted_Connection=True;"
139+
140+
// PostgreSQL
141+
"Server=postgres;Database=sync;User Id=user;Password=pass;"
142+
143+
// MySQL
144+
"Server=mysql;Database=sync;Uid=user;Pwd=pass;"
145+
```
146+
147+
### Sync Opties
148+
149+
```csharp
150+
var options = new SyncOptions
151+
{
152+
BatchSize = 1000, // Verwerk in batches
153+
UseBulkOperations = true, // Gebruik bulk operaties
154+
ConflictResolutionPolicy = ConflictResolutionPolicy.ServerWins,
155+
UseCompression = true, // Comprimeer data
156+
MaxRetries = 3 // Retry logica
157+
};
158+
```
159+
160+
## 🐛 Troubleshooting
161+
162+
### Veelvoorkomende Problemen
163+
164+
#### Connection Timeouts
165+
```csharp
166+
// Verhoog timeouts
167+
var options = new SyncOptions
168+
{
169+
CommandTimeout = TimeSpan.FromMinutes(10),
170+
BulkCopyTimeout = TimeSpan.FromMinutes(15)
171+
};
172+
```
173+
174+
#### Grote Datasets
175+
```csharp
176+
// Gebruik kleinere batches
177+
var options = new SyncOptions
178+
{
179+
BatchSize = 500,
180+
UseCompression = true
181+
};
182+
```
183+
184+
#### Conflicten
185+
```csharp
186+
// Configureer conflict resolution
187+
var options = new SyncOptions
188+
{
189+
ConflictResolutionPolicy = ConflictResolutionPolicy.ClientWins
190+
};
191+
```
192+
193+
## 📚 Meer Informatie
194+
195+
- **[Dotmim.Sync Documentatie](https://dotmim-sync.readthedocs.io/)**
196+
- **[SharpCoreDB Sync Gids](docs/sync/README.md)**
197+
- **[Distributed Features](docs/distributed/README.md)**
198+
199+
## 🤝 Bijdragen
200+
201+
Voel je vrij om meer voorbeelden toe te voegen! Gebruik dezelfde structuur:
202+
203+
1. Maak subdirectory voor use case (`examples/[category]/`)
204+
2. Voeg `[ExampleName].cs` bestand toe
205+
3. Update deze README
206+
4. Test het voorbeeld
207+
208+
**Voorbeelden horen thuis in `examples/`, niet in `src/`!**

0 commit comments

Comments
 (0)