Duration 3 days – 21 hrs
Overview
The Advanced Programming in C# Training Course is designed for experienced C# developers who want to expand their expertise in modern C# development. The course covers advanced object-oriented programming (OOP), asynchronous programming, dependency injection, reflection, performance optimization, and design patterns. Participants will also explore working with advanced .NET Core/.NET features, improving application scalability, and integrating external APIs.
Through hands-on exercises and real-world applications, participants will gain the skills to build efficient, scalable, and maintainable software solutions using C#.
Objectives
- Master advanced object-oriented programming (OOP) principles in C#.
- Implement asynchronous programming using async and await for improved performance.
- Utilize dependency injection (DI) and inversion of control (IoC) for modular and testable code.
- Explore design patterns and best practices to enhance software maintainability.
- Work with reflection, dynamic programming, and metaprogramming techniques.
- Optimize performance and memory management in C# applications.
- Apply advanced LINQ queries for efficient data processing.
- Use C# interop services to integrate with unmanaged code and external APIs.
- Understand modern .NET features, such as source generators, records, and minimal APIs.
- Implement secure coding practices and handle error management effectively.
Audience
- Experienced C# developers who want to deepen their expertise.
- Software engineers working on large-scale C# projects.
- Architects looking to enhance application design and performance.
- Developers interested in improving code maintainability and scalability.
Pre- requisites
- Proficiency in C# and .NET framework/.NET Core.
- A strong understanding of OOP concepts and basic design patterns.
- Experience working with LINQ and asynchronous programming.
- Familiarity with Visual Studio and .NET development tools.
Course Content
Day 1: Advanced OOP and Asynchronous Programming
Module 1: Advanced Object-Oriented Programming (OOP)
- Deep dive into inheritance, polymorphism, and abstraction
- SOLID principles and best practices
- Extension methods and their use cases
- Advanced generics and constraints
Module 2: Asynchronous Programming in C#
- Understanding async/await and Task-based programming
- Parallel programming and TPL (Task Parallel Library)
- Cancellation tokens and exception handling in async operations
- Performance considerations in asynchronous programming
Day 2: Design Patterns, Reflection, and Performance Optimization
Module 3: Design Patterns in C#
- Creational Patterns (Factory, Singleton, Builder)
- Structural Patterns (Adapter, Decorator, Proxy)
- Behavioral Patterns (Observer, Strategy, Command)
- Applying patterns in enterprise applications
Module 4: Reflection and Dynamic Programming
- Working with reflection and System.Reflection
- Creating and using dynamic types
- Understanding emit and runtime code generation
- Use cases and performance trade-offs
Module 5: Performance Optimization and Memory Management
- Understanding garbage collection (GC) and memory leaks
- Profiling and optimizing CPU and memory usage
- Using Span<T>, Memory<T>, and ValueTask for performance
- Best practices for reducing application overhead
Day 3: Dependency Injection, Interoperability, and Modern .NET Features
Module 6: Dependency Injection and IoC Containers
- Understanding dependency injection (DI)
- Configuring built-in DI in .NET Core
- Using IoC containers like Autofac, SimpleInjector
- Best practices for dependency management
Module 7: Advanced LINQ and Functional Programming
- Mastering LINQ expressions and delegates
- Using Expression Trees for dynamic queries
- Understanding functional programming concepts in C#
- Combining LINQ with parallel execution
Module 8: C# Interoperability and External API Integration
- Using P/Invoke to call unmanaged code
- Interfacing with COM components
- Consuming RESTful APIs with HttpClient
- Working with gRPC and WebSockets in .NET applications
Module 9: Modern .NET and C# Features
- Exploring source generators for code automation
- Understanding records and immutable types
- Implementing Minimal APIs in .NET Core
- Leveraging C# 10+ features for better code maintainability
Module 10: Secure Coding and Error Handling
- Best practices for secure coding in C#
- Handling exceptions with global exception handlers
- Logging strategies using Serilog, NLog, and Application Insights