Mastering C# and .NET Core Enterprise Development

Course Description

This advanced C# and .NET Core training course is designed for experienced developers focused on building robust desktop and console applications. Moving beyond the basics, this program dives deep into essential topics like Object-Oriented Programming, Dependency Injection, and Enterprise Software Design Patterns, all tailored to real-world enterprise needs. Attendees will explore advanced data handling techniques using Entity Framework and LINQ, gain practical experience in multithreading and asynchronous programming and gain an introduction to creating web applications using ASP.NET. The course also covers the latest .NET features, providing insights into maximising the capabilities of new releases. Participants will learn best practices for automated testing and continuous integration and the importance of Version Control and the integration of Git and GitHub into Visual Studio This hands-on, project-oriented course will equip developers with the expertise needed to elevate application performance, maintainability, and scalability in today’s fast-paced software landscape.
4 Days
Contact us for pricing
 

Prerequisites

Attendees should be proficient in C# and .NET fundamentals, including classes, interfaces, basic data structures, and exception handling.

Who should attend?

This course is ideal for experienced C# developers who are comfortable with core programming concepts and have hands-on experience building desktop or console applications.

Learning Objectives

At the conclusion of this course, attendees will have gained skills to:

Use Git and GitHub for version control and integrate with Visual Studio.
Apply SOLID principles and advanced object-oriented programming concepts.
Implement Dependency Injection (DI) in .NET Core applications.
Utilize enterprise design patterns like Repository, Builder, and Factory.
Optimize data handling with Entity Framework Core and LINQ.
Develop efficient multithreaded and asynchronous applications.
Implement unit testing and Test-Driven Development (TDD).
Set up CI/CD pipelines using GitHub Actions or Azure DevOps.
Build and deploy web applications using ASP.NET Core MVC.
Explore the latest .NET features and performance optimizations.

The Importance of Version Control

Git
Github
Git Repository for the course
Visual Studio Professional Git integration

Object-Oriented Programming and Polymorphism

Advanced OOP principles: SOLID, DRY, and other design principles
In-depth coverage of polymorphism, including interface and abstract class usage
Practical examples of polymorphism in desktop applications

Dependency Injection and Inversion of Control

Configuring and managing DI in .NET Core projects
Using DI for desktop and console applications effectively
Best practices with Microsoft.Extensions.DependencyInjection and alternatives like Autofac

Enterprise Software Design Patterns

Common patterns: Repository, Builder and Factory patterns
Real-world scenarios for patterns in enterprise applications
Implementation exercises and comparison of patterns for different use cases

Advanced Data Techniques with Entity Framework and LINQ

Mastering Entity Framework Core: optimising queries, lazy loading, and managing performance
Complex LINQ expressions, including custom filters and sorting
Data migration strategies and schema management
Practical session on debugging and troubleshooting LINQ queries

Multithreading and Asynchronous Programming

Deep dive into BackgroundWorker and managing threads in desktop apps
Asynchronous patterns with async/await, Task Parallel Library, and asynchronous database access
Concurrency and parallelism: using Parallel.ForEach, PLINQ, and avoiding deadlocks
Practical applications, e.g., responsive UI in desktop apps

Automated Testing and Continuous Integration

Unit testing with MSTest, xUnit, and Moq for .NET applications
Test-driven development for desktop and console applications
Setting up CI/CD pipelines in GitHub Actions, Azure DevOps, or similar for .NET Core projects
Code coverage, static analysis, and advanced debugging techniques

ASP.NET Overview

Developing Web Applications using ASP.NET
Creating a .NET Core MVC Web Application
Exploring how Enterprise Design are utilised by the .NET Core MVC Framework

Exploring New .NET Features

Latest .NET enhancements
Performance optimisations

C#OOP.NET.NET Frameworkasp.netasp.net coreasp.net core mvcmvcTDDVisual StudioVisual Studio 2022.NET Core