Arquitectura de N Capas Arquitectura de N Capas Presentacin Capa de Negocios Capa de Acceso a Datos frmPersona frmBuscar.cs PersonaBL.cs Persona.cs Reglas de Negocio Entidades PersonaDAL.cs Arquitectura de N Capas en C# Arquitectura de N Capas en C# Arquitectura de N Capas: Presentacin A a de ~ ~ ~ ~ ~ ~ ~ ~ W W ~ ~ r m s ; using Entidades; using ReglasNegocio; namespace Presentacion { public partial class Forml : Form { public Forml O { lnitializeComponentO; } public void Limpia rO { } foreach (Control ctl in this.Controls] { } if (cti.GetTypeO.IsAssignableFrom[typeof[TextBox]]] { ([T extB ox] ctl]. Res etT extO; } prvate void btnlngresar_Ciick(object sender. EventArgs e] { } Persona entidad = new PersonaD; entidad.Apellidos = txtApellidos.Text entidad.Direccion = txtDireccion.Text entidad.FecNacimiento = dtpFecNacimiento.Value; entidad.Nombre = txtNombre.Text entidad.NroHijos = Convert.Tolnt32[txtNroHijos.Text); entidad.ldTipoPersona = Convert.Tolnt32[txtTipoPersona.Text); PersonaBL bl = new PersonaBLO; if (bi.Grabar[entidad]] { } MessageBox.Showrse guardo correctamente'1; txtCodigo.Text = entidad.ld.ToStringO; taCIOn prvate void btnActualizar_ Click(object sen der. EventArgs e] { } Persona entidad = new PersonaD; entidad.ld = Convert.Tolnt32[txtCodigo.Text); entidad.Apellidos = txtApellidos.Text entidad.Direccion = txtDireccion.Text entidad.FecNacimiento = dtpFecNacimiento.Value; entidad.Nombre = txtNombre.Text entidad.NroHijos = Convert.Tolnt32[txtNroHijos.Text); entidad.ldTipoPersona = Convert.Tolnt32(txtTipoPersona.Text); PersonaBL bl = new PersonaBLO; if (bi.Actualizar[entidad]] MessageBox.Showrse actualizo correctamente'1; prvate void btnEiiminar_Ciick[object sender. EventArgs e] { } Persona entidad = new PersonaD; entidad.ld = Convert.Tolnt32[txtCodigo.Text); PersonaBL bl = new PersonaBLO; if (bi.Eiiminar[entidad]] MessageBox.Showf'Se elimino correctamente'1; prvate void btnBuscar_Ciick(object sender. EventArgs e) { } frmBuscar frm = new frmBuscarO; if (frm.ShowDialogO == DialogResult.OKJI { } txtCodigo.Text = frm.PersonaSeleccionada.ld.ToStringO; txtApellidos.Text = frm.PersonaSeleccionada.Apellidos; txtDireccion.Text = frm.PersonaSeleccionada.Direccion; txtNroHijos.Text = frm.PersonaSeleccionada.NroHijos.ToStringO; txtNombre.Text = frm.PersonaSeleccionada.Nombre; dtpFecNacimiento.Value = frm.PersonaSeleccionada.FecNacimiento; txtTipoPersona.Text = frm.PersonaSeleccionada.ldTipoPersona.ToStringO; Arquitectura de N Capas: Entidades Aq 1tect ra de using System.Text; namespace Entidades { public class Persona { private String _apellidos; private String _direccion; private Datelime _fecNacimiento; private int _id; private String _nombre; private int _nroHijos; private lnt32 _idTipoPersona; public lnt32 ldTipoPersona { } get { return _idTipoPersona; } set { _idTipoPersona = value;} public String Apellidos { } get { return _apellidos;} set {_apellidos= value;} public String Direccion { } get { return _direccion; } set { _direccion = value;} public DateTime FecNacimiento { } get { return _fecNacimiento; } set { _fecNacimiento = value; } } Capa } public int Id { } get { return _id;} set {_id = value; } public String Nombre { } get { return _nombre; } set { _ nombre = value;} public int NroHijos { } get { return _nroHijos;} set { _ nroHijos = value; } a es Arquitectura de N Capas: Business Logic A qu1tec ura e N Capas: Bus1ness Log e using System; using System.Collections.Generic; using System.Linq; usin!1 System.Text usmg Entidades; 1 usmg ualaAccess, namespace ReglasNegocio { public class PersonaBL { ll } public Boolean Grabar[Persona entidad) { } //Validacion o formula PersonaDAL dal = new PersonaDALO; re tu rn da l. Guardar( entidad); public Boolean Actualizar[Persona entidad) { } PersonaDAL dal = new PersonaDALO; return dai.Actualizar[entidad); public Boolean Eliminar[Persona entidad) { } PersonaDAL dal = new PersonaDALO; return dai.Eiiminar[entidad); public List<Persona> Buscar[string _apellido) { } PersonaDAL dal = new PersonaDALO; return dai.BuscarLapellido); Arquitectura de N Capas: Data Access Logic A qu1tec ura e N Capas: Da a Access Log1c using System; u sin g Syste m. C o 11 e cti o n s. Gen e ri e; using System.Linq; nsinn usina Entidades; 1 using System.Oata; using System.Oata.Common; using System.Oata.SqiCiient namespace OataAccess { public class PersonaOAL { public Boolean Guardar(Persona entidad) { } SqiConnection con = new SqiConnection[Properties.Settings.Oefault.Conexion); SqiCommand cmd = new SqiCommandr'Persona_lnsertar_pa". con); cmd.CommandType = CommandType.StoredProcedure; SqiParameter paramld = new SqiParameterr 'ld". SqiObType.lnt 8); paramld.Oirection = ParameterOirection.Output cmd.Parameters.Add(paramld); cmd.Parameters.AddWithValuer'Nombre''. entidad.Nombre); cmd.Parameters.AddWithValuer'Apellidos''. entidad.Apellidos); cm d .Pa ram e te rs .Ad dWith Val u e r 'O i re cci o n''. entidad. O i re cci o n ); cmd.Parameters.AddWithValuer'FecNacimiento''. entidad.FecNacimiento); cmd.Parameters.AddWithValuer'NroHijos''. entidad.NroHijos); cmd.Parameters.AddWithValuer'ldTipoPersona''. entidad.ldTipoPersona); con.OpenO; cmd.ExecuteNonOueryO; con.CioseO; entidad.ld = (int)paramld.Value; return true; Arquitectura de N Capas: Data Access Logic Arquitectura de N Capas: Data Access Logic } } cmd.Parameters.AddWithValuer'ld'', entidad.ld); con.OpenO; cmd.Exe cut e N o nO ueryO; con.CioseO; return true; } public List<Persona> Buscar[String apellidos) { } SqiConnection con = new SqiConnection[Properties.Settings.Default.Conexion); SqiCommand cmd = new SqiCommandr'Persona_Buscar_pa", con); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValuer'Apellidos'', apellidos); con.OpenO; List<Persona> coleccion = new List<Persona>O; SqiDataReader dr = cmd.ExecuteReaderO; while (dr.ReadOJ { } Persona obj = new PersonaD; obj.ld = [int)drr'ld'1; obj.Nombre = drr'Nombre'1-ToStringO; obj.Apellidos = drr'Apellidos'1-ToStringO; obj.Direccion = drr'Direccion'1-ToStringO; obj.NroHijos = Convert.Tolnt32(drr'NroHijos'1-ToStringOJ; obj.FecNacimiento = (DateTime)drr'FecNacimiento'1; obj.ldTipoPersona = [int)drr 'ldTipoPersona'1; coleccion.Add(obj); con.CioseO; return coleccion;