eclipse-basyx / basyx-dotnet

5 stars 3 forks source link

Project status #2

Open arteeh opened 1 month ago

arteeh commented 1 month ago

Hello, does the .NET variant of the BaSyx SDK no longer have a maintainer? And is the current version of the .NET SDK still compatible with the API's of version 1.5.1 of the Registry and Server applications?

I'm getting weird bugs where I query the registry or a server and my program just gets stuck or crashes. I've also come across situations where I request a list of shells or submodels, and I get back an incomplete list. I'm not sure if it's a bug with the BaSyx programs, this library or just an incompatibility between the two.

Whenever i've come across these bugs, I would just write my own request with HttpClient, using EnvironmentAssetAdministrationShell_V2_0 and EnvironmentSubmodel_V2_0 as the models for the JSON's I'm receiving. But doing that comes with the hassle of trying to convert it to a normal (I)AssetAdministrationShell or (I)Submodel, and on occasion this approach also leads to empty objects, as if the incoming JSON doesn't match any of the SDK's provided models.

If this project is really abandoned, then it might be better to advise .NET developers to grab the models from the Swagger API documentation (assuming those are up to date) and implement the Registry/Server interactions manually.

Another option could be to instead grab libraries from the package explorer, but I've noticed some differences between an AAS json produced by BaSyx and one by the AASX Explorer. For AAS version 2 I couldn't create a shell in the explorer and upload its JSON using the BaSyx AAS Server API.

PS. I also took the detour of trying to get the Java SDK working in C# using IKVM, but sadly it only supports Java 8 and lower, and BaSyx seems to rely on features in Java versions above 8. See issue: https://github.com/ikvmnet/ikvm/issues/530

arteeh commented 1 week ago

We've switched to the BaSyx V2 snapshots, making this SDK totally incompatible for me.

As an alternative I fed the new BaSyx OpenAPI specs (found on e.g. localhost:****/swagger-ui/index.html#/) into Kiota, a client code generator. It seems to work pretty well for me.