visual studio servicio example ejemplo create crear c# .net wcf rest

c# - studio - RESTO de asp.net 2.0



wcf service c# example (7)

Eche un vistazo a este CodeProject para un punto de partida. Parece algo ... hacky. Modernizar a WCF sería más limpio.

Acabo de crear un sitio web asp.net 2.0. Ahora necesito agregar el servicio web REST para poder comunicarme con otra aplicación web. He trabajado anteriormente con el proyecto de servicio web 2 SOAP, pero no tengo ningún tipo de experiencia con REST. Supongo que solo un par de semanas funcionaría bien. después de googlear, descubrí que no es tan fácil.

Esto es lo que encontré:

NO HAY DESCANSO de la caja de asp.net.

WCF REST Starter Kit Codeplex Preview 2 base en .net 3.5 y todavía en beta

Rest. Ejemplo de ASP.NET

Servicios web REST en ASP.NET 2.0 (C #)

Exyus

Manejo de los métodos POST y PUT con Lullaby

Servicio de datos ADO.NET

...

Ahora mi pregunta,

a) ¿Es una solución REST para .net 2.0? Si es así, ¿cuál es la mejor solución?

b) si es necesario, ¿qué tan difícil es migrar mi asp.net de 2.0 a 3.5? ¿es tan simple como simplemente compilar, o tengo que cambiar mucho el código?

c) WCF REST Starter Kit es lo suficientemente bueno para usar en producción?

d) ¿Tengo que aprender WCF primero, luego WCF REST Starter Kit? ¿Dónde está el mejor lugar para comenzar?

Agradezco cualquier ayuda aquí.

Gracias Wes


No estoy seguro acerca de una solución REST para 2.0. Así que creo que WCF va a ser la forma en que tendrás que ir con esto. MSDN tiene una larga introducción .

Mi filosofía personal es que si una tecnología todavía está en beta, preferiría no utilizarla para algo que potencialmente sea una aplicación de producción, así que comenzaría con WCF desde que se introdujo en la versión 3.0 del framework.

3.0 y 3.5 es en realidad una actualización de las bibliotecas, pero el CLR aún es 2.0, por lo que si las bibliotecas que está utilizando no están en desuso o modificadas en los nuevos marcos, debería estar bien.


Podría considerar el uso de ASP.NET MVC como una plataforma de servicios web RESTful. WCF es probablemente el camino a seguir en el largo plazo, pero MVC debería manejarlo fácilmente. Tus acciones solo necesitarían configurarse para devolver JSON o XML, dependiendo de cómo quieras serializarlo. MVC ofrece un JsonResult y un ContentResult totalmente personalizable, es decir, usted serializa su respuesta a una propiedad de cadena en el resultado y establece su tipo y codificación.

NOTA : MVC requiere 3.5 SP1 por lo que no será una solución 2.0. Si necesita 2.0, deberá buscar en otro lado.


REST, o RESTFUL Agregar esto al System.Web en web.config habilitará http get, y lo pondrá ... también conocido como REST-Me gusta ... pero no reposo completo.

<System.Web> <webServices> <protocols> <add name="HttpSoap"/> <add name="HttpPost"/> <add name="HttpGet"/> </protocols> </webServices> </System.Web>


Use WCF REST.

Puedes usarlo hoy. La biblioteca WCF REST está lista para ser utilizada en producción.

El Kit de inicio de WCF (consulte http://msdn.microsoft.com/en-us/netframework/cc950529.aspx ) es otra cosa. Entrega cosas extra; Incluye un conjunto de plantillas de proyectos VS, documentos, muestras y algunas herramientas para compilar aplicaciones REST (cliente o servidor) con WCF. Una herramienta genial es el complemento "Pegar XML como tipo" en Visual Studio.

Por otro lado, al construir un cliente REST, en el caso general, recomendaría aprovechar el ensamblado de HttpClient en el kit de inicio (Microsoft.Http.dll). Es pequeño, simple y útil. Una dependencia de bajo riesgo y alto valor incluso en el estado actual de "vista previa" del Starter Kit.

Si consumía solo un servicio REST, entonces no necesita el ensamblado general Microsoft.Http.dll; puedes hacer todo lo que hace en algún código que use WebRequest. Pero si desea una clase flexible más general para manipular las solicitudes REST del lado del cliente, tome ese Microsoft.Http.dll.


Si quiere un marco construido con REST en mente, debería echarle un vistazo a OpenRasta ...

http://openrasta.org/


Si busca un proyecto que planifique un servicio REST, tiene razón al decir que no hay una solución lista para usar. Sin embargo, los servicios web RESTful son posibles usando WCF. La parte clave es usar varios atributos al definir sus funciones de servicio que le permitan al .NET Framework saber que la función no está esperando SOAP. El principal atributo para usar es el atributo WebInvoke .

Aquí hay un ejemplo de developer.com :

[OperationContract] [WebInvoke(Method = "PUT", UriTemplate = "/admin/post/{id}")] void UpdatePost(string id, Post post);

El código anterior se definirá realmente en una interfaz para su servicio web. La interfaz se crea automáticamente cuando crea su proyecto de servicio web WCF. El código real para la función se colocará en la clase utilizada para implementar el servicio web.

Consulte el artículo en developer.com para obtener un tutorial completo. Puede parecer abrumador al principio si eres nuevo en WCF, pero después de que te sumerjas en él, estoy seguro de que comenzarás a entenderlo rápidamente. Aquí está el enlace para el Artile: http://www.developer.com/net/article.php/10916_3695436_1

Para responder todas sus preguntas,

a) En .NET 2.0, usted debería poder construir servicios RESTful usando WSE2.0 , pero si tiene la opción de usar .NET 3.5, le recomiendo que siga la ruta de WCF, ya que es mucho más fácil y está diseñado con REST. en mente.

b) Convertir su proyecto no será difícil en absoluto. Solo se trata de apuntar a la nueva versión del marco en la configuración de su proyecto. La conversión de un servicio web de un servicio WSE2.0 a un servicio WCF será un poco más complicado. La forma más sencilla de hacerlo sería copiar el código de cada una de las diferentes funciones del servicio web en la clase en la que implementa la nueva versión de la función. Copiar y pegar shinanigans :)

c) No estoy seguro de a qué se refiere este kit de inicio. Los servicios web RESTful deben ser totalmente compatibles con WCF, que se lanzó completamente a partir de 3.5.

d) Sería útil comprender WCF al menos un poco antes de comenzar, pero no es fundamental comprenderlo por completo para comenzar. Yo recomendaría simplemente leer el artículo de MSDN sobre WCF al menos una vez, y luego comenzar a trabajar. Estoy seguro de que encontrará otras preguntas al comenzar, pero puede buscar esas partes a medida que las encuentre.

De todos modos, espero que esta información ayude. Buena suerte para ti.

Editar

Se han realizado algunas mejoras en el mundo REST. Como Darrell Miller mencionó en los comentarios, WCF de hecho no fue construido con REST en mente. Hablé mal antes. De hecho, el marco se construye con SOAP en mente y el atributo WebInvoke llena el espacio. Aunque hay mucho debate sobre el tema (Web API vs WCF REST), ASP.NET Web API es una nueva opción para crear servicios REST en .NET. Recomiendo encarecidamente que cualquiera que lea esta publicación y pueda usar .NET 4.5 en su proyecto, lo considere como una opción.