Thanks for stopping by.
As a hands-on learner, I sometimes tinker/build when I have the time.
These are some of the projects I've worked on previously:
C#/.NET
Loan Calculator
A very quick .NET-Angular refresher, with an EMI (Equal Monthly Installation) approach to calculating the Loan Repayment Schedule.
Includes Strongly-Typed ValueObjects, Unit Tests and .NET Aspire.
Strong Typing with Value Objects
Some exploration into Strong Typing in C#.
Equality checks with Reflections used in overriding GetHashCode() - here.
USB
Explored a couple of different ways to get details on connected USB devices, including via a PowerShell instance.
Also built XML documentation of code.
"Project WebSot"
A quick build to understand WebSockets across 2 of the more popular WebSocket Libraries, namely Fleck for the Server and WebSocket-Sharp for the Console Client.
In hindsight, could've chosen a better Client Library for better feature support, e.g. custom HTTP Headers.
"Project WWImporters"
Some exploration into Clean Architecture and EFCore started here.
Features:
- Reverse-scaffolded the Microsoft example WideWorldImporters DB.
- Added ability to run SQL Scripts (including StoredProcedures) after EF Migrations.
- Added Unit Tests to strictly enforce Clean Architecture at a high level.
Other Notes:
- SystemConfig Tables can be seeded with default values OnCreate.
- History Table handling approach pending.
- Data archiving approach pending.
- "Disposable" DB containers can be introduced for Integration Unit Testing - apparently it's common for Azure projects.
- Noted that the original design still had primitive obsession to be resolved.
DataPOC
A quick POC Solution for generating Documentation of DB Schema. Supports MarkDown, JSON as well as Excel outputs. While MarkDown and Excel were chosen as the default human-readable options, JSON was included in the scope for future extensibility to support Azure Data Factory mappings.
One possible practical use of this Project is to be a Nuget Package that, upon pipeline build, sends the blobs (or streams of bytes?) to update Wikis and other documentation.
React/JavaScript
Countdown Timer
Inspired by several brilliant Frontend Developers on my team, I decided to tinker a little with React and JavaScript.
A preference for going with custom SVGs instead of using D3 is still held; intending to revisit this when it's time for more Frontend/JavaScript practical sessions.