2009-01-14 11 views
5

Estamos usando cerca de 7 servicios en este momento. Hay bastante grande.¿Cómo usar el principio de responsabilidad única en servicios grandes de wcf?

¿Alguien tiene alguna experiencia con el principio de responsabilidad única y los servicios de WCF? ¿Esto significa que terminarás con muchos pequeños contratos? Si es así, ¿cómo los maneja en su aplicación?

+0

¡Me pregunto sobre esto también! Solo estoy planeando nuestros contratos de servicio WCF, y dado que cada contrato debe ser pequeño y ser responsable de una unidad de trabajo contenida, podría terminar con cientos de contratos. Este no puede ser el punto, ¿verdad? – Sam

Respuesta

6

Creo que está confundiendo la responsabilidad individual con la segregación de la interfaz.

Desde la perspectiva de la interfaz cliente/servicio, debe mantener sus contratos delgados y en serio. Vea a continuación un ejemplo de eso.

En el lado de SRP, esto debería ser completamente interno para la implementación del servicio y el cliente no debería tenerlo en cuenta. Si su código de servicio es demasiado grande, divídalo en clases. Luego haga que su código de servicio, al menos inicialmente, actúe como una fachada y reenvíe todas las llamadas a los objetos relevantes. Más adelante, tiene la opción de dividir su servicio en múltiples servicios. Pero tenga en cuenta que SOA y el diseño orientado a objetos, aunque se superponen, están separados y tienen diferentes requisitos.

Ejemplo de segregación de interfaz: Tenemos un servicio aquí en el trabajo que usamos para realizar diversas funciones en algunos objetos comerciales. El servicio original tenía una interfaz. A medida que crecía, nos dimos cuenta de que teníamos tres familias de métodos: persistencia de objetos de datos, actualizaciones de negocios, análisis de negocios. Nos dividimos en tres contratos. Nuestro cliente/servicio implementa los 3, por lo que lo único que tuvimos que hacer fue dividir el contrato en tres y configurar dos puntos finales adicionales en nuestra configuración de WCF. Muy simple.

Espero que esto ayude.

1

Yo sugeriría escuchar este podcast en los Hanselminutes:

SOLID Principles with Uncle Bob - Robert C. Martin

Sería ayudar a entender mejor las cosas. . .

+0

Lo hice;) De hecho, me hizo explorar el principio de responsabilidad única para ver si vale la pena el esfuerzo de cambiar nuestro proyecto. Me gustan todos los pequeños ejemplos de rectángulos y cuadrados, pero ¿cómo funciona en la vida real? – Sorskoot

1

Puede aplicar el patrón de fachada para el servicio web que se relaciona con el cliente, y en su código de implementación puede aplicar la responsabilidad individual para que sea mantenible.

Cuestiones relacionadas