Formation en Développement: C# .NET - Développement avancé - Ascent Formation
Retour aux formations
Développement

C# .NET - Développement avancé

4 jour(s) • 28h
Éligible OPCO
8,8/10 avis apprenants

Description

Vous développez en C# au quotidien et souhaitez franchir un cap : cette formation vous donne les clés de l'architecture applicative moderne, des techniques d'optimisation des performances, des patterns de conception avancés et des pratiques d'industrialisation pour intervenir sur des projets .NET à forte exigence technique.

  • Maîtriser les fonctionnalités avancées du langage C# : réflexion, attributs personnalisés, programmation dynamique et programmation fonctionnelle
  • Diagnostiquer et optimiser les performances d'une application .NET : allocations mémoire, GC, Span et parallélisme
  • Concevoir une architecture applicative structurée selon les principes Clean Architecture et SOLID
  • Mettre en œuvre les patterns de conception GoF dans un contexte .NET moderne
  • Développer des API REST avancées avec ASP.NET Core : middleware, authentification, versioning et health checks
  • Approfondir l'utilisation d'Entity Framework Core : optimisation des requêtes, intercepteurs et gestion avancée des données
  • Écrire des tests avancés : tests d'intégration avec base de données réelle, architecture testing et tests de performance
  • Instrumenter une application .NET avec OpenTelemetry et Serilog et la publier via un pipeline CI/CD

  • Développeurs C# / .NET confirmés, backend developers, software engineers ou tech leads souhaitant renforcer leur maîtrise de l'architecture, des performances, des tests et des pratiques d'industrialisation sur des applications .NET modernes.

  • Maîtrise opérationnelle de C# : syntaxe, POO, LINQ, async/await et Entity Framework Core de base.
  • Expérience de développement sur au moins un projet .NET en environnement professionnel.
  • Équivalent à la formation "C# .NET -- Développement d'applications" ou expérience équivalente.

  1. 1

    Fonctionnalités avancées du langage C#

    • Génériques avancés : contraintes multiples, interfaces génériques covariantes/contravariantes, cas d'usage pratiques
    • Réflexion et métaprogrammation : Assembly, Type, MethodInfo -- inspection et invocation dynamique du code à l'exécution
    • Chargement dynamique d'assemblies : cas d'usage, sécurité et limitations
    • Type dynamique : dynamic vs object vs var -- quand l'utiliser et les pièges associés
    • Attributs personnalisés : créer, appliquer et lire des attributs via la réflexion
    • Programmation fonctionnelle en C# : composition de fonctions, application partielle, immutabilité en pratique
    • Ouverture : Source Generators et Expression Trees -- démonstration des cas d'usage concrets (génération de code à la compilation, construction de requêtes dynamiques), approfondissement hors formation
  2. 2

    Performances et optimisation mémoire

    • Le Garbage Collector .NET : fonctionnement, générations (Gen0, Gen1, Gen2), Large Object Heap, impact sur les performances applicatives
    • Diagnostiquer les allocations : BenchmarkDotNet, dotnet-counters, dotnet-trace, Visual Studio Diagnostic Tools -- méthodologie de profiling
    • Span et Memory : manipulation de données sans allocation, slicing, cas d'usage réels
    • ArrayPool et MemoryPool : pooling de tableaux pour éviter les allocations répétées
    • stackalloc et MemoryMarshal : allocation sur la pile, usage en contexte contrôlé
    • Optimisation des collections : choisir la bonne structure selon les contraintes, IEquatable et comparateurs personnalisés pour les performances
    • ValueTask vs Task : quand utiliser ValueTask pour réduire les allocations en code asynchrone intensif
    • Parallélisme avec TPL : Parallel.For, Parallel.ForEach, PLINQ, gestion des exceptions parallèles
    • Channels et pipelines : System.Threading.Channels pour les architectures producteur/consommateur
  3. 3

    Architecture Clean et principes SOLID en pratique

    • SOLID appliqué à C# : exemples concrets et anti-patterns courants dans les bases de code réelles
    • Clean Architecture : organisation en couches (Domain, Application, Infrastructure, Presentation), règle de dépendance
    • Domain-Driven Design (DDD) : introduction pratique -- entités, value objects, agrégats, repositories, domain events
    • CQRS (Command Query Responsibility Segregation) : séparer les lectures et les écritures, implémentation légère sans MediatR puis avec MediatR
    • Pattern Repository et Unit of Work : implémentation en C#/.NET, articulation avec EF Core
    • Injection de dépendances avancée : Scrutor pour le scan automatique, Keyed Services (.NET 8+), scopes et lifetimes en profondeur
  4. 4

    Design Patterns GoF en C#/.NET moderne

    • Patterns créationnels : Factory Method, Abstract Factory, Builder, Singleton thread-safe en .NET -- implémentations modernes
    • Patterns structurels : Adapter, Decorator, Facade, Composite, Proxy -- exemples concrets dans l'écosystème .NET
    • Patterns comportementaux : Observer (avec événements C# et IObservable), Strategy, Chain of Responsibility, Mediator, Iterator
    • Patterns spécifiques .NET : Options Pattern (IOptions), Pipeline Pattern avec middleware ASP.NET Core, Outbox Pattern pour la fiabilité des messages
    • Anti-patterns à éviter : God Class, Service Locator, Anemic Domain Model -- comment les identifier et les refactorer
    • Refactoring guidé par les patterns : identifier les patterns dans du code existant et appliquer les transformations
  5. 5

    ASP.NET Core avancé

    • Pipeline de middleware : créer des middleware personnalisés, ordre d'exécution, court-circuit
    • Filtres d'action : IActionFilter, IExceptionFilter, IResultFilter -- cas d'usage et différences avec les middleware
    • Authentification et autorisation : JWT Bearer, politique d'autorisation personnalisée, IAuthorizationHandler
    • Versioning d'API : versioning par URL, header et query string avec Asp.Versioning
    • Rate limiting : System.Threading.RateLimiting, politiques de limitation par client ou par endpoint
    • SignalR : communication temps réel, Hubs, groupes, intégration avec des clients JavaScript
    • Minimal APIs vs Controllers : critères de choix selon la complexité du projet, coexistence dans une même application
    • Health Checks : Microsoft.Extensions.Diagnostics.HealthChecks, endpoints de monitoring, intégration avec les orchestrateurs
  6. 6

    Entity Framework Core avancé

    • Requêtes avancées : projections avec Select, compiled queries, raw SQL avec FromSqlRaw et ExecuteSqlRaw
    • Optimisation des performances EF Core : AsNoTracking() systématique en lecture, Split Queries, batch updates avec ExecuteUpdateAsync et ExecuteDeleteAsync (.NET 7+)
    • Intercepteurs EF Core : IDbCommandInterceptor, ISaveChangesInterceptor -- audit automatique, soft delete
    • Migrations avancées : migrations personnalisées, seeds de données, gestion de plusieurs DbContext
    • Concurence optimiste : ConcurrencyToken, RowVersion -- détecter et gérer les conflits
    • Multi-tenancy avec EF Core : filtres globaux (HasQueryFilter), stratégies de séparation des données par tenant
    • Transactions et patterns de résilience : Polly pour les retries et circuit breakers sur les appels EF Core et HTTP
  7. 7

    Tests avancés

    • Stratégie de tests : pyramide des tests, tests unitaires vs tests d'intégration vs tests end-to-end -- arbitrages pratiques
    • Tests d'intégration avec WebApplicationFactory : tester une API ASP.NET Core complète en mémoire
    • TestContainers : instancier des bases de données réelles dans les tests (SQL Server, PostgreSQL) via Docker
    • Mocking avancé avec Moq et NSubstitute : mocking de méthodes protégées, propriétés, callbacks et sequences
    • Tests de snapshot : Verify pour les assertions sur des objets complexes et des réponses d'API
    • Architecture Testing avec NetArchTest : valider les règles d'architecture par des tests automatisés (dépendances, namespaces, conventions de nommage)
    • Tests de performance : BenchmarkDotNet pour les micro-benchmarks, interprétation des résultats et seuils d'alerte
  8. 8

    Observabilité, CI/CD et industrialisation

    • Logging structuré avec Serilog : sinks, enrichers, corrélation des logs avec les traces distribuées
    • OpenTelemetry .NET : instrumentation d'une application ASP.NET Core -- traces et métriques, export vers un backend de monitoring
    • Gestion des secrets en production : variables d'environnement, principes de rotation, ouverture sur Azure Key Vault
    • Pipeline CI/CD avec GitHub Actions : build, exécution des tests, publication de l'image Docker
    • Ouverture : Docker multi-stage pour .NET, analyse statique avec SonarCloud et Roslynator -- présentation des cas d'usage, approfondissement hors formation
  9. 9

    Cas intégrateur et plan d'action

    • Mise en situation : à partir d'une base de code réaliste présentant des problèmes d'architecture, de performance et de testabilité, les participants diagnostiquent, priorisent et appliquent les techniques vues sur 4 jours
    • Revue collective des solutions : comparaison des approches, discussion des arbitrages
    • Plan d'action individuel : chaque participant identifie les trois chantiers prioritaires à lancer dans son contexte professionnel

Ils nous font Confiance

Nos partenaires de confiance

Ministère des armées
Thalès
Dassault Systèmes
Ariane Group
EDF
SNCF
Orange Cyberdefense
Total
Société Générale
Ministère de l'Intérieur
Boston Consulting Group
Crédit Agricole
Capgemini
Sopra Steria
Ministère de l'économie
Bouygues Télécom
Devoteam
Imprimerie Nationale
Business France
Ordre National des Pharmaciens
Abeille Assurances
Macif
Service Public Fédéral Finances
ANFH
Bruxelles Formation
Atlas OPCO
Uniformation
Adeo
Positive Thinking Company
Sogelink
Septeo
HN Services
Infotel
Ercom
Neosoft
Klaxoon
Asus
Linkvalue
Suneris
Datadocké

Questions fréquentes

FAQ : Formation C# .NET - Développement avancé

  • Oui, mais la prise en charge d'une formation professionnelle par un OPCO dépend de votre opérateur de compétences, de votre branche d'activité et des critères de financement applicables. Ascent Formation vous accompagne dans l'identification des possibilités de financement adaptées à votre entreprise.

  • Une formation inter-entreprises réunit des participants issus de différentes organisations, tandis qu'une formation intra-entreprise est organisée pour les collaborateurs d'une même entreprise. Le format intra permet notamment d'adapter le contenu et les modalités aux besoins spécifiques de vos équipes.

  • Selon la formation proposée, il est possible de suivre une formation professionnelle à distance, en présentiel ou selon d'autres modalités disponibles. Consultez les informations de la session concernée ou contactez-nous pour connaître les formats possibles.

  • Oui, une formation professionnelle peut être adaptée aux objectifs, au niveau des participants et aux besoins opérationnels de votre entreprise. Ascent Formation vous propose des parcours personnalisés pour accompagner le développement des compétences de vos équipes.