Course Code:
taildotnet
Duration:
21 hours
Course Outline:
Session 1 - C# .NET for Front End Developers
Topics:
- Brief this is .Net overview (5 - 10 minutes) to highlight the .Net ecosystem
- Key differences between C# and Typescript/Javascript, including unique language features and syntax (e.g., static typing and features that aren't easily replicated in TS)
- Introduction to nullable reference types and their importance
Hands-on:
- Create a simple console app to explore C# syntax differences and experiment with nullable reference types
Session 2 - Building a ASP.NET Core Web API
Topics:
- Overview of ASP.NET Core Web API project structure and MVC patterns
- How dependencies are managed (compagin Angular's DI with ASP.NET Core's built-in DI)
Hands-on:
- Create a new ASP.NET Core Web API project
- Build a simple controller with basic CRUD endpoints
- Test endpoints using tools like Postman or Swagger
Session 3 - Designing APIs: versioning and contract management
Topics:
- Strategies for API versioning and maintaining backward compatibility
- Managing API contracts: handling changes (adding vs. removing properties) and the impact on client applications
Hands-on:
- Implement API versioning in your sample API
- Simulate changes in data contracts and test versioned endpoints
Session 4 - Architectural patterns and configuration
Topics:
- Introduction to the repository pattern and service-to-service communication
- Introduction to configuration in general
Hands-on:
- Refactor your API from Session 2 to introduce a service layer and repository pattern
- Configure DI to register services with different lifetimes
Session 5 - Asynchrony and configuration management
Topics:
- Best practices for asynchronous programming: using async/await and cancellation tokens
- Managing application configuration: appsettings.json vs. appconfiguration and binding settings to objects
Hands-on:
- Enhance API endpoints to support async operations and implement cancellation tokens
- Bind configuration settings to a custom settings class within your service
Session 6 - Testing, DevOps & Deployment: Containerization and Beyond
Topics:
- Writing unit tests for Web APIs using xUnit and FluentAssertions
- Optional: Introduction to containerizing .NET Core applications using Docker
- Overview of deployment strategies
- Brief discussion on integrating with DevOps pipelines
Hands-on:
- Create and run unit test for controllers and services
- Optional: Containerize the API built in previous sessions using Docker
- Simulate a blue-green deployment scenario (using local or mock environments)