Sardine.Core 1.1.8

dotnet add package Sardine.Core --version 1.1.8                
NuGet\Install-Package Sardine.Core -Version 1.1.8                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Sardine.Core" Version="1.1.8" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Sardine.Core --version 1.1.8                
#r "nuget: Sardine.Core, 1.1.8"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Sardine.Core as a Cake Addin
#addin nuget:?package=Sardine.Core&version=1.1.8

// Install Sardine.Core as a Cake Tool
#tool nuget:?package=Sardine.Core&version=1.1.8                

Sardine

Sardine is an open-source framework for developing and executing complex scientific workflows written in C# and built with .NET 8. It is designed to rapidly create and execute data acquisition and processing desktop applications following a modular approach.

Sardine allows the reliable execution of dynamic networks of independent modules - where each module can interface with hardware, process data, or both. It includes integrated logging and UI management, has a low overhead, provides fault-tolerant hardware control, and minimizes downstream delays by providing dedicated data processing queues for each module. Any .NET class can be easily adapted to a Sardine module, facilitating integration with existing codebases.

Our ready-to-use components are available here.

Quick Start

Building a Fleet and Freighting Vessels

using Sardine.Core;
namespace ExampleApplication;

// Create a new Fleet
public class MySystem : Fleet
{

    // Declare Vessel properties that will serve as containers for the components
    public Vessel<CameraService> CameraProvider { get; }
    public Vessel<Camera> ImagingCamera { get; }
    public Vessel<DataSaver> FrameSaver { get; }

    public MySystem()
    {

        // Freight the Vessels by providing both dependencies
        // and build, initializer, and invalidator methods
        CameraProvider = Freighter.Freight<CameraService>(
                builder: () => new CameraService()
                 );

        ImagingCamera = Freighter.Freight<Camera>(
                CameraProvider,
                builder: (provider) => ...,
                initializer: (provider, camera) => ...,
                invalidator: (provider, camera) => ... );

        FrameSaver = Freighter.Freight<DataSaver>(() => ...);
    }
}

Adding a data operation

// Write methods matching one of the data operation signatures
public delegate TOut? Source<out TOut>(THandle handle, out bool hasMore);
public delegate TOut? Transformer<in TIn, out TOut>(THandle handle, TIn data, MessageMetadata metadata);
public delegate void Sink<in TIn>(THandle handle, TIn data, MessageMetadata metadata);

// Add data operation to vessels in the Fleet constructor
public MySystem()
{
...
ImagingCamera.AddSource(CameraFrameSource);
FrameSaver.AddSink(FrameSink);
ImagingCamera.SourceRate = 100;
...
}
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net8.0

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Sardine.Core:

Package Downloads
Sardine.Core.Views.WPF

Sardine WPF addons for building desktop applications.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.1.8 87 2/12/2025