Roadmap ASP.NET Core
Esta es mi hoja de ruta🗺️ para los desarrolladores de .NET que desean centrarse en backend/frontend y trabajar específicamente con ASP.NET Core.
– Understanding HTTP Basics –
- Basics of HTTP
- How It Works
- Resources and URIs
- Identifying resources on the Web
- Data URLs
- MIME types
- www and non-www URLs
- Flow of an HTTP session
- HTTP Messages
- Connection management in HTTP/1.x and HTTP/2
- Content Negotiation
- An overview of HTTP
- HTTP headers
- HTTP request methods
- HTTP response status codes
- HTTP security
- HTTP access control (CORS)
- HTTP authentication
- HTTP caching
- HTTP compression
- HTTP conditional requests
- HTTP content negotiation
- HTTP cookies
- HTTP range requests
- HTTP redirects
- HTTP specifications
- Permissions Policy
– Understanding ASP.NET Core –
Basics of ASP.NET Core
- Dependency injection (services)
- DI Containers: Microsoft.Extensions.DependencyInjection
- Life Cycles: Scoped, Transient, Singleton
- Scrutor
- Middleware
- Filters
- Host
- Servers
- Configuration
- Environments
- Logging
- Routing
- Error handling
- HttpContext
Advanced of ASP.NET Core
- Model Binding
- Write custom middleware
- Request and response operations
- Request decompression
- URL rewriting
- File providers
- Change tokens
- High-performance logging
- Use a file watcher
- Factory-based middleware
Best Practices of ASP.NET Core
– APIs with ASP.NET Core-
Basics of APIs
- API protocols (REST APIs, RPC APIs, GraphQL APIs)
- API RESTful
- API Versioning
- URL Naming Conventions
Testing Web APIs
- xUnit or NUnit testing frameworks
- Selenium
- API tests in Postman
- JMeter for load testing
- Assertible for continuous testing
- Test with HttpRepl
Controller-based APIs
- Basics of Controller-based APIs
- ControllerBase class
- Attributes
- ApiController attribute
- Attribute routing requirement
- Automatic HTTP 400 responses
- Binding source parameter inference
- Multipart/form-data request inference
- Problem details for error status codes
- [Consumes] attribute
- Action return types
- Handle JSON Patch requests
- Format response data
- Custom formatters
- Analyzers
- Conventions
- Handle errors
Minimal APIs
- WebApplication and WebApplicationBuilder
- Route Handlers
- Parameter binding
- Create responses
- OpenAPI
- Filters
- Unit and integration tests
- Middleware
- Handle errors
- Authentication and authorization
API Clients & Communications
- REST: Sieve, OData
- GraphQL based Web APIs with Hot Chocolate
- gRPC
Web API documentation
- OpenAPI/Swagger for designing, building, and documenting APIs
Logging
- Microsoft.Extensions.Logging
- Serilog
API SDK Libraries
- Refit
- Restsharp
Object Mapping
- AutoMapper
– Web apps –
- Server rendered ASP.NET Core UI
- Razor Pages
- MVC
- Blazor Server
- Client rendered ASP.NET Core UI
- Blazor WebAssembly
- Single Page Application (SPA): Angular and React
– Real-time apps –
- SignalR Core
- Web Sockets
– Remote Procedure Call apps –
- gRPC
– Testing –
Tests in ASP.NET Core
- .NET Hot Reload
- Test with Visual Studio dev tunnels
- Test web APIs with the HttpRepl
- Razor Pages unit tests
- Unit test controller logic
- Integration tests
- Load and stress testing
- Test middleware
– Debugging –
Debug in ASP.NET Core
- Debug with Visual Studio
- Remote debugging
- Snapshot debugging in Azure
- Snapshot debugging in Visual Studio
- Visual Studio Dev Tunnels with Power Platform
– Data access –
Data access in ASP.NET Core
- Entity Framework with ASP.NET Core
- Azure SQL Database with Azure App Service
- Azure Storage with Visual Studio: Blob storage, Queue storage, Table storage
– Host and deploy –
Deploy ASP.NET Core
- Deploy ASP.NET Core apps to Azure App Service
- Deploy ASP.NET Core apps to Azure Virtual Machines
- Deploy ASP.NET Core apps to Azure Kubernetes Service
- Deploy ASP.NET Core apps to Azure Functions
Host ASP.NET Core
- Host ASP.NET Core on Windows with IIS
- Host ASP.NET Core in Docker containers
- Deploying and scaling on Azure Container Apps
- Container orchestration using Azure Kubernetes Service (AKS)
- Handles private Docker container using Azure Container Registry
- Host ASP.NET Core in a web farm
DevOps for ASP.NET Core
- Continuous integration and deployment (CI/CD)
- Infrastructure as Code (IaC): Terraform or ARM templates
- Monitoring and Logging
Proxy servers & Load balancers
- Nginx, HAProxy, Azure Load Balancer
Health check for ASP.NET Core
- Health checks
– Security and Identity –
- Authentication and authorization
- Data protection
- HTTPS enforcement
- Host Docker with HTTPS
- Safe storage of app secrets in development
- XSRF/CSRF prevention
- Prevent open redirect attacks
- Cross Origin Resource Sharing (CORS)
- Cross-Site Scripting (XSS) attacks
- Application security – OWASP
– Performance –
- Caching
- Rate limiting middleware
- Memory management and patterns
- Scaling ASP.NET Core Apps on Azure
- Object reuse with ObjectPool
- Response compression
- Performance Diagnostics Tools
- Load and stress testing
– Globalization and localization –
- App’s content localizable
- Provide localized resources for languages and cultures
- Strategies for selecting language and culture in a localized
- Globalizing and localizing
- Microsoft Multilingual App Toolkit
Eso es todo, por el momento, seguiré actualizando y agregando contenido en este post. Espero que te haya resultado interesante😉