Les contrats de code

370 vues

Publié le

Les contrats de code sont une nouvelle fonctionnalité du Framework .NET 4.0 qui permettent de définir des contraintes dans du code et peuvent être réutilisées par des outils d’analyse ou d’écriture spécifique du code.

Publié dans : Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
370
Sur SlideShare
0
Issues des intégrations
0
Intégrations
5
Actions
Partages
0
Téléchargements
3
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Les contrats de code

  1. 1. 1 Les Contrats de Code Nestor A. Kameni Expert C#, ASP.NET, Silverlight Blog : http://nestor.nestasoft.fr Twitter : @nestasoft
  2. 2. 2 Sommaire  Partie1 : Introduction  Partie 2 : Téléchargement et mise en place de la bibliothèque de contrats  Partie 3 : Utilisation des préconditions  Partie 4 : Utilisation des post-conditions  Partie 5 : Utilisation des Contrats sur les interfaces  Partie 6 : Utilisation des objets invariants  Partie 7 : Support pour les TU  Partie 8 : Héritage du contrat  Partie 9 : Les attributs du contrat  Partie 10 : Documenter vos contrats (c) Nestor .A Kameni
  3. 3. 3 Partie 1 : Introduction (1/8)  Définition d’un contrat o C’est une contrainte imposée par le concepteur sur une méthode, une interface…  C’est quoi « Code Contracts »? o Nouvelle fonctionnalité du Framework (4.0)  But o Définir des contraintes dans du code; contraintes qui pourront être réutilisées par des outils d’analyse / d’écriture du code. (c) Nestor .A Kameni
  4. 4. < > 4 Partie 1 : Introduction (2/8)  Imposer les contrats « oui ou non »? o Dans un grand projet : Imposer l’utilisation des contrats Cas pratique : Équipe A Équipe B Développeur A Développeur B Intégrateur A Intégrateur B Intégrateur C public List<T> getListT(…) { } Utilisent les méthodes public SupS getListSupS(…) { } getListT et getListSupS (c) Nestor .A Kameni
  5. 5. 5 Partie 1 : Introduction (3/8)  Avantage (Cas pratique) : o Assure au développeur que les données d’entrées sont valides et n’auront pas d’effets secondaires sur l’exécution de la classe.  Inconvénient : o Compilation impossible.  Dans un petit projet type perso : Le choix est laissé au développeur (c) Nestor .A Kameni
  6. 6. 6 Partie 1 : Introduction (4/8) Cas pratique : Équipe unique Développeur Intégrateur public List<T> getListT(…) { } Utilisent les méthodes public SupS getListSupS(…) { } getListT et getListSupS Avantage (Cas pratique) : o Aucun Inconvénient : o Compilation impossible. o Perte de temps pour résoudre d’éventuelles anomalies. (c) Nestor .A Kameni
  7. 7. 7 Partie 1 : Introduction (5/8)  Avantages des contrats de code • Typage fort des contrats • Vérification des contrats à la compilation • Documentation auto des commentaires des contrats de code • Héritage des contrats • Définition des contrats de code dans des interfaces • Création d’un assemblage qui ne contient que des contrats (c) Nestor .A Kameni
  8. 8. 8 Partie 1 : Introduction (6/8  Avant le Framework 4.5, 4.0 • Utilisation des exceptions (c) Nestor .A Kameni
  9. 9. 9 Partie 1 : Introduction (7/8)  Concept des contrats de code 1. Définition des contrats en utilisant les classes de l’espace de nom 2. Exécution de l’outil d’analyse des contrats  Outils proposés par Microsoft o cccheck o ccdocgen o ccrefgen o ccrewrite (c) Nestor .A Kameni
  10. 10. 10 Partie 1 : Introduction (8/8)  Prérequis o Incluse dans le Framework 4.5, 4.0 o Possibilité d’utiliser les contrats de code dans le FrameWork 3.5 ( Assembly Microsoft.Contracts) o Télécharger les outils sur Microsoft Research (http://research.microsoft.com/en- us/projects/contracts/) (c) Nestor A. Kameni
  11. 11. 11 QUESTION? (c) Nestor .A Kameni

×