Everything a database sync project needs
SyncStudio builds on the Microsoft Sync Framework and adds the configuration, provisioning, code generation, deployment and client tools it lacks, so you can focus on your app instead of sync plumbing.
Sync Management Console
The SyncStudio SMC is where you define a sync project. Connect to your SQL Server database, choose the tables, fields, filters and sync rules, and the console generates, compiles and deploys a custom sync web service to IIS. No code to write and no manual adjustments.
Database Sync Configuration
Check the tables you want to sync and, if you like, choose a subset of fields. Each table can be bi-directional (the default), download-only or upload-only, and the choices are saved in your sync project file. Server data types are mapped to the closest client type automatically.
Automatic Database Provisioning
Provisioning prepares a database for sync by adding change-tracking tables, triggers and stored procedures. SyncStudio provisions and de-provisions for you, so the Microsoft Sync Framework details stay out of your way.
Data Filtering
Send each client only the rows it needs, set table by table. Simple filtering routes rows by user group with one added field; advanced filtering lets you write your own criteria, such as territory or region, in the generated selection procedure.
Automatic Code Generation
Press Generate Code and SyncStudio builds a complete server-side sync service tailored to your database structure. There is nothing to edit or compile by hand.
Automated Sync Server Deployment
A built-in deployment tool moves the generated web service to IIS and configures it. You can also copy the build folder to IIS yourself if you prefer.
Automatic Client Database Creation
On a client’s first sync, SyncStudio sees that the local database doesn’t exist, downloads the schema and builds it, with every table, field and index in your sync project. No client-side setup code.
Automatic Schema Synchronization
When server structures change, clients pick up the changes the next time they sync. Changes that don’t break sync are applied transparently, so you don’t have to ship schema-update code to every device.
True Bi-Directional Sync
SyncStudio exchanges only new and changed records in both directions. After a client’s first full download, each sync moves just the changes and delete instructions, which keeps bandwidth and data costs down.
Built-in Batching
Uploads and downloads move in small batches with no configuration, so a large database never has to fit in a device’s memory at once. Client storage, not RAM, is the practical limit.
Session-Level Transactions
Every sync session is applied as a single transaction, even across many batches. Either all the changes commit or none do, so an interrupted sync never leaves the server half-updated.
Minimal Client Configuration
A client needs a sync profile with the server URL, a user ID and a password. Your app doesn’t have to create the database or track schema upgrades; it only needs to compare the database version with its own.
Client Libraries and Sample Clients
Universal sync client libraries for Android, iOS, Basic4Android, Xamarin, .NET MAUI and Windows, plus sample sync client apps with full source code that you can use as is or as a starting point.
Logging and Reporting
The client software includes logging, tracing and error handling, and supports multiple sync profiles, so one device can sync databases for several apps.
No Cloud Charges
SyncStudio is software you install on your own server or on Windows hosting you choose. There are no per-record or cloud sync fees; your costs are your hosting, bandwidth and storage.
Provisioning, explained up front
Any change to the structure of a synchronized table, or to which tables and fields you sync, means de-provisioning the database, making the change, re-provisioning, and regenerating and redeploying the server code. SyncStudio handles each step from the console.
De-provisioning clears the server’s record of each client’s sync state, so clients do a full download on their next sync. For large databases, a common tip is to add a few reserved fields and tables in your first release and sync them empty; you can put them to use later without a re-provisioning cycle. Changes to tables you don’t sync never require re-provisioning.
What the Sync Framework expects
- Every synchronized table needs a primary key
- Use uniqueidentifier keys instead of auto-increment integers for rows created on devices
- Foreign keys are fully supported; include every table in the relationship and set the sync order
- Table, field and index names can’t contain special characters such as $ or spaces
- Fields you don’t sync must allow nulls or have a default value
- Geography and geometry fields sync to SQL Server and SQL LocalDB clients, but not to SQLite
Read the SyncStudio FAQ
See SyncStudio on your own database
Download the free developer version, or tell us about your project and we’ll show you how it fits.