2012-05-03 12 views
9

Necesito crear una aplicación .Net que devuelva JSON que será utilizada por las aplicaciones móviles..Net opciones para API JSON?

Un enfoque es simplemente usar una aplicación MVC y hacer que mi controlador devuelva JSON, por lo que ir a un url.com/controller/action/params me daría mi JSON.

He oído que crear un servicio WCF también es una buena opción. Aunque no sé mucho sobre WCF.

¿Existen ventajas y desventajas para cada una? ¿Es uno más confiable para ser utilizado como un servicio que solo devuelve JSON?

+0

si para exponer una API o simplemente para ser utilizado por esas aplicaciones móviles? ¿Quién creará esas aplicaciones? – ivowiblo

+0

realmente solo para ser utilizado por las aplicaciones móviles que estoy creando. – RJP

+0

MVC será la solución más simple en ese momento. Es realmente sencillo. Usar WCF le dará muchos gastos generales y muchas funciones que no necesitará (como exponer la referencia de sus servicios) – ivowiblo

Respuesta

7

Otro contendiente es ASP.NET Web APIwhich uses WCF in self hosted scenario.

Existen ventajas y desventajas, pero todo depende de lo que necesite ahora y viceversa, cuál es su nivel de experiencia, compromiso tecnológico y cuáles son las ventajas y desventajas del diseño.

Depende de lo que quiera decir confiable. Una tecnología no es necesariamente más o menos confiable. Hay muchos factores que entran en la confiabilidad.

Estos son algunos de los pocos pros/contras en ningún orden en particular, preferencia o integridad.

ASP.Net MVC/WebAPI/ServiceStack

Pros:

  • de instalación y funcionamiento en cuestión de minutos para el escenario básico (tienen URL obtener algunos datos JSON)
  • simple de configurar.
  • configuración de DESCANSO directo.
  • Control completo del enrutamiento.
  • JSON soporte nativo (API Web ASP.NET puede serializar automáticamente
    su modelo a JSON, XML, o algún otro formato, y luego escribir
    los datos serializados en el cuerpo del mensaje de respuesta HTTP
    .)

Contras:

  • no pueden describir su servicio a un consumidor: No API como WSDL existe hasta el momento que puede decir a los tipos de datos de clientes, operaciones y requisitos de servicio sólo
  • seguridad
  • Transporte - punto-a-punto de la seguridad
  • Sin nivel de mensaje de seguridad
  • protocolos Sin servicio de descubrimiento (a partir de ahora)
  • Sin enrutamiento de mensajes
  • Sin compatibilidad con varios protocolos, p. tcp
  • escenario de alojamiento individual (IIS - esto puede ser un pro demasiado)

WCF

Pros:

  • El soporte multi-protocolo
  • seguridad en el transporte y el Mensaje
  • Altamente configurable e interoperable
  • Very extensible
  • Admite varios escenarios de mensajes, p. enrutamiento, dúplex, pub/sub, cola, etc.
  • Un montón de perillas para dar forma a los mensajes y funcionamiento interno
  • amplia variedad de escenarios de alojamiento (IIS/WAS, servicios de Windows, Consola)

Contras:

  • aprendizaje empinada curva de
  • REST story weak (sí existe pero webHttpBinding trata de explicar a alguien TemplateURI y WebInvoke/web y obtener bodystyle)
  • Muchas perillas
+0

Deseo poder votar dos veces por esta ... gran respuesta – MilkyWayJoe

+0

ServiceStack no solo tiene soporte JSON nativo , tiene el más rápido disponible para .NET: http://www.servicestack.net/benchmarks/ ServiceStack también es compatible con JSON, XML y SOAP, JSV y CSV listos para usar. También admite más hosts que HTTP con los hosts Redis y RCON integrados. Esta pregunta analiza WebApi vs ServiceStack en detalle http://stackoverflow.com/q/9699083/85785 – mythz

1

Realmente me iría con el enfoque de WCF. Le dará más flexibilidad y le permitirá ejecutar el servicio utilizando muchos protocolos diferentes, no solo HTTP, por ejemplo.

2

Si todo lo que busca es un servicio, le sugiero algo como WCF. Sin embargo, WCF es engorroso, entonces sugeriría algo más simple como ServiceStack. Le permite crear su servicio usando POCOs básicos. También viene incorporado y listo para responder con JSON/XML/SOAP (sin acciones adicionales de su parte)