plc4x icon indicating copy to clipboard operation
plc4x copied to clipboard

Release of next upcomig version, documentation and .NET based programming

Open masesdevelopers opened this issue 8 months ago • 6 comments

We seen that .NET version of this project is declared not ready for usage - abandoned, but Java version is actively developed. We are working on the porting of this project to .NET using the Java artifacts; our PLC4Net project uses the Java artifacts, after an automatic conversion, to export almost all API available in Java: so a C# developer can use the classes with a closest syntax to the one of the Java side; we have three kind of possible usages:

  • .NET application (Framework or Core)
  • CLI: REPL, scripting
  • PowerShell

Project clarification

To better clarify, our project starts an embedded JVM and, using wrapping classes, interacts with the JVM using the latest available Java artifacts. So, expects for specific cases, most of the classes are the same of Java one, both issues and improvements are directly inherited from the Java side.

Next release

We have released a first version based on the latest available release (0.12.0) and we started to align the code to the head of your development branch.

When will be released the version 0.13?

Documentation

About documentation we have some questions to be asked.

Support

Is it possible to add our references in https://plc4x.apache.org/plc4x/latest/users/commercial-support.html? It is stated:

Who can be added to this list?

Anyone who provides Apache PLC4X related services can be added to this list (e.g. training, consulting, custom software development, support, installation or related services).

however there are broken links in:

Please create a Pull-Request on GitHub as described here. The resource requiring editing can be found here

Protocols

The C# support in https://plc4x.apache.org/plc4x/latest/users/protocols/index.html is unavailable, can we add a reference to our project together with the possible usage of PowerShell as a scripting language like python?

Examples

In our project we port the same examples borrowing them from Getting Started with Java: is it possible to report them in Getting Started with C#? Or adding just a reference to them?

masesdevelopers avatar Mar 30 '25 16:03 masesdevelopers

Hi (I guess you're not called massdevelopers),

thanks for reaching out and thanks for putting in the time to implement such a feature. In the past we had discussed a similar approach, but decided that we'd not want to wrap a leading implementation in other languages. And yes ... our C#/.NET version is indeed quite stale, as everyone working on it seems to have disappeared. So your wrapper definitely is closing a gap.

However I see a problem with the name. PLC4X and our sub-projects PLC4J, PLC4Go, PLC4Py, PLC4C are considered trademarks of the Apache Software Foundations. PLC4Net just is a bit too close to our usual naming scheme to have me be comfortable with that. Would you folks be ok with renaming it to something like ".Net wrapper for Apache PLC4X" or similar?

chrisdutz avatar Mar 31 '25 06:03 chrisdutz

Have you considered contributing your plc4net to the Apache PLC4X project? In that case I guess the name would not be an issue ;-)

chrisdutz avatar Mar 31 '25 07:03 chrisdutz

However I see a problem with the name. PLC4X and our sub-projects PLC4J, PLC4Go, PLC4Py, PLC4C are considered trademarks of the Apache Software Foundations. PLC4Net just is a bit too close to our usual naming scheme to have me be comfortable with that. Would you folks be ok with renaming it to something like ".Net wrapper for Apache PLC4X" or similar?

No problem about renaming and it is quite simple. Even on KNet project we worked on it to avoid trademarks related to Apache Foundation. In their answer an acceptable form needs a for before the trademark like in your proposal.

thanks for reaching out and thanks for putting in the time to implement such a feature. In the past we had discussed a similar approach, but decided that we'd not want to wrap a leading implementation in other languages. And yes ... our C#/.NET version is indeed quite stale, as everyone working on it seems to have disappeared. So your wrapper definitely is closing a gap.

It is not clear from your answer if it is possible to work on documentation to add some references to our project, surely after renaming/reviewing.

Have you considered contributing your plc4net to the Apache PLC4X project? In that case I guess the name would not be an issue ;-)

Yes, that option was considered, however for some reasons we have abandoned the idea:

  • the project structure and workflows are quite similar to all of our managed projects: there is a schema defined and applied
  • our project strongly uses other projects/products (one is JNet)

A contribution can be given on open aspects such as OpenProtocol, e.g. Open-Protocol (Torque-Tools) is declared as work in progress

