Pregunta

He hecho un poco de trabajo en el pasado usando WCF WebAPI y realmente me gustó muchas de sus características, solo estoy jugando con ASP.Net Web API en este momento y parece completamente diferente (es decir, completamente eliminado deWcf).

¿Alguien sabe qué características de WCF WebAPI se incluyen en ASP.NET 4 API web?

¿Fue útil?

Solución

He hecho un poco más de lectura en esto y encontramos algunas páginas de la EMPERSTIMIENTO EN ESTE:

http://wcf.codeplex.com/wikipage?title=how%20to%20migrate%20from%20wcf%20web%20api%20to%20asp.net%20Web%20API :

El mapa de abstracciones WCF Web API a ASP.NET Web API aproximadamente de la siguiente manera

wcf web API -> API.NET Web API

  • servicio -> controlador de API web
  • Operación -> Acción
  • Contrato de servicio -> No aplicable
  • punto final -> no aplicable
  • Plantillas URI -> Enrutamiento ASP.NET
  • manejadores de mensajes -> mismo
  • formatters -> mismo
  • Manipuladores de operación -> Filtros, carpetas de modelos

    y http://wcf.codeplex.com/discussions/319671

    La pila integrada admite las siguientes características:

    • Modelo de programación HTTP moderno
    • soporte completo para enrutamiento de ASP.NET
    • Negociación de contenido y formatters personalizados
    • Modelo de encuadernación y validación
    • filtros
    • composición de consultas
    • Prueba fácil a unidad
    • Inversión mejorada de control (COI) a través de dependencyResolver
    • Configuración basada en código
    • auto-host

Otros consejos

De lo que he aprendido, Microsoft hizo un poco de confusión de nombrar aquí.

Supongo que sabe que se trata el WCF, este gran marco construido en la parte superior de XML para permitir al usuario construir servicios distribuidos con una amplia variedad de tecnologías (desde jabón hasta MSMQ, etc.).

Es difícil como el infierno de usar (para mí al menos) y requiere mucha bootstrap para que funcione, y finalmente se dieron cuenta de esto y comenzó a proporcionar una configuración predeterminada para los servicios HTTP simples (KIT DE STARTER DE REST DE REST WCF ¿Alguien?). ASP.NET MVC estaba ganando impulso y algunas de las características que proporcionaron (el emparejamiento automático de argumentos, por ejemplo, por ejemplo), comenzó a aparecer en WCF.

Ahora esa es la situación:

Anuncio: WCF Web API es ahora ASP.NET WEB API! API web ASP.NET Liberado con ASP.NET MVC 4 Beta. La API web WCF y el soporte WCF para Contenido de jQuery en este sitio, se eliminó a finales de 2012.

http://wcf.codeplex.com/wikipage? Título= Getting% 20Started:% 20building% 20a% 20simple% 20web% 20api

y eso es mejor imho.

Estoy bastante seguro de que debería ser posible acoger a ASP.NET MVC4 WEBAPI en la parte superior de WCF (si alguna vez lo necesita), pero no puedo encontrar documentación que pueda demostrarme bien (o incorrecto).

update (no puedo caber como comentario): Espere, existe una enorme diferencia entre "Mover un subconjunto de tecnología de comunicación desde una biblioteca / marco a otro" y "Reemplazar WCF". Personalmente, creo que WCF fue diseñado para algún tipo de concepto de comunicación y tiene un diseño bastante fresco, pero la computación distribuida se está moviendo un poco a las soluciones nuevas (y más simples) (mira el jabón rico en características vs el resto del arrancador y flexible. Aunque muchas personas todavía usan descanso en una manera RPC), y creo que este tipo de patrones de programación se adaptan mejor a la arquitectura del MVC que el WCF. Se puso en el diseño de una forma sencilla de construir / consumir servicios web en la parte superior del WCF, pero finalmente descubrieron que no era la solución correcta.

Sin mencionar que muchos desarrolladores ahora usan ASP.NET MVC y desean realizar servicios web de reposo para su aplicación web, el desorden con WCF a menudo se exagera para este tipo de cosas, y he experimentado eso en mi propia piel.

Creo que el mecanismo de enrutamiento es increíble y la forma correcta de ir, y si observa de cerca, incluyó parte de ella (con nombres y tipos diferentes, pero el patrón estaba allí) en WCF. Así que sí, creo que si MS no descarta esa parte de WCF nosotros debería hacerlo. Para responder estrictamente, no, no creo que haya encontrado Wewget / WebInvoke en ASP.NET MVC *, simplemente no encaja.

Sí mismo El auto-host es probablemente el único bit de WCF contenido en ASP.NET MVC4 en este momento.

