diff --git a/Kepware-ConfigAPI-SDK-dotnet.sln b/Kepware-ConfigAPI-SDK-dotnet.sln index 9113207..f293df4 100644 --- a/Kepware-ConfigAPI-SDK-dotnet.sln +++ b/Kepware-ConfigAPI-SDK-dotnet.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 18 -VisualStudioVersion = 18.3.11505.172 d18.3 +VisualStudioVersion = 18.3.11505.172 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kepware.SyncService", "KepwareSync.Service\Kepware.SyncService.csproj", "{19B2841F-01D1-4A7E-BE26-A93CF8C57628}" EndProject @@ -13,7 +13,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SolutionFiles", "SolutionFi Directory.Build.props = Directory.Build.props LICENSE.txt = LICENSE.txt README.md = README.md - version.json = version.json EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Kepware.Api", "Kepware.Api\Kepware.Api.csproj", "{ABB368B9-7D95-4946-9579-F7AA7A5750F7}" diff --git a/Kepware.Api/README.md b/Kepware.Api/README.md index 40625b1..f3d4122 100644 --- a/Kepware.Api/README.md +++ b/Kepware.Api/README.md @@ -1,13 +1,14 @@ # Kepware.Api -[![Build Status](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions/workflows/nuget-test-and-build.yml/badge.svg)](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions) [![NuGet](https://img.shields.io/nuget/v/Kepware.Api.svg)](https://www.nuget.org/packages/Kepware.Api/) +![Dynamic XML Badge](https://img.shields.io/badge/dynamic/xml?url=https%3A%2F%2Fraw.githubusercontent.com%2FPTCInc%2FKepware-ConfigAPI-SDK-dotnet%2Frefs%2Fheads%2Fmain%2FKepware.Api%2FKepware.Api.csproj&query=%2F%2FTargetFrameworks&logo=.net&label=versions) +[![Build Status](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions/workflows/nuget-test-and-build.yml/badge.svg)](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions) +![NuGet Downloads](https://img.shields.io/nuget/dt/Kepware.Api?label=nuget%20downloads) ## Overview The `Kepware.Api` library provides a robust client implementation to interact with the Kepware Configuration API. It supports managing channels, devices, tags, and other configurations programmatically while ensuring secure and efficient communication. -This package is designed to work with all versions of Kepware that support the Configuration API including Kepware Server (KS), and Kepware Edge (KE). For reference, Kepware Server in this documentation will also imply Thingworx Kepware Server and KEPServerEX versions prior to v7.0 when v6.x is referenced. - +This package is designed to work with all versions of Kepware that support the Configuration API including Kepware Server (KS), Kepware Edge (KE), Thingworx Kepware Server (TKS), and KEPServerEX (KEP). For reference, when Kepware Server v6.x is referenced in this documentation, this implies Thingworx Kepware Server and KEPServerEX branded products. ## Features 1. Connect to Kepware Configuration APIs securely with HTTPS and optional certificate validation. @@ -20,12 +21,12 @@ This package is designed to work with all versions of Kepware that support the C | **Administration**
*(User Groups, Users, UA Endpoints, Local License Server)* | Y[^1] | Y | | **Product Info and Health Status** | Y[^4] | Y | | **Export Project** | Y[^2] | Y | -| **Import Project (via JsonProjectLoad Service)** | N[^2] | N | +| **Import Project (via JsonProjectLoad Service)[^3]** | N | N | | **Import Project (via CompareAndApply)[^3]** | Y | Y | [^1]: UA Endpoints and Local License Server supported for Kepware Edge only -[^2]: JsonProjectLoad was added to Kepware Server v6.17 and later builds, the SDK detects the server version and uses the appropriate service or loads the project by multiple requests if using KepwareApiClient.LoadProject. -[^3]: CompareAndApply is handled by the SDK, it compares the source project with the server project and applies the changes. The JsonProjectLoad service is a direct call to the server to load a project. +[^2]: Json serialization for the whole project was added to Kepware Server v6.17 and later builds, the SDK detects the server version and uses the appropriate service or exports the project by multiple requests if using KepwareApiClient.LoadProject. +[^3]: CompareAndApply is handled by the SDK, it compares the source project with the server project and applies the changes. The JsonProjectLoad service (added v6.17 and later) is a direct call to the server to load a new project serialize JSON configuration to the server/edge instance. [^4]: Added to Kepware Server v6.13 and later builds 3. Configuration API *Services* implemented: @@ -35,7 +36,7 @@ This package is designed to work with all versions of Kepware that support the C | **TagGeneration**
*(for supported drivers)* | Y | Y | | **ReinitializeRuntime** | Y* | Y | | **ProjectLoad and ProjectSave** | N | N | -| **JsonProjectLoad\*\***
*(used for import project feature)* | Y | Y | +| **JsonProjectLoad\*\***
*(used for import project feature)* | N | N | 4. Synchronize configurations between your application and Kepware server. 5. Supports advanced operations like project comparison, entity synchronization, and driver property queries. diff --git a/Kepware.Api/version.json b/Kepware.Api/version.json index 14b3ad2..2bd0bfe 100644 --- a/Kepware.Api/version.json +++ b/Kepware.Api/version.json @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/dotnet/Nerdbank.GitVersioning/main/src/NerdBank.GitVersioning/version.schema.json", - "version": "1.0-beta", + "version": "1.0", "pathFilters": [ "." ], "publicReleaseRefSpec": [ "^refs/heads/main$", diff --git a/KepwareSync.Service/Properties/launchSettings.json b/KepwareSync.Service/Properties/launchSettings.json index 4b7bf41..40fb1af 100644 --- a/KepwareSync.Service/Properties/launchSettings.json +++ b/KepwareSync.Service/Properties/launchSettings.json @@ -26,6 +26,17 @@ }, "Container (Dockerfile)": { "commandName": "Docker" + }, + // For WSL2, ensure that the distribution name is set to your WSL distribution (e.g., "Ubuntu-20.04") if you + // want to specify the specific distribution to run the project in. If left empty, it will use the default WSL distribution. + // You can find the distribution names and defaults by running `wsl -l -v` in a command prompt. + "WSL": { + "commandName": "WSL2", + "environmentVariables": { + "DOTNET_ENVIRONMENT": "Development", + "MODBUS_HOST": "HostByEnv" + }, + "distributionName": "" } }, "$schema": "https://json.schemastore.org/launchsettings.json" diff --git a/README.md b/README.md index 60759c7..9f41637 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,23 @@ -# Kepware Configuration API SDK for .NET (Currently in Beta) +# Kepware Configuration API SDK for .NET +[![NuGet](https://img.shields.io/nuget/v/Kepware.Api.svg)](https://www.nuget.org/packages/Kepware.Api/) +![Dynamic XML Badge](https://img.shields.io/badge/dynamic/xml?url=https%3A%2F%2Fraw.githubusercontent.com%2FPTCInc%2FKepware-ConfigAPI-SDK-dotnet%2Frefs%2Fheads%2Fmain%2FKepware.Api%2FKepware.Api.csproj&query=%2F%2FTargetFrameworks&logo=.net&label=versions) [![Build Status](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions/workflows/nuget-test-and-build.yml/badge.svg)](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions) +![NuGet Downloads](https://img.shields.io/nuget/dt/Kepware.Api?label=nuget%20downloads) + [![Build Status](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions/workflows/docker-build-and-push.yml/badge.svg)](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions) [![Build Status](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions/workflows/syncservice-build.yml/badge.svg)](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions) -[![NuGet](https://img.shields.io/nuget/v/Kepware.Api.svg)](https://www.nuget.org/packages/Kepware.Api/) + ## Overview The Kepware Configuration API SDK for .NET provides tools and libraries to interact with the Kepware Configuration REST API, enabling configuration management for Kepware servers. This repository includes examples and utilities to streamline development for deployment tools, including a service for continuous synchronization and an API client library. -This package is designed to work with all versions of Kepware that support the Configuration API including Kepware Server (KS), Kepware Edge (KE), Thingworx Kepware Server (TKS), and KEPServerEX (KEP). For reference, Kepware Server in this documentation will also imply Thingworx Kepware Server and KEPServerEX versions prior to v7.0 when v6.x is referenced. +This package is designed to work with all versions of Kepware that support the Configuration API including Kepware Server (KS), Kepware Edge (KE), Thingworx Kepware Server (TKS), and KEPServerEX (KEP). For reference, when Kepware Server v6.x is referenced in this documentation, this implies Thingworx Kepware Server and KEPServerEX branded products. ## Features - [**API Client Library**](./Kepware.Api/README.md): Simplify interaction with the Kepware Configuration API. -- [**Service for Synchronization**](./KepwareSync.Service/README.md): +- [**Service for Synchronization** (Currently in Beta)](./KepwareSync.Service/README.md): - Bi-directional synchronization between Kepware servers and local filesystems. - Support for one-way and two-way synchronization modes. - [**Sample Applications**](./Kepware.Api.Sample/README.md): Demonstrates API usage with real-world examples. @@ -29,7 +33,7 @@ A .NET library providing an easy-to-use client for interacting with the Kepware **API reference documentation is available on [Github Pages](https://ptcinc.github.io/Kepware-ConfigAPI-SDK-dotnet/api/Kepware.Api.html)** -### 2. `KepwareSync.Service` +### 2. `KepwareSync.Service` (Currently in Beta) A service application for synchronizing configurations between Kepware servers and the local filesystem. It supports monitoring and synchronization in real time. [Readme for KepwareSync.Service](./KepwareSync.Service/README.md) diff --git a/docs/nuget-README.md b/docs/nuget-README.md index b3e9a6c..f5e0f06 100644 --- a/docs/nuget-README.md +++ b/docs/nuget-README.md @@ -1,11 +1,13 @@ # Kepware.Api +[![NuGet](https://img.shields.io/nuget/v/Kepware.Api.svg)](https://www.nuget.org/packages/Kepware.Api/) +![Dynamic XML Badge](https://img.shields.io/badge/dynamic/xml?url=https%3A%2F%2Fraw.githubusercontent.com%2FPTCInc%2FKepware-ConfigAPI-SDK-dotnet%2Frefs%2Fheads%2Fmain%2FKepware.Api%2FKepware.Api.csproj&query=%2F%2FTargetFrameworks&logo=.net&label=versions) [![Build Status](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions/workflows/nuget-test-and-build.yml/badge.svg)](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/actions) ## Overview -The `Kepware.Api` library provides a robust client implementation to interact with the Kepware Configuration API. It supports managing channels, devices, tags, and other configurations programmatically while ensuring secure and efficient communication. +The `Kepware.Api` library provides a robust client implementation to interact with the Kepware Configuration REST API. It supports managing channels, devices, tags, and other configurations programmatically while ensuring secure and efficient communication. -This package is designed to work with all versions of Kepware that support the Configuration API including Thingworx Kepware Server (TKS), Thingworx Kepware Edge (TKE) and KEPServerEX (KEP). For reference, Kepware Server in this documentation will refer to both TKS and KEP versions. +This package is designed to work with all versions of Kepware that support the Configuration API including Kepware Server (KS), Kepware Edge (KE), Thingworx Kepware Server (TKS), and KEPServerEX (KEP). For reference, Kepware Server in this documentation will also imply Thingworx Kepware Server and KEPServerEX versions prior to v7.0 when v6.x is referenced. ## Licensing This SDK is provided "as is" under the MIT License. See the [LICENSE](https://github.com/PTCInc/Kepware-ConfigAPI-SDK-dotnet/blob/main/LICENSE.txt) file for details. diff --git a/testEnvironments.json b/testEnvironments.json new file mode 100644 index 0000000..a3e2af5 --- /dev/null +++ b/testEnvironments.json @@ -0,0 +1,12 @@ +{ + "version": "1", + "environments": [ + // See https://aka.ms/remotetesting for more details + // about how to configure remote environments. + { + "name": "WSL Ubuntu", + "type": "wsl", + "wslDistribution": "Ubuntu-24.04" + } + ] +} \ No newline at end of file