2010-07-13 17 views
6

¿Cuál es el mejor, eficiente y rápida para exponer una biblioteca (clase) existente (que define principalmente las operaciones CRUD) como un servicio(servicio WCF o WCF Data Service), de manera que se pueden utilizar con Silverlight o Ajax. ¿Hay herramientas (generadores de código, herramientas RAD) que pueden soportar esto? Gracias de antemano por su ayuda y sugerencias.La exposición de una biblioteca de clases .NET (que define principalmente las operaciones CRUD) como un servicio

Respuesta

2

El mejor enfoque es utilizar WCF para crear un envoltorio usted mismo.

Usted debe hacer esto, en lugar de utilizar un poco de automatización para simplemente exponer a la biblioteca directamente porque:

  • Seguridad, qué quiere que le llame cualquiera cualquier cosa en la biblioteca en cualquier momento?
  • mayoría de las bibliotecas asumen que se llaman directamente en lugar de a través de un servicio (ver fallacies of enterprise development).
  • WCF es sin estado por defecto: es necesario encontrar la manera de manejar cualquier estado asume la biblioteca (que ya no tendrá un solo cliente).
  • ¿Mencioné la seguridad?
1

Si la clase es sólo una colección tonta de los datos, a un tiro de un DataContract en él. (No olvide el espacio de nombres, de lo contrario se pateará más tarde). Luego puede exponerlo usando un proyecto web.

Si tiene lógica real en su clase, entonces usted está en problemas. No hay una buena forma de compartir la lógica empresarial con las aplicaciones de Silverlight. Lo intentan con los Servicios de RIA, pero simplemente no rinde el grado.

1

Debe consultar los Servicios de datos WCF, especialmente en .NET 4. Si bien deberá crear clases o clases de contexto de datos para exponer sus entidades junto con exponer IQueryable e implementar IUpdatable, puede hacerlo aproveche el marco de apoyo que proporciona WCF Data Services junto con un protocolo estandarizado (OData) para sus cargas de datos.

En .NET 4 y Visual Studio 2010, WCF Data Services son cada vez más aceptada, y están siendo empujados por Microsoft como un buen vehículo de acceso a datos para aplicaciones de Silverlight.

Creo que al menos vale la pena echarle un vistazo. Hay mucha información al respecto en MSDN, aunque no creo que esté organizado muy bien en algunos lugares. Aquí hay un link a la sección en MSDN sobre cómo rodar su propio servicio de datos WCF utilizando el proveedor de reflejos incorporado. (El ejemplo solo muestra la recuperación de datos porque es mucho más simple que las actualizaciones/inserciones/eliminaciones de datos, pero hay un enlace en el artículo sobre cómo implementar IUpdatable).

Obtener una IQueryable expuesta a través de WCF Data Services debe ser bastante rápida. IUpdatable tomará un poco más de tiempo (ya que necesita implementar Insertar/Actualizar/Eliminar para cada entidad). Pero una vez que lo pone en funcionamiento (lo cual no debería llevar demasiado tiempo), puede ajustar la configuración de seguridad, agregar métodos de servicio personalizados y agregar funciones y/o entidades adicionales con bastante facilidad. Es un buen marco para lo que describes.

Espero que esto ayude.

Cuestiones relacionadas