{"id":26064781,"url":"https://github.com/syncano/syncano-dotnet","last_synced_at":"2025-10-24T19:48:43.601Z","repository":{"id":20682677,"uuid":"23965785","full_name":"Syncano/syncano-dotnet","owner":"Syncano","description":"syncano client for dotnet","archived":false,"fork":false,"pushed_at":"2015-05-23T00:44:25.000Z","size":3453,"stargazers_count":1,"open_issues_count":1,"forks_count":3,"subscribers_count":13,"default_branch":"master","last_synced_at":"2025-04-11T05:06:00.938Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Syncano.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-09-12T15:25:41.000Z","updated_at":"2015-01-28T22:27:07.000Z","dependencies_parsed_at":"2022-08-19T20:10:20.465Z","dependency_job_id":null,"html_url":"https://github.com/Syncano/syncano-dotnet","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Syncano%2Fsyncano-dotnet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Syncano%2Fsyncano-dotnet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Syncano%2Fsyncano-dotnet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Syncano%2Fsyncano-dotnet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Syncano","download_url":"https://codeload.github.com/Syncano/syncano-dotnet/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248414196,"owners_count":21099437,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-03-08T18:49:22.044Z","updated_at":"2025-10-24T19:48:38.563Z","avatar_url":"https://github.com/Syncano.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Syncano.Net\n## Overview\nSyncano.Net is a .Net library that provides communication with Syncano ([www.syncano.com](http://www.syncano.com/)) via http or tcp.\n\n##Getting Started\n\nTo get started you have to obtain Syncano Instance name and Api Key. This credentials will allow you to connect to Syncano. Basically you have two options to connect:\n\n- over Http using Syncano.Net (Portable Class Library) - [Install-Package Syncano.Net.Http](https://www.nuget.org/packages/Syncano.Net.Http/)\n- over Tcp using SyncanoSyncServer.Net - [Install-Package Syncano.Net.Tcp](https://www.nuget.org/packages/Syncano.Net.Tcp/)\n\n\n##Syncano Rest Api\n\nTo connect to Syncano Rest Api you can use class Syncano.\n\n\n\n    //Create Syncano class\n    var syncano = new SyncanoClient(instanceName, apiKey);\n   \n    //Create new project\n    Project project = await syncano.Projects.New(\"MyNewProject\", \"This is my first project in Syncano.\");\n    \n    //Create collection in project\n    Collection collection = await syncano.Collections.New(project.Id, \"MyNewCollection\");\n    \n    //Create new folder in collection\n    Folder folder = await syncano.Folders.New(project.Id, \"MyNewFolder\", collection.Id);\n    \n    //Create new Data Object in folder\n    DataObjectDefinitionRequest request = new DataObjectDefinitionRequest();\n    request.ProjectId = project.Id;\n    request.CollectionId = collection.Id;\n    request.Folder = folder.Name;\n    request.Title = \"DataObject Title\";\n    request.Text = \"Sample data object text content.\";\n    \n    DataObject dataObject = await syncano.DataObjects.New(request);\n    \n    //Delete Data Object\n    DataObjectSimpleQueryRequest deleteRequest = new DataObjectSimpleQueryRequest();\n    deleteRequest.ProjectId = project.Id;\n    deleteRequest.CollectionId = collection.Id;\n    deleteRequest.Folder = folder.Name;\n    deleteRequest.DataId = dataObject.Id;\n    \n    await syncano.DataObjects.Delete(deleteRequest);\n    \n    //Delete folder\n    await syncano.Folders.Delete(project.Id, folder.Name, collection.Id);\n    \n    //Delete collection\n    await syncano.Collections.Delete(project.Id, collection.Id);\n    \n    //Delete project\n    await syncano.Projects.Delete(project.Id);\n    \n##Syncano Sync Server\n\n\nSyncServer class allows to connect to Syncano Instance over Tcp. SyncServer can perform all operations of Syncano class, for example create and delete projects, collections, folders and data objects. Hovever main adavantage over http is that it supports real time notificaitons. \n\n    //Create and start SyncServer\n    SyncServer syncServer = new SyncServer(instanceName, apiKey);\n    await syncServer.Start();\n    \n    //Subscribe to Default project\n    await syncServer.RealTimeSync.SubscribeProject(projectId, Context.Connection);\n    \n    //Subscribe to recive notifications about new Data Objects\n    syncServer.NewDataObservable.Subscribe(ndn =\u003e\n    {\n    //Access NewDataNotification object\n    });\n    \n    //Unsubscribe\n    await syncServer.RealTimeSync.UnsubscribeProject(projectId);\n    \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsyncano%2Fsyncano-dotnet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsyncano%2Fsyncano-dotnet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsyncano%2Fsyncano-dotnet/lists"}