...
Entity Framework Core
For handling data in an easy, code first approachMediatR
For handling messaging internally when the different areas of the code need to communicateFluent Validation
Rule and data validation engine for the backend / APIAutomapper
For mapping object in the code, to not do it manually, it also offers object property filtering and transformation in an easier way than writing it from scratchSerilog
In the core election code, this is used for capturing errors and formatting them correctly.
In OS2Valghalla 3.0 we will extend it to also capture other events.RabbitMQ
Queue library for use in different scenarios where it would be necessary to have a queue, like sending digital post and automatically updating participant core data.MassTransit
Is to RabbitMQ layer what MediatR is for the database layer, an abstraction layer to easier code against RabbitMQ.
It supports multiple queue solutions so is should be easier to replace RabbitMQ in the future is that is what is required.ITfoxtec Identity Saml2
A SAML library. This implementation is being maintained and it supports Context Handler and MitID handling. More info: https://www.itfoxtec.com/
Frontend
Angular
Selected Frontend JavaScript libraryAngular Material
Components and visualization library for Angular.SubSink
Sbuscription framework to handle subscription (create, remove, change) on controls, components, elements, variable etc.
With an easy model to register and unregister subscriptions.Transloco
Framework for handling languages in the solutionObservable store
Frontend state framework that can be used with SubSink to make powerful state aware solutionsTailwind CSS
Used where Angular materials lack sufficient control or is difficult to work with.designsystem.dk
Danish HTML, CSS and JavaScript framework targeted public (government, municipal or other public institutions) systems
We will primarily be using the CSS.
Test
NetArchTest
An easy framework to create coded rules for unit testing.