Use LEFT and RIGHT arrow keys to navigate between flashcards;
Use UP and DOWN arrow keys to flip the card;
H to show hint;
A reads text to speech;
65 Cards in this Set
- Front
- Back
C# |
Orienté objet Dérivé du C++ Typage fort Bonne gestion d'erreur et ramasse miette Pas de pointeurs |
|
Compiler as a Service |
Roselyn Permet la compilation segmentée et intégre une API sur laquelle on peut examiner la compilation pendant |
|
CLI |
Common Langage Infrastructure Permet de fournir langage indépendant de la plate-forme avec CIL et CLR Fonction de gestion d'erreur, ramasse miette, secu et interoperabilité Transformation de langage de haut niveau vers langage spécifique à SE |
|
CIL |
Common Intermediate Langage Orienté objet Très bas niveau Transforme langage haut niveau en bytecode |
|
CLR |
Common Langage Runtime Composant de machine virtuelle qui prends un bytecode et le transforme en code natif exécutable sur le SE |
|
Framework |
Ensemble de composants structurels qui permettent de créer les fondations d'un logiciel, son architecture. |
|
Framework .NET |
Pour faciliter le développement en proposant une approche unifiée de conception + faciliter déploiement et maintenance. Windows only (basé sur CLI Windows) Rétro-compatibilité Installation sur Windows de user obligée |
|
Rétro-compatibilité |
Principe qui implique qu'une API faite avec des versions antérieure devra s'exécuter correctement et sans differences visibles sur des versions plus récentes |
|
Framework .NET Core |
Open-source Exécuter appli .NET sur Windows, Linux et MacOS Pas de rétro-compatibilité Léger car seule les biblis dont on a besoin sont embarquées --> ajout de nugget pour plus de fonctionnalités Cloud native donc meilleures perfs Moteur IOC puissant |
|
.NET Standard |
Specification formelle des API .NET qui doivent être dispo sur toutes les implémentations de .NET (Core, Xamarin) Le but est d'améliorer l'uniformité de .NET en générerant bibli portables Facilité deploiement Augmente reutilisabilite de code |
|
.NET 5.0 |
Ce qui est actuellement utilisé, permet de ne plus avoir de plate-forme particulière selon les utilisations |
|
Solution |
Ensemble de projets composant une appli |
|
Projet |
Brique d'une appli avec du code source dedans |
|
Interface |
Pas besoin de mock Améliorer modularité et secu |
|
Classe abstraite |
Centraliser propriétés et méthodes |
|
Classe partielle |
Bien pour maintenabilité de grosses classes |
|
Linq (Langage Integrated Query) |
Permet interrogation avec syntaxe proche de SQL de donnés dans le framework |
|
Architecture logicielle |
Modèle décrivant comment un système est conçu afin de répondre à des spécifications en se basant sur l'illustration des différents éléments d'un ou plusieurs systèmes informatiques et leurs interactions. Peut être en couches ou microservices |
|
Architecture 3 tiers |
Modèle traditionnel de conception informatique dont les couches sont interconnectées et présentes dans le même serveur. Couche de présentation, métier et donnés. Bon rendement Facile à tester SoC Pas ouf niveau sécurité Cout de déploiement élevé (serveur robuste) Disponibilité bof (si le serveur pete...) Modularité faible (mise à jour de composant = réécriture de tout) |
|
Couche de presentation |
Affichage des donnés pour l'user |
|
Couche metier |
Mise en œuvre des règles de gestion, de logique applicative (calculs) et consolidation de donnés |
|
Couche de donnés |
Contient base de donnés avec laquelle interagir |
|
Architecture micro services |
Réduire complexité du changement pour accroître compétitivité Tout les services peuvent fonctionner sans affecter les autres Bonne modularité car deploiement et conception indépendante des services Interdépendance faible Meilleure disponibilité pour MAJ Compliqué à tester Dépendances à prendre en compte tot |
|
Service |
Fonction clé de l'appli (barre de recherche, recommendations...). Ils communiquent entre eux via Api indépendantes et API gateway redirige le trafic correctement |
|
BD relationnelle |
Stocke les donnés dans tableaux et accès avec langage structuré Facile à maintenir et interroger |
|
DBMS (Database Management Service) |
Logiciel pour manipuler des BD relationnelles Oracle, MySQL, CosmosDB |
|
BD noSQL |
Stocke les donnés sous forme d'agrégat (infos qui interagissent peu entre elles), graphes (pas de jointure) ou sans schéma (donnés hétérogènes) Plus grande quantité stockée Plus performant Grande flexibilité Schéma de donnés moins complexe MongoDB, CosmosDB |
|
ORM (Object Relational Mapping) |
Interface entre appli et BD pour simuler BD orientée objet. Mappe correspondance entre BD et classes. Quantité de code écrit faible Homogénéité avec langage objet Couche logicielle supplementaire donc moins bonnes perfs et maintenabilité |
|
Entity Framework |
ORM pour .NET avec moteur d'abstraction et représentation graphique de BD et autogeneration mappage Windows only |
|
EFCore |
ORM pour .NET Core avec autogeneration de code uniquement sur BD donc pas de fichiers inutiles Plus leger Extensible Multiplateforme |
|
Database First |
Modèle de données ou on extrait les informations d'une BD existante pour les transformer en objet. Pas d'update |
|
Code First |
Modèle de données ou on crée les entité dans dbContext associé pour créer la BD automatiquement. Modif dans migrations |
|
Web service |
Application avec laquelle on communique par l'échange de messages HTTP. Structure et sémantique non ambiguë Interface client fonctionne indépendamment des évolutions serveur Attention au coût des transactions |
|
SOA (Service Oriented Architecture) |
Architecture dans laquelle un service fait une seule tâche |
|
Architecture client / serveur |
Architecture dans laquelle un client fait une demande d'information et le serveur effectue l'action puis restitué le resultat |
|
SoC |
Technique de séparation des responsabilités consistant à dissocier notamment l'interface du stockage de donnés Composants indépendants |
|
API |
Interface logicielle qui assure la comm avec interface client et back. On lui demande d'effectuer des actions via HTTP sur les donnés. Tout le monde peut y accéder tant qu'on est identifié (toute plate-forme) |
|
SOAP |
Protocole permettant l'échange de donnés (JSON pour HTTP) quelle que soit la plateforme Échange très simple |
|
WSDL |
Même principe que SOAP mais en plus compliqué donc plus utilisé Description en XML des fonctionnalités du service web |
|
REST |
Norme qui permet aux systèmes effectuant les requêtes de manipuler des ressources Web via leurs représentations textuelles à travers un ensemble d'opération uniformes et prédéfinies. Les infos retournées sont facilement identifiables. API REST stateless et leyered |
|
Contraintes services REST |
Rapidité Extensibilité (composant adapté au besoins) Simplicité de l'interface Visibilité des comm entre compo Portabilité Fiabilité aux pannes |
|
Stateless |
Aucun contexte n'est sauvegardé entre deux appels successifs |
|
Layered |
Le client ne sait pas si il est connecté au serveur final ou à un des serveurs intermédiaire |
|
Serveurs intermédiaires |
Mieux balancer trafic Améliore extensibilité et secu |
|
Patron MVC |
Modèle d'architecture pour implementer des interfaces utilisateur. Modèle, Vue et Controller Encourage SoC et loose coupling |
|
Loose coupling |
Les composants ne connaissent que le minimum des autres composants |
|
Modèle |
Implémente logique de validation et domaine de donnés. |
|
Vue |
Composants qui affichent l'interface user créé à partir des donnés du modèle. |
|
Controller |
Composants qui gèrent les interventions de l'utilisateur, exploitent le modèle et sélectionnent la vue approprié pour restituer l'info |
|
DTO (Data Transfer Object) |
Patron de conception utilisée dans les architectures logicielles objet. Permet de simplifier les transferts de donnés entre sous systèmes d'une appli |
|
Dépendance Injection |
Mécanismes pour éviter les couplage forts en privilégiant les interface à l'instanciation Facilite les tests |
|
Inversion of control |
Patron d'architecture logicielle fonctionnant sur le principe que le flot d'exécution n'est plus sous le contrôle de la couche l'appli mais plutôt de la couche logicielle. Pas d'instanciation explicite Meilleure maintenabilité car couplage faible Test faciles Reutilisabilité Moins d'effets de bord |
|
Couplage fort |
Niveau d'interaction entre composants, ils sont couplés si ils échangent de l'info Réutilisation de code difficile Tests difficiles Risque d'interblocage |
|
Test fonctionnel |
Selenium Sert à valider une fonctionnalité demandée sans regarder le code source, dans un contexte réel d'utilisation Fait à chaque évolution de appli |
|
Test techniques |
XUnit, MSTest Sert à valider une fonctionnalité avec le code source Lors de modification de code Test unitaire : méthode à tester est isolée du reste, prends beaucoup de temps, se concentrer sur fonctionnalités principales, mock Tests d'intégration : appeler méthode comme le client donc test des interaction entre fonctions |
|
Mock |
Framework Moq Permet d'avoir des donnés définies et statique Pas d'effet de bord |
|
Web IHM |
Client léger qu'on peut actualiser à la demande mais l'accès aux ressources est limité |
|
Smart Client |
Client lourd avec application à installer, rafraîchissement en temps réel |
|
Application web |
Comporte IHM, rapide donc pas de couplage fort et pas de limitation de technos à utiliser. Responsive important |
|
Javascript |
Langage non type execute a la volée par le navigateur mais aussi en back. Permissif Maintenance, débuggage et refactorisation compliquée |
|
Typescript |
Langage libre pour ameliorer JS, c'est un sur ensemble JS et peut être interprété sur tout navigateur. Maintenance et refactorisation facile |
|
Responsive |
Modèle de conception de front avec lequel la visite et l'utilisabilité est garantie quel que soit le contexte d'utilisation et les tailles d'écran. |
|
Poly fill JS |
Palliatif logiciel implémentant une rétro-compatibilité d'une fonctionnalité ajoutée à une interface de programmation dans des versions antérieures de cette interface |
|
Bonnes pratiques pour le front |
Séparer le code CSS, HTML et JS Se baser sur standard et plugins Responsive Oublier Pixel perfect Utiliser framework Dégradation harmonieuse Pas utiliser User Agent |
|
CBA (Component Based Architecture) |
Architecture de Angular et React. Composants sont des bouts de software indépendants, utilisant chacun pattern MVC mais séparés en plusieurs fichiers. Chaque composant contient les méthodes utiles pour se rafraîchir, demander donnés et afficher et modifier UI au besoin. Reutilisabilité des composants Rafraîchissement de composant sans tout rafraichir |