• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/65

Click to flip

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