¿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
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?
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.
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.
- 1. Exposición de un servicio .Net
- 2. Operaciones no CRUD en un servicio RESTful (WebAPI)
- 3. ¿Cómo hacer una prueba de unidad de las operaciones de CRUD en un repositorio?
- 4. ¿Optimiza y hace que las operaciones de formulario/crud sean más eficientes en las aplicaciones web?
- 5. ¿Por qué las operaciones CRUD son tan malas en un diseño SOA?
- 6. Biblioteca de clases portátil y .NET ConcurrentDictionary
- 7. Implementación de un CRUD utilizando una interfaz
- 8. Uso de la API Rally de descanso para las operaciones CRUD
- 9. ¿Está bien terminar utilizando clases principalmente estáticas?
- 10. ¿Cambiar las operaciones de diario en .NET?
- 11. Codificación Html en la biblioteca de clases .NET
- 12. operaciones matemáticas de precisión simple en .NET?
- 13. Hacer que las clases de servicio de primavera sean definitivas?
- 14. Tablas/bases de datos separadas para informes y operaciones CRUD
- 15. ¿Qué es una buena biblioteca de Java para las operaciones dinámicas del cliente SOAP?
- 16. ¿Cuáles son las mejores prácticas para las bibliotecas de clases que usan inyección de dependencia para operaciones internas?
- 17. Biblioteca para operaciones de polígono
- 18. Capa de servicio de aplicación como clases estáticas
- 19. WCF Mismo IParameterInspector para todas las operaciones en un servicio
- 20. Consumir una referencia web en una biblioteca de clases (C# /. NET)
- 21. Cuando se realizan pruebas unitarias, ¿tiene que usar una base de datos para probar las operaciones CRUD?
- 22. Uso de la biblioteca .NET de PowerShell
- 23. Obteniendo las plantillas de Razor en una biblioteca de clases
- 24. Cómo ejecutar una DLL como un servicio en .NET
- 25. Inyectar conversión de tipo personalizado a clases de biblioteca .NET
- 26. La exposición de un puntero en Boost.Python
- 27. Uso correcto de las clases de repositorio/servicio
- 28. ¿Debo escribir Pruebas unitarias para operaciones CRUD cuando ya tengo Pruebas de integración?
- 29. ¿Cómo se crea un conjunto de prueba unitaria para una biblioteca de clases portátil .NET?
- 30. Incluyendo una referencia de servicio de una biblioteca de clase