Esta pregunta no tiene mucho sentido. WCF y ASP NET no son marcos comparables. Es como preguntar: ¿hay alguna ventaja de usar una silla en lugar de un automóvil?
Vamos a dejar en claro, qué es qué.
- ASP .NET es un marco web.
- WCF es un marco de comunicación. Puede usarlo para escribir servicios web SOAP, servicios web REST, comunicación entre dos procesos en la misma computadora o comunicación entre capas en sus aplicaciones.
Como puede ver, ASP .NET es algo muy diferente de WCF. Ahora, ¿cuál es la relación?
- ¿En qué medida se pueden usar los datos de diferentes sitios en otro sitio sin involucrar problemas de derechos de autor?
- ¿Es seguro usar dos puntos: en la ruta de una URL?
- Cómo raspar 2 conjuntos de datos separados de un sitio web usando Python y luego mostrar la correlación entre ellos usando gráficos
- ¿Cuánto impulso tiene PHP?
- Cómo corregir este código
El servicio WCF se puede alojar dentro de la aplicación ASP .NET en IIS, o se puede alojar automáticamente en cualquier aplicación, como el servicio de Windows, la aplicación de consola o una aplicación de escritorio.
- WebApi : ASP.NET WebAPI es otro marco para escribir servicios web. A diferencia de WCF, está vinculado con ASP .NET y puede usarlo solo para servicios web REST.
- ASP .NET Core: es una versión más nueva de ASP .NET reescrita desde cero. Se ejecuta en Linux, es más ligero y más rápido. No está vinculado a IIS. Las aplicaciones ASP .NET pueden ser autohospedadas (de manera similar a WCF).
Entonces, su pregunta probablemente fue sobre WCF vs ASP .NET Core + WebApi , ¿verdad?
en ese caso:
Si está de acuerdo con REST, vaya a ASP .NET Core + WebAPI.
WebAPI se puede usar solo para servicios REST. Si necesita SOAP, o necesita protocolos binarios más eficientes entre dos puntos finales .NET, use WCF.
La ventaja más importante de WCF es que escribe el servicio solo una vez y puede convertirlo en SOAP, REST o IPC u otro.
Digamos que tiene 3 niveles: Datos + Lógica empresarial + Lógica de presentación. Si usa WCF, puede tener todos los niveles en un solo proceso y usar llamadas directas, lo que no tiene ninguna sobrecarga. Más tarde, es posible que desee mover el nivel de datos para separar el proceso. Solo es cuestión de configuración hacer que WCF use IPC. Si luego decide usar cualquier nivel para separar la máquina, puede usar el protocolo binario NetTCP. Y si desea exponerlo a través de la web, puede volver a configurarlo en REST o SOAP.