una tiene standard para net microsoft framework dependencia definida c# nuget httpclient bcl

c# - tiene - El estado actual de System.Net.Http vs. Microsoft.Net.Http



system net http ya tiene una dependencia definida para system io (1)

Esto ha sido durante mucho tiempo y continúa siendo confuso. He visto ese tipo de mensajes, pero a partir de ahora, parece que System.Net.Http es la opción correcta, al menos para .NET en la plataforma de Windows y no tiene dependencias externas.

Para .NET Core, he usado Microsoft.Net.Http aunque requiere Microsoft.BCL . A menos que tenga problemas, sugiero dejar los sistemas heredados tal como están, especialmente dado que estos espacios de nombres parecen ser objetivos en movimiento.

Si eso no es suficientemente confuso para usted, la muestra HttpClient vinculada desde System.Net.Http usa Windows.Web.Http ! Esa implementación es para aplicaciones de la Tienda Windows.

Quizás el próximo año todo esto cambie nuevamente.

Estoy confundido con el paquete de HttpClient . Anteriormente se distribuyó como parte del paquete Microsoft.Http.Net NuGet, mientras que System.Net.Http se consideró heredado. Parece que ahora es todo lo contrario: hay un nuevo paquete System.Net.Http para todas las plataformas y Microsoft.Net.Http no se ha actualizado desde hace tiempo y, según la gente del equipo de desarrollo de Microsoft, estará en desuso.

Preguntas entonces:

  • ¿Podemos reemplazar dependencias en Microsoft.Net.Http paquete Microsoft.Net.Http NuGet con (el más nuevo) System.Net.Http ?
  • ¿Debería la plataforma heredada .NET 4.0 seguir usando Microsoft.Net.Http ? ¿Qué hay de las plataformas que no son de Windows (iOS, Android)? El nuevo System.Net.Http admite, pero recuerdo que con Microsoft.Net.Http tuve que instalar adicionalmente Microsoft.Bcl.Build y Microsoft.Bcl para que funcionaran las plataformas cruzadas. System.Net.Http no depende de ellos. ¿Se pueden omitir paquetes de Bcl?
  • System.Net.Http carece de algunos métodos de extensión Http, como SupportsPreAuthenticate , y un intento de llamar a estos métodos da como resultado errores en el tiempo de ejecución (método que falta). ¿Cómo deberíamos lidiar con esto?