excellent
Anonyme- Livres et vidéos
- Apprendre la Programmation Orientée Objet avec le langage C# - (avec exercices pratiques et corrigés) (4e édition)
Apprendre la Programmation Orientée Objet avec le langage C# (avec exercices pratiques et corrigés) (4e édition)
1 avis
Ce livre s’adresse aux étudiants et aux développeurs ayant déjà une première expérience de la programmation structurée et qui sont désireux de passer à la Programmation Orientée Objet (POO) avec le langage C# 10, pour développer des applications .NET
Après un historique de la POO et du langage C#, l’auteur explique pourquoi ce type de programmation est devenu incontournable pour développer dans les environnements graphiques événementiels. Les notions d’objet, de classe et de référence sont...
Aperçu du livre papier
- Niveau Initié à Confirmé
- Nombre de pages 692 pages
- Parution août 2022
- Niveau Initié à Confirmé
- Parution août 2022
Ce livre s’adresse aux étudiants et aux développeurs ayant déjà une première expérience de la programmation structurée et qui sont désireux de passer à la Programmation Orientée Objet (POO) avec le langage C# 10, pour développer des applications .NET
Après un historique de la POO et du langage C#, l’auteur explique pourquoi ce type de programmation est devenu incontournable pour développer dans les environnements graphiques événementiels. Les notions d’objet, de classe et de référence sont présentées suivies par les fondements de la POO que sont l’encapsulation, l’héritage, le polymorphisme et l’abstraction.
Les différentes étapes d’un développement objet avec les principes de modélisation UML sont abordées, suivies par une présentation du .NET 6, de son intérêt, de sa richesse et de son environnement de développement Microsoft Visual Studio 2022 Community.
Le lecteur découvre comment C# 10 reproduit les principes de la POO avec des explications simples, des exemples concrets et des exercices corrigés à télécharger sur le site www.editions-eni.fr. Les types de base du développement .NET et leurs utilisations sont présentés. Les programmes d’essais sont de type console ou graphique, basés sur l’utilisation des Windows Forms et de WPF pour illustrer les communications entre objets. Quand ils seront pertinents, des parallèles seront menés avec les langages de programmation objet C++ et Java.
La programmation multithread et asynchrone, permettant l’exécution simultanée de plusieurs flux d’instructions, sera abordée tout comme la communication entre mondes managés (.NET) et non managés (Win32). L’écriture de tests unitaires objets avec MS Test permettra au lecteur de s’assurer de la stabilité de son code. L’auteur présente ensuite une façon dynamique de programmer par réflexion sur les objets. Le lecteur découvre également comment instrumenter son code pour analyser ses performances, ainsi que l’objet appliqué à la gestion des données avec LINQ, l’utilisation des fichiers XML, ADO.NET (en mode connecté et en mode déconnecté) et d’Entity Framework Core. Enfin, les bases de programmation du WPF (Windows Presentation Foundation), de XAML, du binding et de MVVM terminent cet ouvrage.
À la fin de ce livre, le lecteur disposera de bases solides pour appréhender les puissantes bibliothèques du .NET et réaliser des programmes objet modulaires, fiables et extensibles.
Quizinclus dans
la version en ligne !
Après un historique de la POO et du langage C#, l’auteur explique pourquoi ce type de programmation est devenu incontournable pour développer dans les environnements graphiques événementiels. Les notions d’objet, de classe et de référence sont présentées suivies par les fondements de la POO que sont l’encapsulation, l’héritage, le polymorphisme et l’abstraction.
Les différentes étapes d’un développement objet avec les principes de modélisation UML sont abordées, suivies par une présentation du .NET 6, de son intérêt, de sa richesse et de son environnement de développement Microsoft Visual Studio 2022 Community.
Le lecteur découvre comment C# 10 reproduit les principes de la POO avec des explications simples, des exemples concrets et des exercices corrigés à télécharger sur le site www.editions-eni.fr. Les types de base du développement .NET et leurs utilisations sont présentés. Les programmes d’essais sont de type console ou graphique, basés sur l’utilisation des Windows Forms et de WPF pour illustrer les communications entre objets. Quand ils seront pertinents, des parallèles seront menés avec les langages de programmation objet C++ et Java.
La programmation multithread et asynchrone, permettant l’exécution simultanée de plusieurs flux d’instructions, sera abordée tout comme la communication entre mondes managés (.NET) et non managés (Win32). L’écriture de tests unitaires objets avec MS Test permettra au lecteur de s’assurer de la stabilité de son code. L’auteur présente ensuite une façon dynamique de programmer par réflexion sur les objets. Le lecteur découvre également comment instrumenter son code pour analyser ses performances, ainsi que l’objet appliqué à la gestion des données avec LINQ, l’utilisation des fichiers XML, ADO.NET (en mode connecté et en mode déconnecté) et d’Entity Framework Core. Enfin, les bases de programmation du WPF (Windows Presentation Foundation), de XAML, du binding et de MVVM terminent cet ouvrage.
À la fin de ce livre, le lecteur disposera de bases solides pour appréhender les puissantes bibliothèques du .NET et réaliser des programmes objet modulaires, fiables et extensibles.
Quizinclus dans
la version en ligne !
- Testez vos connaissances à l'issue de chaque chapitre
- Validez vos acquis
Téléchargements
Introduction à la POO
- 1. Histoire de la POO
- 2. Historique du C#
La conception orientée objet
- 1. Approche procédurale et décomposition fonctionnelle
- 2. La transition vers l'approche objet
- 3. Les caractéristiques de la POO
- 3.1 L'objet, la classe et la référence
- 3.1.1 L'objet
- 3.1.2 La classe
- 3.1.3 La référence
- 3.1 L'objet, la classe et la référence
- 3.2 L'encapsulation
- 3.3 L'héritage
- 3.4 Le polymorphisme
- 3.5 L'abstraction
- 4.1 Cahier des charges du logiciel
- 4.2 Présentation du cycle en V
- 4.3 Modélisation et représentation UML
- 4.3.1 Diagrammes de cas d'utilisation
- 4.3.2 Diagrammes de classes
- 4.3.3 Énumérations
- 4.3.4 Diagrammes de séquences
- 5.1 Hiérarchie de classes
- 5.2 Relations entre objets
- 5.3 Agrégation d’objets
- 5.4 Diagramme de cas d’utilisation
- 5.5 Diagramme de séquences
Introduction à .NET 6 et à VS
- 1. Introduction
- 2. Environnement d'exécution
- 3. Le choix des langages
- 4. Utiliser plusieurs langages
- 5. Une librairie très complète
- 6. Un outil de développement complet
Les types du C#
- 1. "En C#, tout est typé !"
- 2. "Tout le monde hérite de System.Object"
- 2.1 Les types Valeurs
- 2.2 Les types Références
- 2.3 Boxing/unboxing
- 2.4 Utilisation des méthodes de System.Object
- 2.4.1 Equals
- 2.4.2 GetHashCode
- 2.4.3 ToString
- 2.4.4 Finalize
- 2.4.5 Object.GetType et les opérateurs typeof et is
- 2.4.6 object.ReferenceEquals
- 2.4.7 Object.MemberwiseClone
- 2.5 Le type System.String et son alias string
- 3.1 Énoncé
- 3.2 Correction
Création d’objets
- 1. Introduction
- 2. Les espaces de noms
- 3. Déclaration d'une classe
- 3.1 Accessibilité des membres
- 3.2 Attributs
- 3.2.1 Attributs constants
- 3.2.2 Attributs en lecture seule
- 3.3 Propriétés
- 3.4 Constructeur
- 3.4.1 Étapes de la construction d'un objet
- 3.4.2 Surcharge de constructeurs
- 3.4.3 Constructeurs avec valeurs de paramètres par défaut
- 3.4.4 Chaînage de constructeurs
- 3.4.5 Les constructeurs de type static
- 3.4.6 Les constructeurs de type private
- 3.4.7 Les initialiseurs d'objets
- 3.5 Destructeur
- 3.6 Autre utilisation de using
- 3.7 Le mot-clé this et ses vertus
- 3.8 Méthodes
- 3.8.1 Déclaration
- 3.8.2 Passage par valeur et passage par référence
- 3.9 Mécanisme des exceptions
- 3.9.1 Présentation
- 3.9.2 Principe de fonctionnement des exceptions
- 3.9.3 Prise en charge de plusieurs exceptions
- 3.9.4 try ... catch ... finally et using
- 3.10 Surcharge des méthodes
- 3.11 Exercice
- 3.11.1 Énoncé
- 3.11.2 Conseils
- 3.11.3 Correction
- 4.1 Introduction
- 4.2 Le contrat
- 4.3 Déclaration d'une interface
- 4.4 Implémentation
- 4.5 Visual Studio et les interfaces
- 4.6 Représentation UML d'une interface
- 4.7 Interfaces et polymorphisme
- 4.8 Exercice
- 4.8.1 Énoncé
- 4.8.2 Conseils
- 4.8.3 Correction
- 5.1 Les tableaux
- 5.2 Les collections
- 5.2.1 List<> et LinkedList<>
- 5.2.2 Queue<T> et Stack<T>
- 5.2.3 Dictionary<TKey, TValue>
- 5.2.4 Les énumérateurs
- 5.2.5 La magie du yield
- 5.3.1 Énoncé
- 5.3.2 Correction
- 7.1 Déclaration d'une structure
- 7.2 Instanciation d'une structure
- 16.1 Introduction
- 16.2 Déclaration complète
- 16.3 Déclaration simplifiée
- 16.4 Comparaison de records
- 16.5 Déconstruction d’un record
- 16.6 Mutation d’un record
Héritage et polymorphisme
- 1. Comprendre l'héritage
- 2. Codage de la classe de base et de son héritière
- 2.1 Interdire l'héritage
- 2.2 Définir les membres héritables
- 2.3 Codage de l'héritage
- 2.4 Exploitation d'une classe héritière
- 3. Communication entre classe de base et classe héritière
- 3.1 Les constructeurs
- 3.2 Accès aux membres de base depuis l'héritier
- 3.3 Masquage ou substitution de membres hérités
- 3.3.1 Codage du masquage
- 3.3.2 Codage de la substitution
- 4.1 Énoncé
- 4.2 Corrigé
- 7.1 Comprendre le polymorphisme
- 7.2 Exploitation du polymorphisme
- 7.3 Les opérateurs is, as et ()
Communication entre objets
- 1. L'événementiel : être à l'écoute
- 2. Le pattern Observateur
- 3. La solution C# : delegate et event
- 3.1 Utilisation du delegate dans le design pattern Observateur
- 3.2 Utilisation d'un event
- 3.3 Comment accompagner l'event de données
- 3.4 Les génériques en renfort pour encore simplifier
- 3.5 Les expressions lambda
- 3.6 Exemple d'utilisation d'event
- 4. Appels synchrones, appels asynchrones
- 5. Exercice
- 5.1 Énoncé
- 5.2 Conseils pour la réalisation
- 5.3 Correction
- 6. Des messages entre les classes
Le multithreading
- 1. Introduction
- 2. Comprendre le multithreading
- 3. Multithreading et .NET
- 4. Implémentation en C#
- 4.1 Utilisation d'un BackgroundWorker
- 4.1.1 Communication du thread principal vers le thread secondaire
- 4.1.2 Abandon du thread secondaire depuis le thread principal
- 4.1.3 Communication du thread secondaire vers le thread principal
- 4.1.4 Communication en fin de traitement du thread secondaire
- 4.1.5 Exemple de code
- 4.1 Utilisation d'un BackgroundWorker
- 4.2 Utilisation du pool de threads créé par .NET
- 4.3 Gestion "manuelle" avec Thread/ParameterizedThreadStart
- 5.1 Nécessité de la synchronisation
- 5.2 Le mot-clé lock
- 5.3 La classe Monitor
- 5.4 La classe Mutex
- 5.5 La classe Semaphore
- 6.1 Join
- 6.2 Les synchronization events
- 6.3 Communication entre threads secondaires et IHM
- 6.4 Exercice
- 6.4.1 Énoncé
- 6.4.2 Correction
- 7.1 Les « Task »
- 7.2 async et await
- 7.3 Le mot-clé async
- 7.4 Contenu d’une méthode async
- 7.5 Preuve à l’appui
- 7.6 Retours possibles d’une méthode async
P-Invoke
- 1. Introduction
- 1.1 Rappel sur les DLL non managées
- 1.2 P-Invoke et son Marshal
- 2. Le cas simple
- 2.1 Déclaration et appel
- 2.2 Réglage de Visual Studio pour la mise au point
- 3. Appel avec paramètres et retour de fonction
- 4. Traitement avec des chaînes de caractères
- 4.1 Encodage des caractères
- 4.2 Encodage des chaînes
- 4.3 Transmission des chaînes
- 5. Échange de tableaux
- 5.1 Du C# au C/C++
- 5.2 Du C# au C/C++ puis retour au C#
- 6. Partage de structures
- 6.1 Déclaration des structures
- 6.2 Utilisation des structures
- 7. Les directives [In] et [Out]
- 8. Réalisation d’un wrapper
- 8.1 Une région "NativeMethods"
- 8.2 Stockage des informations de la DLL native
- 8.3 Instanciation de DLL native
- 8.4 Méthodes d’utilisation de la DLL managée depuis le wrapper
- 8.5 Utilisation du wrapper
- 9. Exercice
- 9.1 Énoncé
- 9.2 Correction
Les tests
- 1. Introduction
- 2. Environnement d’exécution des tests unitaires
- 3. Le projet de tests unitaires
- 4. La classe de tests
- 5. Contenu d’une méthode de test
- 6. Traitements de préparation et de nettoyage
- 7. DynamicData et source de données
- 8. Automatisation des tests à la compilation
- 9. Automatisation des tests en dehors de Visual Studio
- 10. CodedUI
- 11. Exercice
- 11.1 Énoncé
- 11.2 Correction
- 12. Simulation par stub ou par shim
Traçage et instrumentation des applications
- 1. Présentation
- 2. Des objets de mise au point
- 2.1 System.Diagnostics.Debug
- 2.2 System.Diagnostics.Trace
- 2.3 System.Diagnostics.TraceSource
- 3. Principe de fonctionnement des écouteurs
- 4. Comportement dynamique
- 5. Mesurer le temps passé
- 6. Exercice
- 6.1 Énoncé
- 6.2 Correction
La réflexion
- 1. Introduction
- 2. Mais pour quoi faire ?
- 3. Introspection d'une classe C#
- 3.1 Introspection "manuelle"
- 3.2 Introspection "logicielle"
- 3.2.1 Découverte et instanciation
- 3.2.2 Découverte et utilisation des propriétés
- 3.2.3 Découverte et utilisation des méthodes
- 3.3 Exercice
- 3.3.1 Énoncé
- 3.3.2 Quelques conseils
- 3.3.3 Correction
- 4.1 Création d’une interface "plug-in"
- 4.2 Écriture d’un plug-in
- 4.3 L’application supportant les plug-ins
- 4.4 Exercice
- 4.4.1 Énoncé
- 4.4.2 Correction
Gestion des données
- 1. Introduction
- 2. LINQ
- 2.1 Qu’est-ce que c’est ?
- 2.2 Les deux syntaxes LINQ
- 2.2.1 La syntaxe "développeur SQL"
- 2.2.2 La syntaxe "développeur C#"
- 2.3 Requêtes et filtres
- 2.4 Quelques calculs
- 2.5 Regroupement des résultats
- 2.6 Les jointures
- 2.7 Exercice
- 2.7.1 Énoncé
- 2.7.2 Solution
- 3.1 Rappels sur le XML
- 3.2 XML et .NET
- 3.2.1 Sérialisation/désérialisation d’un modèle de données
- 3.2.2 Les décorations de sérialisation XML
- 3.2.3 XmlSerializer : écrire et lire
- 3.4.1 Énoncé
- 3.4.2 Correction
- 3.5.1 Lecture
- 3.5.2 Écriture
- 3.5.3 Interrogations
- 3.6.1 Énoncé
- 3.6.2 Correction
- 4.1 Présentation
- 4.2 Les termes utilisés
- 4.3 Les modules ADO.NET
- 4.4 Notre environnement d’apprentissage
- 4.5 ADO en mode connecté
- 4.5.1 Les fournisseurs de données en .NET
- 4.5.2 Se connecter avec DbConnection
- 4.5.3 Envoyer des requêtes avec DbCommand
- 4.5.4 Lire des enregistrements avec DbDataReader
- 4.6.1 Énoncé
- 4.6.2 Correction
- 4.7.1 La classe DataSet
- 4.7.2 Le DataSet typé
- 4.7.3 Persistance du DataSet en XML
- 4.7.4 LINQ to DataSet
- 4.7.5 Intégrité référentielle
- 4.8.1 Lecture de la source
- 4.8.2 Mise à jour de la source
- 5.1 Présentation de l’Entity Data Model
- 5.2 Création d’un EDM depuis une base de données
- 5.3 DbContext
- 5.4 LINQ to Entities
- 5.5 Mise à jour de la source
- 5.6 Création d’un EDM depuis un modèle
- 5.7 Exercice
- 5.7.1 Présentation du binding
- 5.7.2 Énoncé
- 5.7.3 Correction
WPF MVVM et le toolkit Microsoft
- 1. Présentation
- 2. Historique des API
- 3. C# et XAML Développeur et Graphiste
- 4. Balises et Attributs pour Objets et Propriétés
- 5. Utilisation basique de WPF
- 6. Utilisation des layout
- 7. Récupération des informations SANS le binding
- 8. Introduction au binding
- 8.1 Le DataContext
- 8.2 L'interface INotifyPropertyChange
- 8.3 Les convertisseurs
- 8.4 Exercice
- 8.5 Binding de commandes
- 9. Le modèle de conception MVVM
- 9.1 Objectifs
- 9.2 Les dépendances
- 9.3 Mise en application
- 10. Présentation de MVVM Toolkit
- 10.1 La classe Observable
- 10.2 La classe ObservableValidator
- 10.3 Messenger
- 10.4 L'injection de dépendances
- Index
Luc GERVAIS
Luc Gervais exerce depuis 35 ans la profession de développeur logiciel. Venant du monde de l'électronique, il a commencé par programmer en langage assembleur pour ensuite passer au C, C++, C# et Java. Il a animé de nombreuses formations sur différents langages de programmation aussi bien pour un public de développeurs professionnels que d'étudiants (Université de Rouen). Cette double expérience (technique et pédagogique) lui permet de répondre parfaitement aux attentes des lecteurs désireux de passer à la Programmation Orientée Objet (POO).
En savoir plus