servicio example create crear con .net wcf rest

.net - example - ¿El kit de inicio WCF REST está muerto en el agua?



wcf soap service c# (10)

Hasta ahora, asumimos que la forma de hacerlo es usar el Kit de inicio WCF REST. Sin embargo, esto todavía está en Vista previa 2 y no se ha actualizado desde marzo de 2009.

Puede construir aplicaciones REST con WCF, sin el Starter Kit. WCF que se envió en .NET 3.5 incluía buenas herramientas y capacidad REST. Incluye la asignación de plantilla URI, el atributo WebGet y más.

El kit de inicio es un código de muestra, clases de utilidad complementarias, videos y otras cosas complementarias que ayudan a ilustrar cómo hacer REST en WCF. No necesita el kit de inicio para hacer REST en WCF.

No necesita esperar a que se complete el kit de inicio para poder realizar REST en WCF. Si hay algo allí que le gusta, como el constructor Solicitud Http, entonces úselo. Es de código abierto, puedes usarlo en tu proyecto. Si no te gusta, no lo uses.

Estamos considerando cambiar de usar WCF para nuestra capa de servicio en aplicaciones a REST.

Hasta ahora, asumimos que la forma de hacerlo es usar el Kit de inicio WCF REST . Sin embargo, esto todavía está en Vista previa 2 y no se ha actualizado desde marzo de 2009.

¿Este proyecto está muerto en el agua?

Si es así, ¿qué alternativas tenemos para crear servicios REST basados ​​en .NET? (Algunos sugieren utilizar ASP.NET MVC , que ya estamos utilizando para nuestra capa de interfaz de usuario)

Editar

Parece que ahora, el WCF REST Starter Kit está realmente muerto . ASP.NET Web API es la alternativa recomendada.


Depende de sus escenarios, pero encontrará que WCF REST se interpone en su camino para habilitar ciertos escenarios.

El kit de inicio comienza a solucionar algunos de esos problemas, otros se solucionarán con la próxima versión, pero si quieres creación de enlaces, negociación de tipo de contenido y tipos de medios personalizados, vas a pasar mucho tiempo haciendo que funcione .

Existen otros marcos que resuelven el mismo problema de una manera más directa, sugiero que eche un vistazo a OpenRasta y Snooze, o incluso a MVC.


Después de pasar una gran cantidad de tiempo jugando con diferentes frameworks .net de descanso, he llegado a una conclusión. Usar asp.net mvc es, de lejos, la forma más fácil y transparente de manejar servicios de descanso. Hay una configuración mucho menos confusa.

Asp.net MVC

Por su propia naturaleza, asp.net mvc se ajusta a la metodología de servicio relajante. En lugar de tomar un marco complicado impulsado por el jabón y "adaptarlo" al protocolo relajante, asp.net mvc adopta el paradigma de programación web en su núcleo. Es mucho más transparente y fácil de depurar. Usando el marco de enrutamiento asp.net, las solicitudes iis están conectadas a las clases de controlador. Devolver cualquier tipo de contenido es muy sencillo. Obtener la configuración es mucho más fácil debido a la filosofía de Convención sobre la configuración . Simplemente funciona. ''Dijo Nuff.

Aquí está la lista de proyectos con los que jugué mientras intentaba que wcf funcionara bien con descanso. Pasé días aprendiendo sobre los diferentes enfoques. Al final, había cosas que me gustaban de cada una, pero no había nada que cubriera todas nuestras necesidades. Mvc gana.

WCF Rest Projects

WCF Rest Contrib - wcfrestcontrib.codeplex.com

Este proyecto tiene algunas características realmente útiles como configuración cero, manejo de errores (para devolver los códigos de respuesta web adecuados) y autenticación web.

Requiere que cambie la clase de fábrica de servicio que crea su servicio wcf. Esto significa que no puede funcionar bien con otras bibliotecas que requieren que use su fábrica.

WCF Rest Starter Kit - code.msdn.microsoft.com/wcfrestlabs/

Esto es realmente solo una "herramienta de aprendizaje" y laboratorio para mostrar cómo el resto podría implementarse en wcf. Parece que ya no está siendo actualizado. Creo que asp.net mvc y wcf 4.0 le han quitado el aliento a sus ventas. Tiene algunas buenas clases que terminaron incorporándose al wcf 4.0 (función de Ayuda).

Herramientas de documentación

WCF Rest AutoDocs - autodocs.codeplex.com

Genera una documentación realmente genial y fácil de usar basada en atributos y una nueva clase de adaptador de comportamiento de punto final.

Golpeé una gran trampa con esto. Cuando lo agregué a WCF, las publicaciones de repente dejaron de funcionar. Seguí recibiendo un error de punto final no encontrado. Finalmente me rendí y dejé de usar la biblioteca. No funcionó bien con otras bibliotecas.

