Skip to content

A collection of libraries that implement a client-server system used for synchronizing data from a cloud-based database.

License

Notifications You must be signed in to change notification settings

CommunityToolkit/Datasync

Repository files navigation

🧰 Datasync Toolkit

The Datasync Community Toolkit is a collection of libraries that implement a client-server system used for synchronizing data from the database table. The Datasync Community Toolkit is a member of the Community Toolkit organization and published under the dotnet Foundation.

Currently, the library supports:

The client platforms that have been tested include:

We support most databases that are supported by Entity Framework Core, along with an in-memory store and LiteDb. Support for additional database types is easily added through our flexible repository pattern.

Other platforms may work, but have not been tested.

πŸ™Œ Getting Started

Please take a look at the tutorials included in our documentation.

You can easily get started by using the dotnet new command to create a new datasync server. The template pre-configured ASP.NET Core, Entity Framework Core, and the Datasync server libraries. To install the template:

dotnet new -i CommunityToolkit.Datasync.Server.Template.CSharp

To create a project:

mkdir My.Datasync.Server
cd My.Datasync.Server
dotnet new datasync-server

πŸ“¦ NuGet Packages

The following NuGet packages have been published:

Package Version Downloads
CommunityToolkit.Datasync.Client Client Library Version Client Library Downloads
CommunityToolkit.Datasync.Server Core Library Version Core Library Downloads
CommunityToolkit.Datasync.Server.Abstractions Abstractions Library Version Abstractions Library Downloads
CommunityToolkit.Datasync.Server.Automapper Automapper Library Version Automapper Library Downloads
CommunityToolkit.Datasync.Server.EntityFrameworkCore EFCore Library Version EFCore Library Downloads
CommunityToolkit.Datasync.Server.InMemory InMemory Library Version InMemory Library Downloads
CommunityToolkit.Datasync.Server.LiteDb LiteDb Library Version LiteDb Library Downloads
CommunityToolkit.Datasync.Server.NSwag NSwag Library Version NSwag Library Downloads
CommunityToolkit.Datasync.Server.Swashbuckle Swashbuckle Library Version Swashbuckle Library Downloads

Running Live Tests

The test suite for the library includes "live tests" against real servers that are not normally run. To run those tests, you will need access to an Azure account (you can sign up for one for free):

  1. Install the Azure Developer CLI
  2. Run azd up in a command line.

This script will create several resources. The cost of running those resources is approximately $40/month (US dollars). However, you will only have to run the services for less than an hour, so the cost of testing the library should be minimal. The process will create a .runsettings file in the tests directory which you can use to enable the live testing.

Live testing can be run using the Visual Studio Test Explorer or via dotnet test.

Once you have completed running the tests, you can remove the created services using azd down. This will also remove the .runsettings file so that live tests are not attempted any more.

NOTE: The .runsettings file contains secrets. It should not be checked in. We have added this file to the .gitignore to ensure that it is not checked into public GitHub repositories.

🌍 Roadmap

Read what we plan for next iterations, and feel free to ask questions.

πŸš€ Contribution

We welcome community contributions. Check out our contributing guide to get started.

πŸ“„ Code of Conduct

This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. For more information see the .NET Foundation Code of Conduct.

🏒 .NET Foundation

This project is supported by the .NET Foundation.

History

The Datasync Toolkit used to be known as Azure Mobile Apps. You can find the code for previous (unsupported) versions of the library at the old repository.

About

A collection of libraries that implement a client-server system used for synchronizing data from a cloud-based database.

Resources

License

Code of conduct

Stars

Watchers

Forks

Languages