El presente post es sobre las actualizaciones a al Servicio de ClientesService. Se describe paso a paso la secuencia de como llegar a ejecutar un proyecto en SOAP con Hibernate y WCF.
Servicio SOAP – Hibernate – WCF
1. Creamos un Proyecto WCF dándole un
nombre de Proyecto en este caso SOAPVeterinaria-Ponemos la ruta donde se
guardará nuestro proyecto y también damos un nombre a la Solución que puede
contener este y otros proyectos.
Base de Datos BD_Veterinaria - Tabla Cliente
2. Es recomendable cambiar el nombre
a la clase que por defecto viene con el nombre de IService1, en este caso lo
renombramos por “IClientesService”, de igual manera con el archivo *.svc que lo
renombraremos por “ClientesService”. De esta manera podemos localizarlos más rápidamente.
Un tip es localizarnos en el nombre del archivo para cambiarlo de nombre
apretando las teclas Ctrl R + Ctrl R.
3. Previamente a este paso agregamos
2 carpetas (Dominio y Persistencia)
La Capa de Dominio: Esta capa debe estar
presente dentro del sistema que se desee desarrollar. En ella está contenido
nuestro modelo conceptual, mejor conocido como modelo de dominio. Este modelo
consiste en todas aquellas entidades (facturas, productos, órdenes de compra,
etc.) y actores (clientes, bancos, empleados, etc.) que componen y/o
interactúan en los procesos del negocio, y son creadas a raíz de la abstracción
de sus atributos significativos para el sistema.
- En esta carpeta agregamos una clase Clientes con lo siguiente y un archivo XML Clientes.hbm.xml
La Capa de Persistencia: En esta capa se da
el almacenamiento de información en un medio no volátil (bases de datos,
archivos de texto plano, etc). Los elementos de esta capa típicamente funcionan
como objetos de acceso a datos o DAOs (Data Access Objects), proveyendo métodos
para leer y almacenar los datos de los objetos de negocio. Es por esto que la
existencia de esta capa típicamente está condicionada a la existencia de la
capa de dominio. Si no hay un modelo de dominio presente, no hay razón para
hacerlo persistente.
- En esta carpeta agregamos las clases ConexiónUtil, BaseDAO, ClienteDAO y NHibernateHelper.
- Agregamos las Librerias Iesi.Collection.dll y NHibernate.dll a nuestro Solución y las agregamos en la carpeta References (Click Derecho/Agregar Referencia/Examinar y ubicamos los archivos)
5. En el archivo XML Clientes.hbm.xml de la Capa Dominio codeamos lo siguiente:
- Recordar este paso que es ir a la propiedad Acción de Compilacion del archivo xml, poner Recurso Incrustdo.
6. En el archivo IClientesService codeamos lo siguiente:
8. En la clase ConexionUtil de la capa de Persistencia codeamos lo siguiente:
9. En la clase HBibernateHelper(crea la SessionFactory y utiliza HttpContext para mantener una
session) de la capa Persistencia codeamos lo siguiente:
10. El la clase BaseDAO de la capa de Persistencia codeamos lo siguiente
11. El la clase ClienteDAO de la capa de Persistencia codeamos lo siguiente
12. En el archivo Clientes.svc codificar lo siguiente.:
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Runtime.Serialization;
using
System.ServiceModel;
using
System.Text;
using
SOAPServices.Persistencia;
using
SOAPServices.Dominio;
namespace
SOAPServices
{
public class Clientes : IClientes
{
private
ClienteDAO clienteDAO = null;
private
ClienteDAO ClienteDAO
{
get
{
if
(clienteDAO == null)
clienteDAO = new ClienteDAO();
return
clienteDAO;
}
}
public Cliente
CrearCliente(string ClienteNombre, string ClienteApellidos, string
NumDocumento)
{
Cliente v = new Cliente()
{
txtClienteNombre = ClienteNombre,
txtClienteApellido = ClienteApellidos,
NumDocumento = NumDocumento
};
try
{
List<Cliente> a = ListarCliente();
foreach (Cliente i in a)
{
if (i.NumDocumento == NumDocumento)
throw new FaultException("Cliente Ya existe, por favor ingresar
nuevamente.");
}
}
catch
(FaultException ex)
{
throw
ex;
}
return ClienteDAO.Crear(v);
}
public Cliente
ObtenerCliente(int codigo)
{
return ClienteDAO.Obtener(codigo);
}
public Cliente
ModificarCliente(int Codigo, string ClienteNombre, string
ClienteApellidos, string NumDocumento)
{
Cliente v = new Cliente()
{
idCliente = Codigo,
txtClienteNombre = ClienteNombre,
txtClienteApellido =
ClienteApellidos,
NumDocumento = NumDocumento
};
return ClienteDAO.Modificar(v);
}
public void
EliminarCliente(int codigo)
{
Cliente v = ClienteDAO.Obtener(codigo);
ClienteDAO.Eliminar(v);
}
public List<Cliente> ListarCliente()
{
return ClienteDAO.ListarTodos().ToList();
}
}
}
13. Hacer click derecho en el archivo Clientes.svc (Click derecho, ver en el explorador y copiar la dirección que muestre en pantalla.
14. Abrirmos el El el archivo WcfTestClient para verificar nuestro código realizado. Este archivo se encuentra en la carpeta \Common7\IDE\ donde hayamos instalado Visual Studio. Agregamos un nuevo servicio que es el que copiamos anteriormente
Nota: WCF: es un marco de trabajo para la creación de aplicaciones orientadas a servicios.
Con WCF, es posible enviar datos como mensajes asincrónicos de un extremo de servicio a otro.
No hay comentarios:
Publicar un comentario