masesdevelopers avatar Apr 01 '25 16:04 masesdevelopers

HI,

perfect ... I just wanted to make sure we get the trademark stuff sorted first.

About your question regarding being added to the commercial support page ... I'll look into the broken links. But right now you need to know that this list can only be an informational list. So no "advertising" ist allowed (Just noticed that I need to update the entry for Timecho ;-) ). I think the other entries can give you a hint on what's allowed. The process it pretty simple: You simply create a pull-request for modifications on this page: https://github.com/apache/plc4x/blob/develop/website/asciidoc/modules/users/pages/commercial-support.adoc and send it in for review.

And ... if you contribute to PLC4X and get invited because of that, you can even add an "involvement level" ;-)

Help with the open-protocol implementation would be awesome ... I had already started implementing the mspec (https://github.com/apache/plc4x/blob/develop/protocols/open-protocol/src/main/resources/protocols/openprotocol/open-protocol.mspec) and the drivers (https://github.com/apache/plc4x/tree/develop/plc4j/drivers/open-protocol/src/main/java/org/apache/plc4x/java/openprotocol), but abandoned my work on it at that time because of issues with my former employer ... I might even be able to help with that. I've actually even got an Atlas Copco device here ;-)

chrisdutz avatar Apr 01 '25 16:04 chrisdutz

HI,

perfect ... I just wanted to make sure we get the trademark stuff sorted first.

The project was entirely updated and becomes PLCOnNet.

About your question regarding being added to the commercial support page ... I'll look into the broken links. But right now you need to know that this list can only be an informational list. So no "advertising" ist allowed (Just noticed that I need to update the entry for Timecho ;-) ). I think the other entries can give you a hint on what's allowed. The process it pretty simple: You simply create a pull-request for modifications on this page: https://github.com/apache/plc4x/blob/develop/website/asciidoc/modules/users/pages/commercial-support.adoc and send it in for review.

More than one PR will be created then you will accept, comment or refuse based on the project/site policies.

And ... if you contribute to PLC4X and get invited because of that, you can even add an "involvement level" ;-)

Help with the open-protocol implementation would be awesome ... I had already started implementing the mspec (https://github.com/apache/plc4x/blob/develop/protocols/open-protocol/src/main/resources/protocols/openprotocol/open-protocol.mspec) and the drivers (https://github.com/apache/plc4x/tree/develop/plc4j/drivers/open-protocol/src/main/java/org/apache/plc4x/java/openprotocol), but abandoned my work on it at that time because of issues with my former employer ... I might even be able to help with that. I've actually even got an Atlas Copco device here ;-)

A previous work is an OpenProtocol plugin tested on field with many Stanley devices.

Next release

We have released a first version based on the latest available release (0.12.0) and we started to align the code to the head of your development branch.

When will be released the version 0.13?

The discussion https://github.com/apache/plc4x/discussions/1949 asks the same question: do you have an estimated release date? We can merge https://github.com/masesgroup/PLCOnNet/pull/29 on master, however if the next release will be made soon the https://github.com/masesgroup/PLCOnNet/pull/29 will wait.

masesdevelopers avatar Apr 14 '25 19:04 masesdevelopers

Hi ,

I see absolutely no issues with that name ... thanks for making this so easy for us ;-) (I always hate to have trademark-discussions ;-) )

So far I see no PR, so I can't accept it ... I'll also update the commercial support part due to me changing companies.

Also I'd love to get some help with the openProtocol, I guess from a maintainability perspective ... could you help with finalizing the mspec-based driver? Because, only the mspec versions are truely portable to other languages.

And regarding the release ... I just finalized the prerequisite for a new release (releasing the build-tools 1.8.0) ... however the "Project" on openCollective, that I setup hasn't yet received even a single cent. (https://opencollective.com/friends-of-toddy/projects/create-release-0130) I was planning on doing things this way, this time as the preparation of doing a release is actually quite a bit of work (Especially with our now 3 repositories) ... Updating the release scripts, updating the release notes, double checking everything, ... A lot of that I have already done, this campaign is more or less rewarding that work I put into that. I could probably promote the campaign explicitly, but besides the S7CommPlus driver campain, nothing really gained any traction :-/

chrisdutz avatar Apr 14 '25 19:04 chrisdutz