SiLA2.Core
7.1.1
See the version list below for details.
dotnet add package SiLA2.Core --version 7.1.1
NuGet\Install-Package SiLA2.Core -Version 7.1.1
<PackageReference Include="SiLA2.Core" Version="7.1.1" />
paket add SiLA2.Core --version 7.1.1
#r "nuget: SiLA2.Core, 7.1.1"
// Install SiLA2.Core as a Cake Addin #addin nuget:?package=SiLA2.Core&version=7.1.1 // Install SiLA2.Core as a Cake Tool #tool nuget:?package=SiLA2.Core&version=7.1.1
Introduction
.NET 7 implementation of the SiLA2 Standard (https://sila-standard.com/)
- Platform-independent
- SiLA2.Server even runs on embedded Linux Host as recommended AspNetCore-Process
- Feature-To-Proto-Generation by XSLT
- SiLA2 Core Features included in SiLA2.dll
- Additional Features should be part of Feature-Implementation Assemblies (just add your features and protos in MSBuild Targets ProtoPreparation & ProtoGeneration like it is done in Assemblies TemperatureController.Features.csproj or ShakerController.Features.csproj)
- Extensible InProcess Server Web Frontend included (based on Blazor (https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor) which supports "server push" functionality)
- Optional InProcess-Database-Module (based on SQLite) with basic User Management which can be easily extended.
- Optional InProcess-Document-Database-Module (based on LiteDB) named SiLA2.Database.NoSQL which can be used as AnIML data storage...
- Optional Inter Process Communication Module (SiLA2.IPC.NetMQ) for Socket Communication...compatible with ZeroMQ (https://zeromq.org/)
- Optional AnIML Module offering the AnIML Domain Model as C# classes generated from official AnIML schemas (https://github.com/AnIML/schemas)
- Optional Component to manage Encryption and Certifcates
If you want to see all the Modules and Components you should start SiLA2.Temperature.Server.App and click >> https://localhost:5001 Running the Server the first time, you´ll have to add an exception to your browser once due to the self-signed certificate which was created by the Server if there´s none.
Prerequisites
- Linux / macOS
- You´ll need the .NET 7 SDK >> https://dotnet.microsoft.com/download/dotnet/7.0
- It´s not necessary to build applications with a GUI but if you do so an IDE like Visual Studio Code ( >> https://code.visualstudio.com/ ) would be convenient
- Windows
- Download free IDE Visual Studio 2022 Community ( >> https://visualstudio.microsoft.com/de/vs/community/ ), use commercial Visual Studio 2022 Version or Visual Studio Code as well
- .NET 7 SDK is included in Visual Studio 2022...if you want to use Visual Studio Code or other IDEs you´ll have to download it on your own (see link above)
Getting Started
- Clone Repo
- Please be sure fetching sila_base submodule by
- checking out the Repository with git-submodules recursively
- git clone --recurse-submodules https://gitlab.com/SiLA2/sila_csharp.git
- or check out the Repository and run following commands
- git submodule init
- git submodule update
- checking out the Repository with git-submodules recursively
- Please be sure fetching sila_base submodule by
- Run gRPC-Server
- SiLA2.Temperature.Server.Basic.App or
- SiLA2.Temperature.Server.App (containing optional WebFrontend- and DatabaseModule)
- After having started the SilaServer process you can also follow Link https://<server-hostname-or-server-ip>:13742 (in Debug-Mode https://localhost:5001) to open a SilaServer-WebFrontend
- In the SilaServer-WebFrontend you´ll find NavigationLink "User Management"-View to use SilaServer-Database. There´s also an example of how Server-Push-Feature can be used...just click on NavigationLink "Temperature" and hit button "Change Temperature"...
- Run SiLA2.Temperature.Client.App connecting automatically to SilaServer
Build your own Project based on official Nuget-Packages
- Created ASP.NET Core Application as SiLA2.Server Project
- Search for & reference SiLA2.* packages found at Nuget.org in Visual Studio or https://www.nuget.org/ ...use at least SiLA2.Core...
- Create *.sila.xml-Feature-File and include it like it was done in Example Project SiLA2.Referencing.Nuget.Features.csproj
- Implement the features you´ve defined in your *.sila.xml-Feature-File in your Feature-Assembly
- Reference your Feature-Assenbly in your SiLA2.Server Project
- Add MSBuild Targets ProtoPreparation & ProtoGeneration in your FeatureAssembly.csproj (like it is done in any of the ExampleFeature.csproj files)
- Create SilA2-Clients communicating with the SiLA2.Server...in this case you might want to use Nuget-Package SiLA2.Client...
Build and Test
- Just build Solution and run as described in "# Getting Started".
- Alternatively you could use the SiLA Universal Client (https://gitlab.com/SiLA2/universal-sila-client/sila_universal_client)...it´s still experimental and it could be possible that you have to register SiLA2 Servers manually by IP yet...
- If you have problems building the solution you might clean your Nuget-Cache by 'rmdir -r %UserProfile%.nuget\packages*' once...
Contribute
It´s Open Source (License >> MIT)...feel free to use or contribute. For Merge-Requests contact me by E-Mail >>> CPohl@inheco.com or Stefan Koch >>> koch@equicon.de
For Open Questions
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
-
net7.0
- Google.Protobuf (>= 3.21.12)
- Makaretu.Dns.Multicast (>= 0.27.0)
- Microsoft.Extensions.Configuration.Binder (>= 7.0.1)
- Microsoft.Extensions.Options (>= 7.0.0)
- Newtonsoft.Json (>= 13.0.2)
- SiLA2.Utils (>= 7.1.1)
NuGet packages (7)
Showing the top 5 NuGet packages that depend on SiLA2.Core:
Package | Downloads |
---|---|
SiLA2.Client
SiLA2.Client Basic Package |
|
SiLA2.Frontend.Razor
Web Frontend Extension for SiLA2.Server Package |
|
SiLA2.AspNetCore
AspNetCore Utilities |
|
Inheco.SiLA2.Incubator.Server.Features
SiLA2 Server Driver including control library of INHECO Single Plate Incubator devices. |
|
SiLA2.Communication
Dynamic Protobuf Generation for SiLA2 Properties and Commands. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
9.0.1 | 111 | 11/17/2024 |
9.0.0 | 117 | 11/13/2024 |
8.1.2 | 236 | 10/20/2024 |
8.1.1 | 403 | 8/31/2024 |
8.1.0 | 845 | 2/11/2024 |
8.0.0 | 827 | 11/15/2023 |
7.5.4 | 549 | 10/27/2023 |
7.5.3 | 788 | 7/19/2023 |
7.5.2 | 780 | 7/3/2023 |
7.5.1 | 436 | 6/2/2023 |
7.4.6 | 674 | 5/21/2023 |
7.4.5 | 470 | 5/7/2023 |
7.4.4 | 471 | 4/28/2023 |
7.4.3 | 783 | 3/29/2023 |
7.4.2 | 330 | 3/29/2023 |
7.4.1 | 356 | 3/29/2023 |
7.3.2 | 486 | 3/10/2023 |
7.3.1 | 819 | 1/22/2023 |
7.2.1 | 537 | 12/30/2022 |
7.1.3 | 417 | 12/29/2022 |
7.1.2 | 399 | 12/29/2022 |
7.1.1 | 440 | 12/27/2022 |
7.0.0 | 693 | 11/9/2022 |
6.4.1 | 825 | 11/7/2022 |
6.3.9 | 3,321 | 10/4/2022 |
6.3.8 | 624 | 10/4/2022 |
6.3.6 | 743 | 9/27/2022 |
6.3.5 | 2,123 | 9/6/2022 |
6.3.4 | 935 | 8/16/2022 |
6.3.3 | 786 | 8/16/2022 |
6.3.2 | 761 | 8/16/2022 |
6.3.1 | 793 | 8/12/2022 |
6.2.5 | 652 | 8/8/2022 |
6.2.3 | 893 | 8/2/2022 |
6.2.2 | 663 | 8/1/2022 |
6.2.1 | 656 | 7/31/2022 |
6.1.0 | 929 | 7/5/2022 |
6.0.12 | 986 | 6/2/2022 |
6.0.11 | 769 | 4/11/2022 |
6.0.10 | 537 | 4/8/2022 |
6.0.9 | 542 | 4/8/2022 |
6.0.8 | 549 | 3/28/2022 |
6.0.7 | 1,166 | 1/29/2022 |