Práctica correcta de uso de ConfigureAwait en código de servidor en C#
¡Hola a todos! Soy un desarrollador C# principiante y recientemente me encontré con un problema al escribir código asíncrono en ASP.NET Web API. Leí sobre el método ConfigureAwait(false), pero no entiendo completamente cuándo y por qué usarlo en aplicaciones de servidor.
Tengo un controlador que realiza varias llamadas asíncronas a la base de datos y a una API externa. Aquí hay un ejemplo de mi código:
```csharp
public async Task GetUserData(int userId)
{
var user = await _userService.GetUserAsync(userId);
var orders = await _orderService.GetOrdersAsync(userId);
var externalData = await _externalApi.GetDataAsync();
return Ok(new { user, orders, externalData });
}
```
He oído que en el código de servidor se debe usar `ConfigureAwait(false)` después de cada `await`, pero algunos dicen que no es necesario. ¿Cuál es la diferencia entre usar y no usar ConfigureAwait? ¿Hay riesgo de deadlocks? ¿Y cómo aplicarlo correctamente en ASP.NET Core?
Especialmente me interesa