2009-11-02 13 views
5

¿Existe una mejor práctica en cuanto a la devolución (o NOT datasets de devolución) de los servicios web .NET? Un campamento dice que debemos promover la interoperabilidad y usar esquemas XML para definir la carga útil del servicio web, el otro campo dice que deberíamos devolver conjuntos de datos porque es sencillo en Visual Studio y hacemos el trabajo más rápido.Para devolver un conjunto de datos en un servicio web o no?

Algunos argumentos en el campo anti-conjunto de datos:

  • conjuntos de datos no son WSI compatible
  • Conjuntos de datos parecen raramente ser soportado por el software de tercera parte

Algunos argumentos en el pro-conjunto de datos campo:

  • Son muy útiles y rápidos de construir en Visual Studio.
  • Nosotros (mi empresa) sólo se desarrolla en .NET por lo que la interoperabilidad no es un problema
  • conjuntos de datos en el lado del cliente tienen ventajas para facilitar su uso

Respuesta

3

¿Usar conjuntos de datos? Yo diría que mil veces no. No son interoperables con otros kits de herramientas (como usted menciona). Claro, sus únicos consumidores en este momento son .NET, pero las cosas pueden cambiar rápidamente y es bueno estar preparado.

Consulte The XML Files para leer.

Además, si está desarrollando nuevos servicios, escríbalos usando WCF. Entonces puedes exponerlos como quieras. Si el servicio y el consumidor son internos y ambos son .NET, entonces puede usar el enlace TCP para un mejor rendimiento. Luego, cuando alguien más desee comunicarse con su servicio, puede agregar un nuevo enlace de servicio web para que su aplicación Java (por ejemplo) pueda interoperar con su servicio. Consulte Choosing the right WCF binding para obtener un diagrama de flujo práctico.

1

me gustaría estar en el campo que no se debe enviarlo, pero esta es una decisión que se tomará en base a lo que es importante para su empresa.

Si diseña una API de servicios web que es básicamente un contrato entre la empresa y los clientes. Entonces, algunas personas en la compañía pueden comenzar a usar esta API para operaciones de misión crítica.

Luego recibe una solicitud para que funcione con un Blackberry. Ahora debe cambiar el servicio web, lo que puede interrumpir otras aplicaciones y causar un efecto dominó.

Por lo tanto, si está seguro de que nunca necesitará soportar otras plataformas, excepto .NET, entonces puede ir con la primera opción.

0

No iría por ningún conjunto de datos (como la mayoría de la comunidad aquí). Como dice James, nunca está seguro de que su servicio sea consumido solo por aplicaciones .NET. La razón principal de un servicio web es que es un estándar que puede ser utilizado por todas las tecnologías, si lo crea correctamente.

DataSets también rompe las ideas de diseño impulsado por dominio y la separación de capas y, por lo tanto, se sienten menos atraídos como solían ser al principio. Solo los utilizo para demostraciones que deben ser rápidas y sucias;)

Si realmente desea una forma "fácil" de desarrollar (dentro del IDE) y aún cumplir con todos los estándares, considere crear sus servicios con WCF.

Cuestiones relacionadas