Dot Net
Historique et Présentation
.NET est une plateforme logicielle développée par Microsoft, qui fournit un environnement d’exécution et un ensemble d’objets techniques pour créer et exécuter des applications métiers. L’architecture .NET prend en charge plusieurs langages tels que C# ou Visual Basic, et offre un cadre robuste pour le développement d’applications web, de métiers, mobiles et de services.
À la base de la plateforme .NET se trouve le Common Language Runtime (CLR), qui fournit un environnement d’exécution géré pour exécuter le code .NET. Le CLR gère la compilation, la gestion de la mémoire, la sécurité, et d’autres aspects de l’exécution des applications .NET.
.NET propose également une bibliothèque de classes, appelée Framework .NET, qui offre un large éventail de fonctionnalités prêtes à l’emploi pour le développement d’applications. Cette bibliothèque de classes fournit des API pour le traitement des chaînes, l’accès aux bases de données, la gestion des fichiers, la communication réseau, la sécurité, et bien plus encore.
En outre, .NET comprend des outils de développement intégrés tels que Visual Studio, un environnement de développement intégré (IDE) riche en fonctionnalités qui facilite la création, le débogage et le déploiement d’applications .NET.
Depuis 2004, les équipes IORGA Group utilisent les architectures .NET pour répondre aux besoins spécifiques de prospects ou clients qui le souhaitent. Au travers de ces expériences, la polyvalence, les performances et la fiabilité de .NET ont pu être vérifiées et « exploitées » au mieux.
Au sein des environnements IT, .NET est largement utilisé pour le développement d’une grande variété d’applications, allant des petites applications aux grandes solutions d’entreprise.
Architecture « classique » et « complète »
L’architecture standard, d’une application métier .Net réalisée par les équipes iORGA est la suivante :
1. Couche de présentation (Front-end)
-
-
- Technologies utilisées : HTML, CSS, JavaScript, avec des frameworks comme Angular, React, ou Blazor
- Il s’agit de la couche responsable de l’interface utilisateur. Elle présente les données aux utilisateurs et permet de saisir, compléter ou modifier les datas de l’application pour les transmettre à la couche serveur via des requêtes HTTP.
-
2. Couche serveur (Back-end)
-
-
- Technologie principale : .NET Core ou .NET 5/6/7, le langage utilisé est C#
- Il s’agit de la couche qui
- traite les données envoyées par les écrans (couche précédente),
- applique la logique métier,
- interagit avec la base de données
- renvoie les résultats à l’utilisateur.
-
Elle est généralement en plusieurs sous-couches :
-
-
-
- Controllers : Reçoivent les requêtes HTTP et envoient les réponses après traitement.
- Services : Contiennent la logique métier spécifique et sont appelés par les controllers.
- Data Access Layer (DAL) : Code qui interagit directement avec la base de données. Nous utilisons, lorsque le contexte le permet souvent l’Entity Framework pour la mappage objet-relationnel (ORM).
-
-
3. Couche de données
-
-
-
- Système de gestion de base de données relationnelle (SGBDR) : SQL Server, PostgreSQL, MySQL, etc.
- Il s’agit de la couche stockant et gèrant les données de l’application. Elle est conçue, en fonction du besoin métier, pour être robuste, fiable et performante.
-
-
4. Infrastructure
-
-
-
- Serveur web : IIS (Internet Information Services) est couramment utilisé pour les applications .NET, bien que Kestrel puisse être utilisé comme serveur web interne en association avec un reverse proxy comme Nginx ou Apache.
- .NET Core/.NET est exécuté sur le serveur pour traiter les requêtes, exécuter la logique d’application, et interagir avec la base de données et d’autres services.
-
-
5. Sécurité
-
-
-
- Authentification et autorisation : souvent gérées via IdentityServer ou ASP.NET Identity pour .NET, qui supportent des protocoles standards comme OAuth 2.0 et OpenID Connect.
- Communication sécurisée : Utilisation de HTTPS pour sécuriser les échanges de données entre le client et le serveur.
-
-
6. Déploiement et opérations
-
-
- Conteneurisation : Utilisation de Docker pour conteneuriser l’application et ses dépendances, facilitant ainsi le déploiement et la gestion.
- Orchestration : Kubernetes peut être utilisé pour gérer les conteneurs à grande échelle.
-
Les applications spécifiques réalisées par les équipes iORGA ont pu être déployées sur des environnements cloud (Azure ou AWS) ou sur des serveurs hébergés par nos clients.
Depuis de nombreuses années, les processus de développement continu (CI/CD) sont intégrées dés le lancement du projet afin d’améliorer le flux entre les activités de développement et de déploiement.