# Introduction

Our .NET SDK is called Core (opens new window), and it's part of our SpeckleSharp repo (opens new window).

Core is written in .NET Standard 2.0, it's been tested on Windows and MacOS and it's being used by all our .NET based connectors.

TIP

Core is available on NuGet as Speckle.Core.

# Getting started

Core and Objects are written in .NET Standard 2.0, before using them please make sure they are supported by your .NET framework (opens new window).

We have published various Nugets to make it simpler to use Speckle in your next .NET project. Here's what's available at the moment:

  • Core
  • All Transports
  • Objects
  • All Objects Converters

All our nugets are prefixed by Speckle.

# How to use

We'll soon be adding here plenty of examples on how to use Core, in the meantime the best way to explore its functionalities is to check out the unit and integration tests in the repo.

Here's a quick summary of the main tasks Core helps you with:

  • sending and receiving data to and from multiple transports
  • serialization and deserialization
  • speckle kit management (the interoperability core)

Server specific tasks:

  • stream, branch and commit api calls
  • update notifications (subscriptions)
  • local account management

# Structuring Your Data 🚧

Speckle allows you to structure your data in any way you like. Here's a quick example:

using Speckle.Core.Models;

var myBuilding = new Base()

myBuilding[ "@floors" ] = myFloors;
myBuilding[ "@walls" ] = myWalls;
myBuilding[ "name" ] = "Southwood Park"

1
2
3
4
5
6
7
8

The Base object behaves like a dictionary - with some added Speckle smarts - and lets you organically compose your data in any way you want.

TIP

For more advanced usage, check the tests out (opens new window)!

TODO: Creating a simple class that extends Base

# Serializing Data 🚧

Getting a JSON representation of your data is easy:

using Speckle.Core.Api;
using Speckle.Core.Models;

var serlializedBuilding = Operations.Serialize( myBuilding );
var deserializedBuilding = Operations.Deserialize( serlialisedBuilding );

1
2
3
4
5
6

TIP

For more advanced usage, check the serialisation tests out (opens new window)!

# Sending Data 🚧

TODO

TIP

For more advanced usage, check out the integration tests (opens new window)!

# Receiving Data 🚧

TODO

TIP

For more advanced usage, check out the integration tests (opens new window)!