Open Sdelausnay opened 2 years ago
This might indeed be interesting.
In the past, I've started creating a library that cover most of these things. It is found here I can clean it up, and then donate it to Arcus.
Thx @Sdelausnay for the suggestion! We will look how the next steps would be here, but feel free to jump in if you want to take things up yourself.
Working on something for background jobs so we can register and test easy ModuleClient
implementations, plus shutdown based on this library you started.
@Sdelausnay : are you looking for a template which can be used from VS.NET, and generates the basic C# class for a iotedge module with best practices applied ?
Like, when you have an iotedge project in VS.NET, and you want to create a new module:
And in the above screen you have an option like 'Arcus IoT Edge Module', which generates the necessary code files in where we already implement some best practices ?
Is that what you're looking for ?
I think it would already be a good starting point if we can migrate the lib I've written to Arcus, and then have a look if we can create a template for IoT Edge modules and integrate that in VS.NET
As I was further investigating this, I learned that the VS.NET tools for IoT Edge modules are being deprecated / put in maintenance mode.
https://github.com/microsoft/vs-azure-iot-edge-docs/issues/42
CLI templates seem to be the way forward, so I'll take a look at that.
I've started creating a basic template for iotedge modules on my own github account. Once everything is a bit more mature, I can transfer it to Arcus. https://github.com/fgheysels/Fg.IoTEdge.Template
The dotnet template to create IoT Edge Modules has been updated with most of the suggestions: dotnet6, background-worker, ILogger, etc..
https://github.com/Azure/dotnet-template-azure-iot-edge-module
The current template is IoT Edge modules is very limited would be good if we could have one with some more best practices like
Microsoft has implement some of these things, but not published as Nuget Package https://github.com/Azure/iotedge/tree/main/edge-util/src/Microsoft.Azure.Devices.Edge.Util