See the Azure Devops CI : https://dev.azure.com/dotmim/Dotmim.Sync
Release and pre-release are hosted on nuget.org : https://www.nuget.org/packages?q=dotmim.sync
Read the full documentation on https://dotmimsync.readthedocs.io/
DotMim.Sync (DMS) is a straightforward framework for syncing relational databases, developed on top of .Net Standard 2.0, available and ready to use within IOT, Xamarin, .NET, UWP and so on :)
Multi Databases | Cross Plaform | .Net Standard 2.0 |
---|---|---|
Here is the easiest way to create a first sync, from scratch :
- Create a .Net Standard 2.0 compatible project, like a .Net Core 2.0 / 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 tables = new string[] {"ProductCategory", "ProductDescription", "ProductModel", "Product", "ProductModelProductDescription",
"Address", "Customer", "CustomerAddress", "SalesOrderHeader", "SalesOrderDetail" };
// Sync agent
SyncAgent agent = new SyncAgent(clientProvider, serverProvider, tables);
do
{
var result = await agent.SynchronizeAsync();
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 !
-
To build this repository, just run
dotnet build
-
then start up the MSSQL and MySQL databases required for the integration tests using
docker-compose up
(ordocker-compose up -d
in case you want it to run in the background) -
finally run
dotnet test -v n
where-v n
means "verbosity n[ormal]". Otherwise it would be m[inimal] and the console won't show any output
It won't get any easyer ;-)
- 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