I haven’t posted in a while, so I thought it would be good to update what I have been up to.
I have been working on a lot of projects that I hope help the community. I have released two nuget packages and one npm package. The source code to all this and more can be found on my GitHub https://github.com/erenken
Doing these projects, I learned a lot about GitHub Actions and Workflows. How to properly version and deploy code to nuget.org, npmjs.com, and Azure Static Websites. I have fully automated CI/CD pipelines for these projects.
Remootio Angular Service
This is the npm package I created. It is an Angular service I created that works with the Remootio smart gate and garage door controller. I based this service off of the Remootio API Client for Node.js, but tweaked it to work with Angular 15. I haven’t had any feedback from the community on this yet, but I know it works really well for my personal projects.
You can view the README and documentation for this service here Remootio Angular Service.
If you want to interface with the Remootio IoT device and use Angular I think this service will work really well for you.
This is one of the nuget packages I created. It is a .NET Core library for communication with the Davis WeatherLink API. I recently updated my weather website Redfield Weather, yes again. I wanted that site to get its data from the Davis WeatherLink devices I have, so I created a library. I could have just built it all into my website and Azure Function directly, but I saw that Davis only had SDKs for Java, PHP, and Python, so I thought it would be nice to have a .NET Core version.
You can view the README and documentation for this service here myNOC.WeatherLink.
This is used an Azure Function that pulls data from the API and stores it in Azure Table Storage. I use the table storage for historical data displays on Redfield Weather and for current weather data. You can view the code for the website here redfieldWeather on GitHub. This was my first React website, so it could use some more updating. Like any good coding project, it is never done.
This was my second nuget package. This package was more of exercise project than something that I needed. This Query Pattern is something I got from listening to a .NET Rocks episode #1494 Developer Tips and Design Patterns with Steve Smith. Steve Smith talks about the Specification Pattern at 49:50 in the podcast, and that is what inspired this.
The hope of this project was to help developers. To show them a way to tackle a problem or give them another solution to help. What Steve describes is a problem we saw in our projects. Developers would keep adding more methods to the repository or keep adding JOINs to a result because they need this one other column added to an already returning list. This will start to overly complicate the original list. For example, you already have a screen that shows the list of users, and if they are active or not. Now, some other screen needs the list of users and wants the security role or permissions that user has also displayed. What happens often is someone just goes and modifies that original user list and adds this other data. So, where you needed a simple quick list of users, it is now a list doing way more.
You can view the README and documentation for this service here myNOC.EntityFramework.Query.