Intermediate C#

Intermediate C#

Description

This course dives deeper into C# and .NET development, with a focus on writing efficient, maintainable, and scalable applications. You’ll expand your grasp of object-oriented programming, implement robust error handling, manage files, and work with collections and delegates — then move into LINQ, asynchronous programming, testing strategies, and package management. Throughout, the emphasis is on best practices and the modern C# capabilities that enterprise-grade development demands.

Audience

Designed for developers who already know C# basics and want to sharpen their skills for production work. Ideal for software engineers, backend developers, and anyone contributing to medium-to-large C# codebases who needs to write cleaner, faster, more testable code.

Objectives

  • Apply advanced object-oriented principles including interfaces and polymorphism
  • Implement structures exception handling using best practices
  • Perform file operations with text and binary data
  • Use and choose among generic and non-generic collections
  • Create and manage delegates, events, and lambda expressions
  • Query and manipulate data using LINQ and its operators
  • Write asynchronous code using async and await for improved responsiveness
  • Leverage reflection, nullable types, and attributes in advanced scenarios
  • Manage external libraries using NuGet and resolve package dependencies
  • Design and implement unit tests and test-driven development workflows

Prerequisites

Participants should have a solid grasp of C# fundamentals, including variables, control structures, methods, and basic object-oriented concepts such as classes and inheritance. Prior experience writing and running simple C# applications is expected, as this course builds upon foundational programming skills. Familiarity with using Visual Studio or a similar development environment is also recommended to follow along with practical exercises and examples.

Outline

  • Module 1: Object-Oriented Programming
    • Inheritance
    • Polymorphism
    • Interfaces
  • Module 2: Exception Handling
    • Introduction to Exceptions
    • Handling Exceptions
    • Throwing Exceptions
    • Best Practices
  • Module 3: File Input and Output
    • Introduction to File I/O
    • Reading and Writing Text Files
    • Working with Binary Files
    • File and Directory Operations
  • Module 4: Collections
    • Introduction to Collections
    • Generic Collections
    • Collection Initializers
    • Choosing the Right Collection
  • Module 5: Delegates, Events, and Lambdas
    • Delegates
    • Events
    • Lambdas
  • Module 6: LINQ
    • Introduction to LINQ
    • LINQ Queries
    • LINQ Operators
  • Module 7: Asynchronous Programming
    • Introduction to Asynchronous Programming
    • The async and await Keywords
    • Basic Async Operations
  • Module 8: Advanced Topics and Best Practices
    • Nullable Types
    • Attributes and Reflection
    • Best Practices
  • Module 9: Package Management
    • NuGet Package Management
    • Vetting NuGet Packages
    • Resolving Dependencies
  • Module 10: Testing
    • Testing Paradigms
    • .NET Test Projects
    • Test in Isolation
    • Test-Driven Development