Dotmim.Sync
A brand new database synchronization framework, multi platform, multi databases, developed on top of .Net Standard 2.0. https://dotmimsync.readthedocs.io/
Install / Use
/learn @Mimetis/Dotmim.SyncREADME
Documentation
Read the full documentation on https://dotmimsync.readthedocs.io/
Dotmim.Sync
DotMim.Sync (DMS) is a straightforward framework for syncing relational databases, developed on top of .Net 8 (and compatible with .Net Standard 2.0), available and ready to use within IOT, Xamarin, .NET, UWP and so on :)
Multi Databases | Cross Plaform | .Net 8 / .Net Standard 2.0
-------------|---------------------|--------------------
|
| 
TL;DR
Here is the easiest way to create a first sync, from scratch :
- Create a .Net 8 or 6 project or a .Net Standard 2.0 compatible project (like a .Net Core 3.1 or .Net Fx 4.8 console application).
- Add the nugets packages Dotmim.Sync.SqlServer (or Dotmim.Sync.MySql if you want to tests MySql) and Dotmim.Sync.Sqlite
- Choose one database for testing:
- Either SQL Server test database : AdventureWorks lightweight script for SQL Server
- Or MySql test database : AdventureWorks lightweight script for MySQL Server
- Add this code :
// Sql Server provider, the "server" or "hub".
SqlSyncProvider serverProvider = new SqlSyncProvider(
@"Data Source=.;Initial Catalog=AdventureWorks;Integrated Security=true;");
// Sqlite Client provider acting as the "client"
SqliteSyncProvider clientProvider = new SqliteSyncProvider("advworks.db");
// Tables involved in the sync process:
var setup = new SyncSetup("ProductCategory", "ProductDescription", "ProductModel",
"Product", "ProductModelProductDescription", "Address",
"Customer", "CustomerAddress", "SalesOrderHeader", "SalesOrderDetail");
// Sync agent
SyncAgent agent = new SyncAgent(clientProvider, serverProvider);
do
{
var result = await agent.SynchronizeAsync(setup);
Console.WriteLine(result);
} while (Console.ReadKey().Key != ConsoleKey.Escape);
And here is the result you should have, after a few seconds:
Synchronization done.
Total changes uploaded: 0
Total changes downloaded: 2752
Total changes applied: 2752
Total resolved conflicts: 0
Total duration :0:0:3.776
You're done !
Now try to update a row in your client or server database, then hit enter again. You should see something like that:
Synchronization done.
Total changes uploaded: 0
Total changes downloaded: 1
Total changes applied: 1
Total resolved conflicts: 0
Total duration :0:0:0.045
Yes it's blazing fast !
Star History
Need Help
- Check the full documentation, available here : https://dotmimsync.readthedocs.io/
- Feel free to ping me: @sebpertus
- DMS font is created from the awesome Cubic font from https://www.dafont.com/cubic.font
Related Skills
oracle
339.3kBest practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
prose
339.3kOpenProse VM skill pack. Activate on any `prose` command, .prose files, or OpenProse mentions; orchestrates multi-agent workflows.
Command Development
83.9kThis skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
Plugin Structure
83.9kThis skill should be used when the user asks to "create a plugin", "scaffold a plugin", "understand plugin structure", "organize plugin components", "set up plugin.json", "use ${CLAUDE_PLUGIN_ROOT}", "add commands/agents/skills/hooks", "configure auto-discovery", or needs guidance on plugin directory layout, manifest configuration, component organization, file naming conventions, or Claude Code plugin architecture best practices.