Parece que el WCF en sí mismo está muriendo de alguna manera o al menos se está volviendo mucho menos importante, se suponía que debía ser y, debido a eso, también tiene mucho menos esfuerzo de desarrollo puesto en su conjunto de características. Las nuevas características en WCF son más cosmético.

WCF fue diseñado como una forma independiente del transporte / protocolo para la comunicación entre procesos. Incluso la idea era la abstracción independiente, se construyó principalmente en la parte superior de la pila de jabón. Cuando WCF 3.5 trajo apoyo para descansar, se hacía en su mayoría hackeado porque el descanso se trata de la dependencia del transporte. El uso de la API INDEPENDIENTE DE TRANSPORTE para apoyar la comunicación entre procesos que se realiza directamente utilizando las funciones de transporte apareció inconvenientes. Como resultado, la MS First lanzó el kit de inicio de API de reposación WCF que nunca llegó a RTM, pero fue vista previa de las características que luego se incluyó en WCF 4 y finalmente en .NET 4.5 o WCF API WEB. Debido a que el descanso depende de el transporte y actualmente se usa solo con HTTP (incluso es teóricamente posible usar otro protocolo de transporte), la API se trasladó a la parte .NET, que es más adecuada para el procesamiento HTTP, para el MVC de ASP.NET actualmente muy popular.

WCF API WEB se reemplaza por ASP.NET API WEB, que toma las funciones de la API web WCF y las funga con las características de ASPNET MVC. ASP.NET Web API es un nuevo marco (02/2012) para construir y consumir servicios HTTP y una plataforma para construir un servicio reparador.

Aunque no está en la pregunta original, vale la pena señalar que WCF está vivo y bien y su soporte de descanso sigue siendo útil cuando tiene servicios de jabón (WS- *) que debe admitir, pero desea agregar descanso para llegar a más clientes.

Referencia

  1. CODEPLEX: WCF Web API es ahora ASP.NET WEB API
  2. Codeplex: Daniel Roth en el futuro de WCF
  3. CHANEL9: DAN ROTH EN LA NUEVA API WEB DE ASP.NET

El siguiente extracto encontrado en esta página de msdn resume bien este dilema.

Use WCF para crear servicios web confiables y seguros que sean accesibles en una variedad de transportes.Use API web ASP.NET para crear servicios basados en HTTP que sean accesibles desde una amplia variedad de clientes.Utilice ASP.NET WEB API si está creando y diseñando nuevos servicios de estilo de descanso. Aunque WCF proporciona algún soporte para escribir servicios de estilo de descanso, el soporte para el descanso en la API web ASP.NET es más completo y todas las mejoras de las funciones de descanso futuras se realizarán en ASP.NET WEB API. Si ustedTenga un servicio WCF existente y desea exponer los puntos finales de descanso adicionales, use WCF y el WebHTTPBinding.

Aquí hay un buen artículo en el servicio web, WCF y Web API http://goo.gl/t29a5b

servicio web

  • basado en jabón y retorno de datos xml
  • Support solo protocolo HTTP. Soporta solo el protocolo HTTP.
  • consumido por el cliente que capaz de entender los servicios de jabón XML.
  • puede alojar en IIS. Se puede alojar solo en IIS.
  • fácil de aprender y entender.

    wcf

    • basado en datos XML de jabón y retorno. El jabón es pesado, entonces JSON y su sobrecarga sobre la red también.
    • La versión mejorada de los servicios web es compatible con múltiples protocolos como TCP, HTTP, HTTPS, con nombre Tuberes, MSMQ a través de la configuración.
    • más confiable cuando tanto el cliente como el servidor tienen .NET .NET.
    • Su implementación y configuración es compleja
    • consumido por el cliente que capaz de entender los servicios de jabón XML.
    • Auto-hosting, IIS y usando servicios de Windows.

      API web (web API 2.0)

      • Diseño específicamente para construir servicios de restauración HTTP en .NET Framework.
      • API web fácilmente legible y práctico como JSON.
      • Apoya todas las características de HTTP como URL, solicitud / respuesta, encabezados, almacenamiento en caché y versiones.
      • API web Soporte Muchos verbos HTTP, como obtener, publicar, poner, eliminar etc.
      • la aplicación web es apátrida.
      • API web Soporta características de MVC (controladores, resultados de acción, enrutamiento, filtro, carpetas de modelos, contenedor de IOC o inyección de dependencia)
      • La API Web puede ser auto-alojada, alojada en la solicitud y en IIS.
      • Owin (Interfaz web abierta para .NET) se usa para auto-alojamiento.

ASP.net web api is lightweight and REST support inbuilt. It is more suitable for mobile applications.WCF is bloated with more options . It depends on the complexity of the system to select one of these.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top