Modelar servicios con Web Services Software Factory Modeler Edition
Para integrar aplicaciones como en el caso de Dynamics (CRM , AX) se puede hacer uso de Servicios Web para Windows sea WCF o ASMX .
Web Service Factory Modeler Edition es un conjunto de herramientas , patrones , codigo y guias que ayudara mucho en la creacion de Servicios ASMX o WCF.
En esta primera parte aprenderemos en como podemos generar un servicio web mediante la creación de tres modelos diferentes: el modelo de contrato de datos, el modelo de contrato de servicio y el modelo de host.
Bueno luego de instalar Web Service Factory Modeler Edition , crearemos un nuevo proyecto , el tipo de proyecto sera Guidance Package /Model Project en la vista de templates.

Luego de crear el proyecto nos dirigimos al menu Tools / Guidance Package Manager /Enable /Disabled Package y seleccionamos Service Factory Modeling Edition.
Nota- Concuerdo con algo que lei en un post que el nombre correcto es Services Factory sin la palabra Web , “por que todo el trabajo se basa en WCF y uno de los principales objetivos WCF es el constrir servicios independientemente de su implementación en transporte y serializacion.

En la solucion vera un nodo con el nombre de su proyecto cuando le un click derecho vera que puede agragarle un nuevo modelo , para este caso crearemos un modelo de Datos.
Modelo de contrato de Datos
En este caso estamos agregando un DataContract model ingresamos un ModelNamey un XML NameSpace.

El modelo de contrato de datos permite modelar conjuntamente diferentes clases de datos. Además de definir los tipos básicos como elementos de contrato, puede definir también colecciones, enumeraciones y contratos con errores. Los contratos con errores pueden devolverse cuando se produce un error en el servicio.
Para nuestro caso creamos un DataContract Para Product con sus respectivos miembros , luego agregamos un DatacontractCollection que representa la coleccion (Products) .

Finalmente para terminar de revisar la documentacion de WSSF y revisar el Modelo de Contrato de Datos encontrara con este interesante grafico del sisenio de actividades dentro de este modelo.

Modelo de Contrato de Servicios
Ahora crearemos un modelo de Servicio Contract Model de la misma manera agregamos un nuevo modelo ingresamos el nombre y el XML NameSpace.

En el diseniador creamos nuestro modelo para el servicio en este caso contamos con un servicio “Service” NorthWindService1 , este servicio cuenta con un Service Contract , este cuenta con 2 Operaciones “Operation”de nuestro servicio una es para SelectBy y la otra es SelectAllOperation , la primera nos devolvera un Producto de una determinada categoria por eso tiene un mensaje “Message” de entrada para pasarle el parametro y un mensaje de salida Response Product que devolvera la coleccion Products.
Sin encambio SelectAllOperation solo devuelve un mensaje de salida de todos los productos ,es este un ejemplo de como modelar nuestros servicios.

Cada operación de un modelo de contrato de servicio puede tener un máximo de dos contratos de mensajes asociados: un contrato de mensajes para el mensaje de solicitud y otro para el mensaje de respuesta. Puede agregar partes a un contrato de mensajes haciendo clic en él con el botón secundario del mouse. Una parte puede ser un tipo primitivo, como por ejemplo System.Decimal, o bien un contrato de datos como el definido en el modelo de contrato de datos.
Finalmente para terminar de revisar la documentacion de WSSF y revisar el Modelo de Contrato de Datos encontrara con este interesante grafico del sisenio de actividades dentro de este modelo.

En el siguiente Post haremos un resumen y pasaremos a conversar del modelo de host y como generar en base a todo esto nuestro proyecto para el servicio y como implementarlo en una aplicacion.