Course Outline

Session 1: SOLID Principles and Clean Code

  • Review of SOLID principles (Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion)
  • Applying SOLID principles to C# code
  • Clean code principles and best practices
  • Refactoring techniques to improve code maintainability and readability

Session 2: Developing Layered Applications

  • Understanding the layered architecture pattern
  • Implementing separation of concerns in C# applications
  • Designing and implementing presentation, business logic, and data access layers
  • Dependency Injection (DI) in layered applications

Session 3: Generic Covariance and Contravariance

  • Exploring covariance and contravariance in C#
  • Using generic interfaces and delegates with covariance and contravariance
  • Understanding in and out keywords in generic type parameters
  • Practical examples and use cases of covariance and contravariance

Session 4: LINQ and Advanced Querying

  • Review of LINQ basics
  • Deep dive into LINQ query operators
  • LINQ with complex data structures and custom types
  • Performance considerations and optimization techniques

Session 5: IDisposable and Managing Resources

  • Understanding IDisposable interface and the Dispose pattern
  • Implementing proper resource management and cleanup
  • Using the using statement and IDisposable pattern in C#
  • Dealing with unmanaged resources and finalization

Session 6: Weak Events and Memory Management

  • Weak event patterns in C# for event handling
  • Preventing memory leaks with weak references
  • Understanding memory management in .NET and the garbage collector
  • Strategies for optimizing memory usage and minimizing memory leaks

Session 7: Form Philosophy and UI Design Patterns

  • Principles of designing and organizing forms in C# applications
  • MVVM (Model-View-ViewModel) and other UI design patterns
  • Implementing data binding and commanding in WPF applications
  • Handling user input and validation in forms

Session 8: Parallel Programming with Threads, Tasks, and Async/Await

  • Introduction to parallel programming concepts
  • Creating and managing threads in C#
  • Working with Task Parallel Library (TPL) for parallel processing
  • Asynchronous programming with async and await keywords

Requirements

  • Participants are expected to have a fundamental understanding of C# programming concepts, including variables, data types, control flow, and basic object-oriented programming principles
 21 Hours

Number of participants



Price per participant

Testimonials (10)

Related Courses

Related Categories