• Aide
  • Eurêkoi Eurêkoi

Livre

C# 12 : développez des applications Windows avec Visual Studio 2022

Résumé

Découverte des bases de C# 12 et des possibilités les plus avancées offertes par ce langage, Visual Studio et le framework. L'auteur propose de construire une application fonctionnelle tout au long de l'ouvrage pour aborder les concepts de manière pratique. Avec des compléments à télécharger. Version gratuite en ligne.


  • Éditeur(s)
  • Date
    • 2024
  • Langues
    • Français
  • Description matérielle
    • 1 vol. (536 p.) : ill. ; 22 cm
  • Collections
  • ISBN
    • 978-2-409-04440-3
  • Indice
  • Quatrième de couverture
    • C# 12 - Développez des applications Windows avec Visual Studio 2022

      Ce livre sur le développement d'applications Windows avec le langage C# (en version 12) et Visual Studio 2022 est destiné aux développeurs qui débutent avec le framework .NET. Il leur permet d'apprendre les bases du langage C# et introduit des concepts plus avancés leur donnant une vue d'ensemble des possibilités offertes par le langage C#, Visual Studio et le framework .NET en général. L'auteur a choisi une approche pas à pas tout en construisant une application fonctionnelle tout au long de l'ouvrage pour illustrer de manière pratique et cohérente les concepts abordés.

      L'apprentissage commence par la familiarisation avec l'interface de Visual Studio 2022 ainsi qu'avec le concept de l'architecture .NET. Les détails du langage C#, sa syntaxe et ses fonctionnalités comme les classes, l'héritage, les interfaces, les types génériques ou encore les délégués et les évènements sont ensuite expliqués avant d'aborder la conception d'interfaces utilisateur.

      La conception de l'Interface utilisateur couvre toutes les phases utiles pour créer des applications Windows à la fois fonctionnelles et ergonomiques, allant de la création de formulaires à la création de contrôles en passant par l'implémentation de gestionnaire d'évènements et la validation des données saisies. Une introduction à la conception d'application WPF est également incluse. Les outils de Visual Studio qui permettent de réaliser les tests et le débogage des applications sont également détaillés en présentant les techniques de gestion des erreurs, mais aussi les concepts permettant de surveiller les applications comme le traçage, l'interaction avec les journaux d'évènements et l'utilisation des compteurs de performance.

      L'utilisation de Entity Framework est détaillée au sein d'exemples concrets permettant de comprendre rapidement comment créer des modèles de données et comment les utiliser pour communiquer avec une base de données, tout en apprenant à utiliser le langage de requête LINQ pour interagir avec des données sous différents formats (objets, SQL ou XML). L'alternative au stockage de données d'une application sur le système de fichiers et l'utilisation du concept de la sérialisation sont également détaillées, fournissant ainsi une vision globale des possibilités offertes par le framework .NET concernant la gestion des données.

      Des concepts plus avancés sont également abordés afin d'exposer une gamme plus large des possibilités offertes par le langage C# et Visual Studio : l'utilisation des expressions régulières, le développement d'applications multitâches et asynchrones, la globalisation et la localisation d'une application, la sécurité du code, l'implémentation d'applications client/serveur, le dessin avec GDI+ ainsi que la réflexion font partie des sujets introduits.

      La dernière partie de l'ouvrage est consacrée à la création d'assemblages ainsi qu'au déploiement des applications. Les outils et techniques mis à disposition par Visual Studio pour créer des installeurs Windows et configurer les applications y sont détaillés.

      Le code de l'application exemple traitée dans l'ouvrage est en téléchargement sur le site www.editions-eni.fr.


  • Tables des matières
      • C# 12

      • Développez des applications Windows avec Visual Studio 2022

      • Jérôme Hugon

      • Éditions ENI

      • Avant-propos
      • Chapitre 1
      • Travailler avec Visual Studio 2022
      • 1. Introduction19
      • 2. L'interface de développement20
      • 2.1 L'éditeur de texte22
      • 2.2 Le concepteur de vues27
      • 2.3 Le débogueur intégré28
      • 2.4 Le gestionnaire d'extensions29
      • 2.5 NuGet31
      • 2.6 Fenêtres personnalisées33
      • 3. La création de solutions33
      • 3.1 Définir le point d'entrée34
      • 3.2 La différence entre projets et solutions36
      • 3.3 Configurer le projet37
      • 3.4 Les projets partagés39
      • 3.5 Les outils de refactorisation40
      • Chapitre 2
      • L'architecture .Net
      • 1. Introduction43
      • 2. CLR 44
      • 3. Les bibliothèques de classes45
      • 4. Les types47
      • 4.1 Les types valeur48
      • 4.2 Les types référence49
      • Chapitre 3
      • Introduction au langage C#
      • 1. La syntaxe51
      • 1.1 Les identifiants51
      • 1.2 Les mots-clés51
      • 1.3 La ponctuation53
      • 1.4 Les opérateurs54
      • 1.4.1 Les opérateurs de calcul54
      • 1.4.2 Les opérateurs d'assignation55
      • 1.4.3 Les opérateurs de comparaison55
      • 1.5 La déclaration de variables56
      • 1.6 Les instructions de contrôle57
      • 1.6.1 Les instructions conditionnelles57
      • 1.6.2 Les instructions itératives62
      • 1.6.3 Les instructions de saut65
      • 1.7 Les commentaires67
      • 2. Les espaces de noms71
      • 2.1 Déclarer un espace de noms71
      • 2.2 Le mot-clé using72
      • 2.3 Le mot-clé alias72
      • 2.4 Les classes statiques73
      • 2.5 Les directives using globales73
      • 3. Les types de base74
      • 3.1 Les types numériques74
      • 3.1.1 Les entiers74
      • 3.1.2 Les décimaux75
      • 3.2 Les booléens75
      • 3.3 Les chaînes de caractères76
      • 3.4 Les types nullables80
      • 3.5 La conversion de types81
      • 3.5.1 La conversion implicite82
      • 3.5.2 La conversion explicite82
      • 4. Les constantes et les énumérations83
      • 4.1 Les constantes83
      • 4.2 Les énumérations84
      • 5. Les tableaux86
      • 6. Les collections88
      • 7. Les directives preprocessor91
      • Chapitre 4
      • La création de types
      • 1. Introduction95
      • 2. Les niveaux d'accès96
      • 3. Les structures97
      • 4. Les classes99
      • 4.1 Les champs99
      • 4.2 Les propriétés100
      • 4.3 Les méthodes102
      • 4.3.1 La surcharge104
      • 4.3.2 Les paramètres105
      • 4.3.3 Les tuples111
      • 4.3.4 Les méthodes partielles112
      • 4.4 Les constructeurs112
      • 4.5 Les destructeurs114
      • 4.6 Les classes et membres statiques115
      • 4.7 Les classes partielles116
      • 4.8 Le mot-clé this117
      • 4.9 Les indexeurs118
      • 4.10 Les attributs120
      • 4.11 La surcharge d'opérateurs121
      • 4.11.1 Les opérateurs arithmétiques121
      • 4.11.2 Les opérateurs de comparaison123
      • 5. Les records125
      • Chapitre 5
      • L'héritage
      • 1. L'héritage de classe127
      • 1.1 Implémenter l'héritage127
      • 1.2 Les membres virtuels129
      • 1.3 Masquer les membres hérités130
      • 1.4 Le mot-clé base131
      • 1.5 Les classes et membres abstraits131
      • 1.6 Les classes et les méthodes scellées132
      • 1.7 Les constructeurs dérivés134
      • 1.8 Le polymorphisme136
      • 2. Les interfaces138
      • 2.1 L'implémentation d'interfaces138
      • 2.2 Le polymorphisme d'interface140
      • 2.3 L'héritage d'interfaces142
      • Chapitre 6
      • Types génériques
      • 1. Introduction143
      • 2. La création de types génériques144
      • 3. Les contraintes de type147
      • 4. Les interfaces génériques148
      • 4.1 La variance dans les interfaces génériques149
      • 4.1.1 La covariance149
      • 4.1.2 La contravariance150
      • 4.2 La création d'interfaces génériques variantes151
      • 4.3 L'héritage d'interfaces génériques variantes152
      • 5. Les attributs génériques153
      • 6. La création de méthodes génériques154
      • 7. Valeur par défaut générique157
      • 8. L'héritage de classe générique157
      • Chapitre 7
      • Délégués, événements et expressions lambda
      • 1. Les délégués159
      • 1.1 Les paramètres de méthode160
      • 1.2 Les méthodes cibles multiples161
      • 1.3 Les délégués génériques162
      • 1.4 La compatibilité des délégués162
      • 2. Les événements164
      • 3. Les expressions lambda167
      • 3.1 L'utilisation des expressions lambda168
      • 3.2 Les délégués génériques170
      • 3.3 La capture de variable170
      • 3.4 Les fonctions locales173
      • Chapitre 8
      • Création de formulaires
      • 1. Utiliser les formulaires175
      • 1.1 Ajouter des formulaires au projet175
      • 1.2 Modifier le formulaire de démarrage178
      • 1.3 Les propriétés des formulaires ...178
      • 1.4 Les méthodes des formulaires181
      • 1.5 Les événements des formulaires182
      • 2. Utiliser les contrôles183
      • 2.1 Les types de contrôles183
      • 2.2 Ajouter des contrôles aux formulaires185
      • 2.3 Les propriétés des contrôles187
      • 2.4 Les menus189
      • 2.5 Les conteneurs191
      • 2.6 L'ergonomie192
      • 2.7 Ajouter des contrôles à la boîte à outils194
      • Chapitre 9
      • Implémentation de gestionnaires d'événements
      • 1. Introduction195
      • 2. La création de gestionnaires d'événements196
      • 2.1 La mécanique d'un événement198
      • 2.2 L'ajout dynamique d'un gestionnaire d'événements198
      • 2.3 La suppression dynamique d'un gestionnaire d'événements199
      • 3. Les gestionnaires d'événements avancés200
      • 3.1 Un gestionnaire pour plusieurs événements200
      • 3.2 Plusieurs gestionnaires pour un événement201
      • Chapitre 10
      • Validation de la saisie
      • 1. Introduction203
      • 2. La validation au niveau des champs203
      • 2.1 Les propriétés de validation203
      • 2.2 Les événements de validation204
      • 2.2.1 KeyDown et KeyUp204
      • 2.2.2 KeyPress205
      • 2.2.3 Validating et Validated205
      • 3. La validation au niveau du formulaire207
      • 4. Les méthodes de retour à l'utilisateur210
      • 4.1 MessageBox210
      • 4.2 ErrorProvider212
      • Chapitre 11
      • Création de contrôles utilisateurs
      • 1. Introduction215
      • 2. Les contrôles personnalisés216
      • 3. L'héritage de contrôles218
      • 4. Les contrôles utilisateurs220
      • Chapitre 12
      • Création d'applications UWP
      • 1. Introduction227
      • 2. Principes227
      • 3. Les outils de développement229
      • 4. Le langage XAML232
      • 5. Une première application UWP234
      • 5.1 Les bases d'un projet UWP234
      • 5.2 Les contrôles et événements236
      • 5.3 Les styles237
      • Chapitre 13
      • Débogage
      • 1. Les types d'erreurs241
      • 1.1 Les erreurs de syntaxe241
      • 1.2 Les erreurs d'exécution242
      • 1.3 Les erreurs de logique244
      • 2. Le débogueur244
      • 2.1 Contrôler l'exécution246
      • 2.2 Les points d'arrêt247
      • 2.2.1 Les conditions d'arrêt248
      • 2.2.2 Le nombre d'accès249
      • 2.2.3 Le filtrage250
      • 2.2.4 Les actions250
      • 2.2.5 Exécuter l'exécution jusqu'ici251
      • 2.3 Les DataTips251
      • 2.4 Les PerfTips252
      • 2.5 Les attributs Caller253
      • 3. Les fenêtres255
      • 3.1 La fenêtre Sortie256
      • 3.2 La fenêtre Variables locales256
      • 3.3 La fenêtre Automatique257
      • 3.4 La fenêtre Espion257
      • 3.5 La fenêtre Exécution258
      • 3.6 Les autres fenêtres259
      • Chapitre 14
      • Gestion des exceptions
      • 1. La classe Exception261
      • 2. La création d'exceptions personnalisées262
      • 3. Le déclenchement des exceptions263
      • 4. L'interception et la gestion des exceptions266
      • Chapitre 15
      • Monitoring
      • 1. Le traçage273
      • 1.1 Les classes Debug et Trace273
      • 1.2 La collection d'écouteurs276
      • 1.2.1 La création d'écouteurs276
      • 1.2.2 La sauvegarde des traces277
      • 1.3 Les commutateurs de trace279
      • 1.3.1 Le fonctionnement des commutateurs de trace279
      • 1.3.2 La configuration des commutateurs de trace280
      • 2. Les journaux d'événements281
      • 2.1 L'interaction avec les journaux d'événements282
      • 2.2 La gestion des journaux d'événements283
      • 2.3 L'écriture d'événements284
      • 3. Les compteurs de performance285
      • 3.1 La création de compteurs de performance286
      • 3.1.1 Depuis Visual Studio286
      • 3.1.2 Depuis le code288
      • 3.2 L'utilisation de compteurs de performance289
      • 3.3 L'analyse de compteurs de performance292
      • Chapitre 16
      • Tests unitaires
      • 1. Introduction aux tests unitaires295
      • 1.1 La création du projet295
      • 1.2 Les classes de tests unitaires296
      • 2. La mise en place d'une série de tests298
      • 2.1 La création de tests au projet298
      • 2.2 Le déroulement des tests299
      • Chapitre 17
      • Création du modèle de données
      • 1. Introduction303
      • 2. La création d'un modèle304
      • 3. La création d'entités306
      • 4. La-génération de la base de données311
      • 5. La création d'entités à partir du code (Code First)317
      • Chapitre 18
      • Présentation d'Entity Framework
      • 1. Introduction323
      • 2. Le mappage324
      • 2.1 La couche logique324
      • 2.2 La couche conceptuelle326
      • 2.3 La couche de mappage329
      • 3. Travailler avec les entités330
      • 3.1 Les entités332
      • 3.2 La classe DbContext333
      • 3.3 Les relations334
      • 3.3.1 Le concept de table par type334
      • 3.3.2 Le concept de table par hiérarchie335
      • Chapitre 19
      • Présentation de LINQ
      • 1. Les requêtes LINQ337
      • 1.1 La syntaxe337
      • 1.2 Les méthodes d'extension338
      • 2. Les opérateurs de requêtes340
      • 2.1 Filtrer340
      • 2.1.1 Where340
      • 2.1.2 OfType<TResult>340
      • 2.1.3 SelectMany341
      • 2.1.4 Skip et Take341
      • 2.2 Ordonner342
      • 2.2.1 OrderBy342
      • 2.2.2 ThenBy343
      • 2.3 Grouper343
      • 2.3.1 GroupBy343
      • 2.3.2 Join344
      • 2.4 Agréger345
      • 2.5 Convertir345
      • 3. Les requêtes parallèles346
      • 3.1 Partitionner une requête347
      • 3.2 Annuler une requête348
      • Chapitre 20
      • LINQ to Entities
      • 1. Introduction349
      • 2. Extraire les données350
      • 2.1 L'extraction simple350
      • 2.2 L'extraction conditionnelle351
      • 3. Ajouter, modifier et supprimer des données353
      • 3.1 Ajouter des données353
      • 3.2 Modifier des données354
      • 3.3 Supprimer des données354
      • 3.4 L'envoi des modifications354
      • Chapitre 21
      • LINQ to SQL
      • 1. La création de classes LINQ to SQL355
      • 2. L'objet DataContext358
      • 2.1 La méthode ExecuteQuery359
      • 2.2 Utiliser des transactions359
      • 2.3 Les autres membres de DataContext360
      • 3. Exécuter des requêtes avec LINQ361
      • 3.1 Les requêtes simples361
      • 3.2 Les requêtes filtrées362
      • 3.3 Les requêtes de jointure362
      • 4. Les procédures stockées362
      • 4.1 L'ajout de procédures stockées au modèle363
      • 4.2 L'exécution de procédures stockées364
      • Chapitre 22
      • LINQ to XML
      • 1. Les objets XML365
      • 1.1 XDocument365
      • 1.2 XElement366
      • 1.3 XNamespace367
      • 1.4 XAttribute368
      • 1.5 XComment369
      • 2. Exécuter des requêtes avec LINQ369
      • 2.1 Les requêtes simples370
      • 2.2 Les requêtes filtrées370
      • 2.3 Les requêtes de jointure371
      • Chapitre 23
      • Le système de fichiers
      • 1. Les classes de gestion du système de fichiers373
      • 1.1 DriveInfo373
      • 1.2 Directory et DirectoryInfo375
      • 1.3 File et FileInfo377
      • 1.4 Path380
      • 2. Travailler avec le système de fichiers383
      • 2.1 Les objets Stream383
      • 2.2 La classe FileStream383
      • 2.3 Lire un fichier texte385
      • 2.3.1 Lire avec la classe File385
      • 2.3.2 Lire avec la classe StreamReader386
      • 2.4 Écrire dans un fichier texte388
      • 2.4.1 Écrire avec la classe File388
      • 2.4.2 Écrire avec la classe StreamWriter389
      • Chapitre 24
      • Sérialisation
      • 1. Introduction391
      • 2. La sérialisation binaire392
      • 2.1 Les bases392
      • 2.2 Contrôler la sérialisation394
      • 2.2.1 Le contrôle par attribut394
      • 2.2.2 Le contrôle par interface396
      • 3. La sérialisation XML399
      • 3.1 Les bases400
      • 3.2 Contrôler la sérialisation403
      • 3.3 La sérialisation XML SOAP404
      • Chapitre 25
      • Expressions régulières
      • 1. Introduction407
      • 2. Une première expression régulière408
      • 3. Les options de recherche409
      • 4. Les caractères d'échappement410
      • 5. Les ensembles410
      • 6. Les groupes412
      • 7. Les ancres413
      • 8. Les quantifieurs414
      • Chapitre 26
      • Multithreading
      • 1. Introduction415
      • 2. La classe Thread416
      • 2.1 Créer un thread416
      • 2.2 Suspendre un thread417
      • 2.3 Echanger des données avec un thread418
      • 2.4 Verrouiller un thread420
      • 2.5 Priorité des threads421
      • 3. Fonctions asynchrones422
      • 3.1 Task et Task<TResult>424
      • 3.2 async et await425
      • 4. Le composant BackgroundWorker427
      • Chapitre 27
      • Globalisation et localisation
      • 1. Introduction431
      • 2. La culture432
      • 3. La globalisation434
      • 4. La localisation436
      • Chapitre 28
      • Sécurité
      • 1. Introduction441
      • 2. Les éléments de base442
      • 2.1 L'interface IPermission442
      • 2.2 La classe CodeAccessPermission442
      • 2.3 L'interface IPrincipal443
      • 3. Implémentation de la sécurité444
      • 3.1 La sécurité basée sur les rôles444
      • 3.2 La sécurité basée sur les droits d'accès446
      • 3.2.1 Sécurité impérative446
      • 3.2.2 Sécurité déclarative448
      • 4. Introduction à la cryptographie449
      • Chapitre 29
      • Pour aller plus loin
      • 1. Le dessin avec GDI +453
      • 1.1 La classe Graphics454
      • 1.1.1 Les coordonnées455
      • 1.1.2 Les formes455
      • 1.2 La structure Color et les classes Brush et Pen457
      • 1.2.1 La structure Color457
      • 1.2.2 La classe Brush458
      • 1.2.3 La classe Pen458
      • 1.2.4 Les paramètres système459
      • 1.3 Les exemples459
      • 1.3.1 L'affichage de texte459
      • 1.3.2 Redimensionner une image461
      • 2. Le remoting462
      • 2.1 Le principe462
      • 2.2 L'implémentation463
      • 2.2.1 La couche commune463
      • 2.2.2 L'application serveur465
      • 2.2.3 L'application cliente467
      • 3. Reflection470
      • 3.1 La classe System.Type470
      • 3.2 Charger un assemblage dynamiquement472
      • 3.2.1 L'énumération des types472
      • 3.2.2 L'instanciation d'objets473
      • 3.2.3 L'utilisation des membres474
      • Chapitre 30
      • Assemblages et configurations
      • 1. Introduction477
      • 2. Les assemblages privés477
      • 3. Les assemblages partagés480
      • 4. Les fichiers de configuration481
      • Chapitre 31
      • Déploiement
      • 1. Introduction483
      • 2. Les projets de déploiement484
      • 2.1 XCOPY484
      • 2.2 Projet CAB485
      • 2.3 Projet de module de fusion486
      • 2.4 Projet d'installation486
      • 3. L'assistant Installation487
      • 4. Configuration du projet491
      • 4.1 Les propriétés du projet491
      • 4.2 Les éditeurs de configuration494
      • 4.2.1 Éditeur du système de fichiers495
      • 4.2.2 Éditeur du registre496
      • 4.2.3 Éditeur des types de fichiers497
      • 4.2.4 Éditeur de l'interface utilisateur499
      • 4.2.5 Éditeur des actions personnalisées501
      • 4.2.6 Éditeur des conditions de lancement502
      • Index 505

  • Origine de la notice:
    • BPI
  • Indisponible : En catalogage