WCF en el mundo real, no en el Hola Mundo – Revisitado en el panorama de .NET Core

Vivir con WCF en el panorama de .NET Core

Antecedentes

WCF para el Mundo Real, No Hola Mundo es un artículo publicado en 2012. Según la fuente de descarga del artículo, este repositorio de GitHub es para .NET Framework 4.8, junto con algunos ejemplos de .NET Core.

Introducción

Según “¡Aquí está el soporte del cliente para llamar a WCF/CoreWCF con System.ServiceModel 6.0!”, Microsoft no tiene el compromiso de ofrecer soporte completo para WCF, pero:

  1. Implementación rápida aunque no tan sencilla de las bibliotecas de clientes WCF, junto con algunos paquetes NuGet
  2. Un proyecto comunitario llamado CoreWCF

Ejemplo de Cliente WCF de .NET Core

Por favor, presta atención a los siguientes proyectos csproj:

  1. RealWorldServiceCoreClientApi.csproj
  2. TestRealWorldCoreIntegration.csproj

Sin embargo, a diferencia del equivalente para .NET Framework, app.config ya no se utiliza, y este archivo de configuración hará que el ejecutor xUnit de Visual Studio falle. Por lo tanto, he codificado manualmente el enlace y la dirección para System.ServiceModel.ClientBase. Sin embargo, en una aplicación del mundo real, no debería ser difícil para ti crear una configuración basada en json a nivel de la aplicación en appSettings.json y utilizar códigos de la aplicación para instanciar los enlaces respectivos.

Puntos de Interés

ClientBase(string endpointConfigurationName)

Dado que app.config ya no se utiliza en .NET Core, este constructor es solo un prototipo de función zombie que realmente no se puede utilizar en tu aplicación de cliente .NET Core. Aparentemente, Microsoft ha comenzado a eliminar el zombie según issue #5358.

Buenos Viejos Tiempos con WCF

Extraño los viejos tiempos con WCF. Las microservicios han sido una tendencia durante más de 15 años. Sin embargo, supuestamente, había estado construyendo microservicios de forma implícita al desarrollar servicios WCF:

  1. Como desarrollador, construía bibliotecas de servicios WCF.
  2. Después del lanzamiento, los encargados de IT decidirán cómo implementarlos ajustando el archivo de configuración app.config:
    • Diferentes combinaciones de bibliotecas de servicios en diferentes hosts
    • Diferentes enlaces
    • Diferente seguridad
    • Versionado

El tiempo de ejecución de .NET Framework junto con “WCF Services / XXX Activation” se encargarán del resto durante la ejecución. Y el tiempo de ejecución de .NET puede generar un analizador/escritor de XML sin caché que solo avanza para manejar flujos SOAP.

Y en un entorno empresarial complejo, es posible que tengas Biztalk en el que los componentes de WCF son ciudadanos de primera clase.

Sin embargo, las cosas avanzan por muchas razones, buenas o malas. Los trabajos de crear nuevos servicios WCF definitivamente han disminuido, aunque los servicios WCF existentes como PPSR y eRx todavía se mantienen durante años y están surgiendo nuevas aplicaciones clientes empresariales que interactúan con estos servicios SOAP.

La Falla en el Cliente WCF Permanece

Por favor, verifica:

Según issue #4912, la falla aún no se ha solucionado, por lo que es posible que aún necesites el método alternativo que sugerí en 2011.

Historia

  • 21 de noviembre de 2023: Versión inicial

Leave a Reply

Your email address will not be published. Required fields are marked *