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 :
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
- Gestion de domaines métier (avec validation) sur des champs de classes
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
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
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
).
- Abstraction pour accéder à l'utilisateur connecté (pour ne pas toujours devoir utilisé celui de
HttpContext.User
)
- Divers filtres MVC génériques
- Préconfiguration de la sérialisation JSON
- Intégration d'EF Core dans le système de transaction de
Kinetix.Services
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.