Roadmap-ASP.NET Core

Roadmap ASP.NET Core

This is my roadmap🗺️ for .NET developers who want to focus on backend/frontend and specifically work with ASP.NET Core.

  1. Understanding HTTP Basics
  2. Understanding ASP.NET Core
  3. APIs with ASP.NET Core
  4. Web apps
  5. Real-time apps
  6. Remote Procedure Call apps
  7. Tests in ASP.NET Core
  8. Debug in ASP.NET Core
  9. Data access in ASP.NET Core
  10. Host and deploy
  11. Security and Identity
  12. Performance
  13. Globalization and localization

– 1. Understanding HTTP Basics –

1. Basics of HTTP

  1. How It Works
  2. Resources and URIs
    1. Identifying resources on the Web
    2. Data URLs
    3. MIME types
    4. www and non-www URLs
  3. Flow of an HTTP session
  4. HTTP Messages
  5. Connection management in HTTP/1.x and HTTP/2
  6. Content Negotiation

2. An overview of HTTP

  1. HTTP headers
  2. HTTP request methods
  3. HTTP response status codes
  4. HTTP security
  5. HTTP access control (CORS)
  6. HTTP authentication
  7. HTTP caching
  8. HTTP compression
  9. HTTP conditional requests
  10. HTTP content negotiation
  11. HTTP cookies
  12. HTTP range requests
  13. HTTP redirects
  14. HTTP specifications
  15. Permissions Policy

– 2. Understanding ASP.NET Core –

1. Basics of ASP.NET Core

  1. Dependency injection (services)
    1. DI Containers: Microsoft.Extensions.DependencyInjection
    2. Life Cycles: Scoped, Transient, Singleton
    3. Scrutor
  2. Middleware
  3. Filters
  4. Host
  5. Servers
  6. Configuration
  7. Environments
  8. Logging
  9. Routing
  10. Error handling
  11. HttpContext

2. Advanced of ASP.NET Core

  1. Model Binding
  2. Write custom middleware
  3. Request and response operations
  4. Request decompression
  5. URL rewriting
  6. File providers
  7. Change tokens
  8. High-performance logging
  9. Use a file watcher
  10. Factory-based middleware

3. Best Practices of ASP.NET Core

– 3. APIs with ASP.NET Core –

1. Basics of APIs

  1. API protocols (REST APIs, RPC APIs, GraphQL APIs)
  2. API RESTful
  3. API Versioning
  4. URL Naming Conventions

2. Testing Web APIs

  1. xUnit or NUnit testing frameworks
  2. Selenium
  3. API tests in Postman
  4. JMeter for load testing
  5. Assertible for continuous testing
  6. Test with HttpRepl

3. Controller-based APIs

  1. Basics of Controller-based APIs
    1. ControllerBase class
    2. Attributes
    3. ApiController attribute
    4. Attribute routing requirement
    5. Automatic HTTP 400 responses
    6. Binding source parameter inference
    7. Multipart/form-data request inference
    8. Problem details for error status codes
    9. [Consumes] attribute
  2. Action return types
  3. Handle JSON Patch requests
  4. Format response data
  5. Custom formatters
  6. Analyzers
  7. Conventions
  8. Handle errors

4. Minimal APIs

  1. WebApplication and WebApplicationBuilder
  2. Route Handlers
  3. Parameter binding
  4. Create responses
  5. OpenAPI
  6. Filters
  7. Unit and integration tests
  8. Middleware
  9. Handle errors
  10. Authentication and authorization

5. API Clients & Communications

  1. REST: Sieve, OData
  2. GraphQL based Web APIs with Hot Chocolate
  3. gRPC

6. Web API documentation

  1. OpenAPI/Swagger for designing, building, and documenting APIs

7. Logging

  1. Microsoft.Extensions.Logging
  2. Serilog

8. API SDK Libraries

  1. Refit
  2. Restsharp

9. Object Mapping

  1. AutoMapper

– 4. Web apps –

1. Server rendered ASP.NET Core UI

  1. Razor Pages
  2. MVC
  3. Blazor Server

2. Client rendered ASP.NET Core UI

  1. Blazor WebAssembly
  2. Single Page Application (SPA): Angular and React

– 5. Real-time apps –

  1. SignalR Core
  2. Web Sockets

– 6. Remote Procedure Call apps –

  1. gRPC

– 7. Tests in ASP.NET Core –

  1. .NET Hot Reload
  2. Test with Visual Studio dev tunnels
  3. Test web APIs with the HttpRepl
  4. Razor Pages unit tests
  5. Unit test controller logic
  6. Integration tests
  7. Load and stress testing
  8. Test middleware

– 8. Debug in ASP.NET Core –

  1. Debug with Visual Studio
  2. Remote debugging
  3. Snapshot debugging in Azure
  4. Snapshot debugging in Visual Studio
  5. Visual Studio Dev Tunnels with Power Platform

– 9. Data access in ASP.NET Core –

  1. Entity Framework with ASP.NET Core
  2. Azure SQL Database with Azure App Service
  3. Azure Storage with Visual Studio: Blob storage, Queue storage, Table storage

– 10. Host and deploy –

1. Deploy ASP.NET Core

  1. Deploy ASP.NET Core apps to Azure App Service
  2. Deploy ASP.NET Core apps to Azure Virtual Machines
  3. Deploy ASP.NET Core apps to Azure Kubernetes Service
  4. Deploy ASP.NET Core apps to Azure Functions

2. Host ASP.NET Core

  1. Host ASP.NET Core on Windows with IIS
  2. Host ASP.NET Core in Docker containers
    1. Deploying and scaling on Azure Container Apps
    2. Container orchestration using Azure Kubernetes Service (AKS)
    3. Handles private Docker container using Azure Container Registry
  3. Host ASP.NET Core in a web farm

3. DevOps for ASP.NET Core

  1. Continuous integration and deployment (CI/CD)
  2. Infrastructure as Code (IaC): Terraform or ARM templates
  3. Monitoring and Logging

4. Proxy servers & Load balancers

  1. Nginx, HAProxy, Azure Load Balancer

5. Health check for ASP.NET Core

  1. Health checks

– 11. Security and Identity –

  1. Authentication and authorization
  2. Data protection
  3. HTTPS enforcement
  4. Host Docker with HTTPS
  5. Safe storage of app secrets in development
  6. XSRF/CSRF prevention
  7. Prevent open redirect attacks
  8. Cross Origin Resource Sharing (CORS)
  9. Cross-Site Scripting (XSS) attacks
  10. Application security – OWASP

– 12. Performance –

  1. Caching
  2. Rate limiting middleware
  3. Memory management and patterns
  4. Scaling ASP.NET Core Apps on Azure
  5. Object reuse with ObjectPool
  6. Response compression
  7. Performance Diagnostics Tools
  8. Load and stress testing

– 13. Globalization and localization –

  1. App’s content localizable
  2. Provide localized resources for languages and cultures
  3. Strategies for selecting language and culture in a localized
  4. Globalizing and localizing
  5. Microsoft Multilingual App Toolkit

That’s it, for now, I’ll keep updating and adding content in this post. I hope you found it interesting😉

2