Kinetix (pour .NET 6)
Kinetix est un ensemble de modules destiné à enrichir une application .NET de fonctionnalités transverses pour simplifier certaines opérations courantes. Ces modules sont relativement indépendants et peuvent donc être intégrés unitairement.
Ci-dessous, la liste des fonctionnalités disponibles par module :
Kinetix.Services
Divisés en deux modules :
Fonctionnalités :
- Enregistrement automatique des services via les annotations
[RegisterContract]
,[RegisterImpl]
et la méthode d'extensionAddServices()
- Intégration d'intercepteurs (optionnels) sur les services pour y intégrer des fonctionnalités transverses (transactions, logs...)
- Gestion transverse de "contextes de transaction" pour rattacher de l'état à une transaction courante et implémenter des actions au commit.
- Manager de listes de références avec cache
- Manager de services de téléchargement de fichiers
Kinetix.Modeling
![NuGet Badge](https://camo.githubusercontent.com/1ec1564e3ea6d58872cb746011ce22060f53432bee8de34d433739fe73efc845/68747470733a2f2f62616467656e2e6e65742f6e756765742f762f4b696e657469782e4d6f64656c696e67)
- Gestion de domaines métier (avec validation) sur des champs de classes
Kinetix.Search
Divisé en trois modules :
Fonctionnalités :
- API de recherche avancée à facettes
- Gestion de l'alimentation (transactionnelle) de l'index de recherche (implémentée avec
Kinetix.Services
) - Implémentation de l'API avec ElasticSearch 7
Kinetix.Monitoring
Divisé en deux modules :
Fonctionnalités :
- Gestion de logs de services (implémentés comme intercepteur pour
Kinetix.Services
) - Publication des logs dans Azure ApplicationInsights
Kinetix.Reporting
Divisé en trois modules :
Fonctionnalités :
- Génération d'exports Excels à partir de modèles Kinetix (annotés avec
Kinetix.Modeling
et qui utilisent des listes de référence deKinetix.Services
).
Kinetix.User
![NuGet Badge](https://camo.githubusercontent.com/b80429f91250545be7d31c26368b0373aa85e1b1fd234992d632a2f5eb54d822/68747470733a2f2f62616467656e2e6e65742f6e756765742f762f4b696e657469782e55736572)
- Abstraction pour accéder à l'utilisateur connecté (pour ne pas toujours devoir utilisé celui de
HttpContext.User
)
Kinetix.Web
![NuGet Badge](https://camo.githubusercontent.com/3aba55338949d4e5b3c408bea316738b0f63fee6ab560debca066010a9a8f609/68747470733a2f2f62616467656e2e6e65742f6e756765742f762f4b696e657469782e576562)
- Divers filtres MVC génériques
- Préconfiguration de la sérialisation JSON
Kinetix.EFCore
![NuGet Badge](https://camo.githubusercontent.com/20fa71b3f7c54021434d9fea17baf01ed63c30a011640064d261b68b486a21ed/68747470733a2f2f62616467656e2e6e65742f6e756765742f762f4b696e657469782e4546436f7265)
- Intégration d'EF Core dans le système de transaction de
Kinetix.Services
Kinetix.DataAccess.Sql
Divisé en trois modules :
Il s'agit d'un ORM "legacy" (utilisez plutôt EF Core et/ou Dapper), avec une implémentation pour SQL Server et PostgreSQL.
Fonctionnalités :
- Requêtes SQL dynamiques (via une syntaxe spéciale)
- "Broker" pour gérer du CRUD simple sur des modèles persistés.