2012-02-29 32 views
25

Cuál es la diferencia entre WCF Services y Web Services en .net
Cuándo debería usar WCF y cuándo usar Web Services. ¿El servicio REST y WCF es el mismo? Graciasdiferencia entre WCF Services y Web Services y REST Service

+0

posible duplicado de [WCF vs servicio web ASMX] (http://stackoverflow.com/questions/2448472/wcf-vs-asmx-web-service) –

+0

Dedique un poco de tiempo a buscar las preguntas anteriores. Acabo de escribir "WCF vs ASMX" y encontré el duplicado en la parte superior de la lista. –

Respuesta

25

Servicio web es un término abstracto que abarca una gran variedad de proveedores de datos para sistemas distribuidos. Tal vez te estás refiriendo a los servicios web de ASMX, que aún se pueden encontrar en la naturaleza pero que en realidad no se usan mucho en los nuevos desarrollos en la actualidad.

WCF Service es la implementación de Microsoft de SOAP. Hay otras implementaciones o puede hacerlas por su cuenta (no recomendado).

SOAP es un tipo de estado, basado en sesiones, servicio web basado en mensajes. Es bueno si su servicio está diseñado como un conjunto de acciones complejas.

RESTO es un servicio web sin estado, sin sesiones, basado en recursos. Es bueno si su servicio está diseñado para acceder a datos y realizar operaciones CRUD simples en él. SOAP y REST son mutuamente excluyentes. Un servicio no puede ser ambos. Hay formas de manipular WCF vanilla para hacer es RESTful pero estas técnicas se están depreciando. Si desea implementar un servicio web RESTful, existen dos opciones principales en el mundo de Microsoft: WCF Data Services y ASP.NET Web API.

+3

"obsoleto" es una palabra demasiado fuerte. Además, en WCF uno puede exponer el mismo servicio con enlaces REST y SOAP. –

+2

Hay mucho más en una arquitectura REST que solo CRUD basada en recursos, sin estado. Dos de los componentes más críticos son los tipos de contenido y el uso del hipertexto como motor del estado de la aplicación. – cdeszaq

4

Esa es una pregunta muy amplia ... Voy a dar una breve respuesta de alto nivel y sugerir que se busque algo más, ya que hay mucho escrito sobre cada tema. Pero, con suerte, esto debería darte un empujón en la dirección correcta.

En primer lugar, cuando las personas se refieren a servicios y servicios web de WCF, se refieren a las convenciones WCF más recientes que hacen llamadas de servicio bastante genéricas (pueden ser SOAP, REST, etc.) y el antiguo .ASmx SOAP método de Web Servicios. Entonces, a lo largo de estas líneas, sugeriría buscar más en WCF y SOAP/.ASMX para la diferencia de WCF y los servicios web más antiguos.

En cuanto a WCF y REST, no son lo mismo. REST es más una arquitectura, mientras que WCF es un marco. Como ya mencioné, WCF se puede usar para hacer llamadas SOAP o llamadas REST. No estoy seguro de poder agregar mucho más sin entrar en más detalles.

Sin embargo, veré si puedo encontrar algunos buenos artículos sobre REST y WCF un poco más tarde. Personalmente, no veo razón alguna para buscar una forma más antigua de llamar a los servicios web (páginas .ASMX) ya que WCF lo ha dejado obsoleto. Sin embargo, aprender muchas maneras diferentes de despellejar a un gato puede ser útil en un esfuerzo por encontrar lo que más le conviene.

Una vez más, este es MUY alto nivel, pero estos son temas muy generales con un montón alrededor de cada uno, así que espero que una descripción general de alto nivel lo ayude a profundizar en cada tema.

+0

_Algunas personas quieren decir "ASMX" cuando dicen "Servicios web". Otros simplemente usan "Servicios web" para referirse a la tecnología genérica, y consideran que WCF es la forma actual de crear servicios web en la plataforma .NET. Eso me incluiría a mí. El otro tipo es "Servicios web ASMX", a diferencia de "Servicios web WCF". –

+0

@JohnSaunders tienes razón, creo que me estaba yendo fuera de la cuestión, y como estaba pidiendo la diferencia, mi mente siguió el camino que lo hizo. Sin embargo, está en lo cierto, de manera genérica, la mayoría de la gente solo se refiere a los servicios web en referencia a la tecnología genérica. –

1

WCF es multifacético, así que voy a hablar de ello con respecto a su uso más común. La diferencia general entre los servicios WCF y REST se centra en el contenido. Una llamada REST suele ser más centrada en mensaje/documento/entidad (con entidades de cliente, encuentre aquellas que comiencen por M; con entidades de orden, obtenga el pedido 12 y esté vinculada al protocolo HTTP. WCF tiende a centrarse más en operaciones (Invocar buscar operación con params, invocación obtiene operación con parámetros). WCF tampoco está ligado a HTTP.

FYI, hay extensiones para crear servicios basados ​​en REST utilizando WCF (WebInvoke, WebGet atributos).

+0

La mayor diferencia entre WCF y REST es que uno es un marco y uno es una arquitectura. Por lo tanto, se vuelve mucho más difícil comparar realmente los dos. Eso llega incluso al corazón de por qué WCF se puede utilizar para crear servicios RESTful, porque un marco se puede utilizar para implementar una arquitectura. –

+0

Lo que realmente está comparando aquí es SOAP y REST. –

+0

Sé que esto es más sobre SOAP y REST, de ahí el "con respecto a su uso más común", que es para servicios SOAP. La pregunta sonaba un poco como si hubiera sido de alguien nuevo, pero entendía los conceptos de nivel WCF 101 y no quería sobrecargarlo. – Rich

9

REST es una arquitectura

WCF es una API en .NET Framework para construir aplicaciones orientadas al servicio orientado.

En el pasado, una funcionalidad desarrollada como servicio web era accesible a través de Internet y la misma estaba disponible a través de Remoting.

Al usar WCF no es necesario que desarrollemos un código diferente para que sea accesible a través de Internet y en la red local. Simplemente configurarlo con enlaces sería suficiente.

3

Algunas personas dicen "ASMX" cuando dicen "Servicios web".

Otros simplemente usan "Servicios web" para referirse a la tecnología genérica, y consideran a WCF como la forma actual de crear servicios web en la plataforma .NET. El otro tipo es "Servicios web ASMX", a diferencia de "Servicios web WCF".

El "otro tipo" es una tecnología heredada, compatible solo con la compatibilidad con versiones anteriores. No deben usarse para nuevos desarrollos, por lo que no tiene sentido que aprendas sobre ellos.

Como han dicho otros, "REST" es un estilo de arquitectura, no una tecnología.

1

Wcf: wcf es una tecnología como parte de .NET Framework que proporciona un entorno para trabajar con diferentes tecnologías distribuidas y siguiendo un modelo de programación unificada. wcf crea un proxy. wcf serializador de contrato de datos de soporte. registros mostrados formato xml.

** Descanso: ** Descanso es un estilo arquitectónico. Que dice utilizar las funciones existentes de la web de manera más efectiva, eficiente y simple. Los elementos como insertar, actualizar y eliminar. Rest no puede crear un proxy. registros de resto del formato jason.

Servicio web: un servicio alojado en el sitio web se denomina servicio web. web service support xmlserializer

0

Veo que este es un hilo bastante viejo, pero recientemente hice una pregunta similar.

Las respuestas dadas tienen toda la relevancia similar, pero en mi opinión, Ray fue el más cercano a lo que realmente se preguntó. Al diseñar o refactorizar una solución basada en web, siempre obtienes la pregunta si vamos con SOAP o REST. La respuesta radica en la complejidad de la lógica de negocios requerida detrás del servicio. REST es bueno para llamadas API simplistas que generalmente contienen pequeños conjuntos de datos solicitados o procesamiento durante la noche con conjuntos grandes, pero principalmente para solicitudes de datos. SOAP es más un servicio diario interactivo con lógica de negocios también. Por ejemplo, muchos métodos con muchos parámetros.

Lo que hacemos como parte de nuestra solución basada en la web, es intentar y hacer uso de ambos. Para los métodos internos y las funcionalidades principales utilizamos SOAP, pero para las API expuestas preferimos REST. relacionado con el marco, definitivamente WCF como opción preferida, independientemente de si es SOAP o REST.