WCF Doc - wcfdoc.codeplex.com

Genera documentación para servicios basados ​​en jabón y descanso. Puede crear sus propios xslts y generar una documentación interesante en función de la marca de su empresa. Actualmente estoy integrando esto en nuestro proceso de compilación.


Estábamos construyendo una aplicación para consumir nuestros servicios existentes. También teníamos el requisito de implementar servicios RESTful, pero nuestro objetivo principal era reutilizar / centralizar nuestros servicios de WCF ya existentes, logrando la reutilización.

Luego probamos la API web y nos pareció bastante sencillo. También nos proporcionó una capa adicional a nuestra arquitectura que también pudimos controlar.

Tuvimos problemas de rendimiento al principio, pero hasta ahora, esos han sido bastante mínimos.

Por lo tanto, si no le importa agregar una capa adicional en sus servicios WCF, déjela existir como una capa API web, de lo contrario HttpClient es igualmente sólida como una opción.


Estoy utilizando WCF Rest Contrib solo porque necesitaba soporte para el formato x-www-form-urlencoded que nos fue enviado desde una aplicación de iPad desarrollada por un tercero. Además, necesito soporte para la validación personalizada de nombres de usuario, que tampoco se admite de manera inmediata con los servicios WCF 4 REST.

Desafortunadamente, la desventaja fue que perdí la capacidad de generar automáticamente páginas de ayuda, que no parece ser compatible con la biblioteca WCF Rest Contrib.

Perder las páginas de ayuda ha resultado ser un PITA real, pero no veo ninguna otra opción en la medida en que los requisitos anteriores no sean negociables.

Espero que, con la explosión de dispositivos móviles que utilizan REST, Microsoft tome más en serio la implementación de una versión de resistencia industrial en WCF. Tal como está, me decepcionó un poco en WCF 4 ... Esperaba algo más cercano a WCF Rest Contrib.

(Por cierto, la biblioteca de implementación de servicios TAMBIÉN es compatible con una implementación de SOAP WS para clientes clásicos que no son móviles, que es más fácil de implementar donde los contratos WSDL se pueden usar para generar el proxy).


No creo que vaya a ningún lado. Pasaron 4 meses desde la Vista previa 1 hasta la Vista previa 2 y solo han pasado 3 meses desde entonces. Lejos de ser oficial, pero este artículo lo nombra como un punto culminante de Framework 4 - Beta 1. También hubo una sesión de PDC . Demasiadas organizaciones están utilizando REST para que sus servicios no tengan soporte en WCF.


Otra posibilidad es que esta funcionalidad forme parte de .NET 4.0 y Visual Studio 2010. Te sugiero que descargues la versión beta y la descubras.


Si busca algunas características adicionales (como tipo de contenido y acepta encabezado / serialización basada, por autenticación de operación, etc.) consulte el proyecto WCF REST Contrib:

http://wcfrestcontrib.codeplex.com/

Se basa en la API REST 3.5 WC1 WCF y ofrece algunas funcionalidades que no se encuentran en el RSK.


Usamos WCF para implementar una API RESTFUL, donde pudimos publicar y recibir datos usando XML, JSON y ProtoBuf. Lo mismo con GET.

Sin embargo, una vez que miramos ASP.NET MVC eliminamos WCF y ahora estamos usando MVC para hacer lo mismo con un código mucho más transparente. Hay algunos buenos artículos en google sobre cómo hacer esto. Nuestra principal necesidad era dar a los clientes la opción de serializar la solicitud y recibir respuestas a XML, JSON o Protobuf.

Yo diría que WCF está muerto para nosotros. Larga vida a MVC


WCF proporciona soporte para servicios de estilo REST desde el lanzamiento de .Net Framework 3.5, y usted puede comenzar a construir servicios REST en WCF hoy .

El WCF REST Starter Kit está pensado como un vehículo para que el equipo obtenga retroalimentación de la comunidad sobre las nuevas ideas de funciones relacionadas con REST en WCF. Estamos trabajando activamente en la incorporación de las características del kit de inicio favorito de los desarrolladores en .Net Framework; por ejemplo, puede usar la función de página de ayuda en la versión .Net 4 Beta 1 lanzada recientemente. A medida que recibimos comentarios sobre las características del kit de inicio, las consideramos para su inclusión en el marco, que puede usar en la producción.

En cuanto a los comentarios de que el kit de inicio está "muerto en el agua", puedo asegurarle que es todo lo contrario. Nuestro objetivo es un ciclo de desarrollo de 4 meses en las nuevas versiones del kit de inicio, como hemos indicado en la página principal del kit de inicio . Tenemos recursos dedicados a apoyar el kit de inicio y a trabajar en versiones futuras.