Pueden ver el articulo aquĆ Desarrollo en Capas .Net (Parte 3) - Capa de Negocio
La capa presentaciĆ³n(presentation) es la que ve el usuario (tambiĆ©n se la denomina "capa de usuario"), presenta el sistema al usuario, le comunica la informaciĆ³n y captura la informaciĆ³n del usuario en un mĆnimo de proceso (realiza un filtrado previo para comprobar que no hay errores de formato).
En este ultimo articulo es donde veremos como se comunican las diferentes capas entre si.

DiseƱo de la aplicaciĆ³n.

Cargar Alumnos y Materias.
//cargo alumnos en combobox private void CargarAlumnos() { cbxalumnos.DataSource = AlumnoBL.CargarAlumnos(); cbxalumnos.ValueMember = "AluId"; cbxalumnos.DisplayMember = "AluNombre"; } private void FrmAlumno_Load(object sender, EventArgs e) { CargarAlumnos(); //cargo materias en combobox cbxmaterias.DataSource = MateriaBL.CargarMaterias(); cbxmaterias.ValueMember = "MatId"; cbxmaterias.DisplayMember = "MatNombre"; }Tenemos un mƩtodo CargarAlumnos() que lo que hace es cargos el nombre de todos los alumnos en un combobox este mƩtodo lo llamaremos luego de actualizar o agregar un nuevo alumno para que los datos del combobox se actualicen y en el evento load del formulario tambiƩn cargamos todas las materias en otro combobox.
Agregar o Actualizar Alumno.
//Variable global que prepresenta al alumno seleccionado Alumno alum = null; private void btnguardar_Click(object sender, EventArgs e) { //compruebo las validaciones if (!ValidacionesAlumno()) return; // si el cliente se ha seleccionado lo actualizo, sino se crea uno nuevo if(alum == null) alum = new Alumno(); alum.AluNombre = txtnombre.Text; alum.AluApellido = txtapellido.Text; alum.AluEdad = Convert.ToInt16(txtedad.Text); alum.AluDireccion = txtdireccion.Text; alum = AlumnoBL.Save(alum); MessageBox.Show("Se agrego o Actulizo el Alumno con Id:" +alum.AluId); CargarAlumnos(); Limpiar(); }Tenemos una variable global que representa un alumno, luego la capa de negocio validad si la entidad(Alumno) existe o no por medio del id y en base a esto se ejecuta la operaciĆ³n correspondiente a cada caso, tambiĆ©n en el cĆ³digo encontramos los mĆ©todos ValidacionesAlumno() que lo que hace es validar que los datos de la entidad Alumno sean los correctos, CargarAlumnos() luego de agregar o actualizar un alumno vuelve a cargar los alumnos y Limpiar() que limpia los datos de los textbox.
Agregar Nota.
private void btnguardarnota_Click(object sender, EventArgs e) { //compruebo las validaciones if (!ValidacionesNotas()) return; //creo una nota nueva Nota not = new Nota(); not.AluId = Convert.ToInt32(cbxalumnos.SelectedValue); not.MatId = Convert.ToInt32(cbxmaterias.SelectedValue); not.NotNota = Convert.ToDecimal(txtnota.Text); //si nota para la materia no existe se crea si no muestra mensaje que ya existe if (!NotaBL.CreateNota(not)) { MessageBox.Show("Se agrego la Nota con Id:" + not.NotId); Limpiar(); } else MessageBox.Show("Ya Existe una Nota del Alumno para la Materia:" + cbxmaterias.Text); }La capa de negocio se encarga de validar si ya existe una nota para una materia de un alumno si no existe la agrega y si existe muestra un mensaje que ya existe una nota para la materia, dentro del codigo encontramos los metodos ValidacionesNotas() que lo que hace que los datos para agregar una nota sean correctos y Limpiar() limpia los datos de los textbox.
Editar Notas.
//variable global de entidad nota Nota not = new Nota(); private void btnguardar_Click(object sender, EventArgs e) { //compruebo validaciones if (!ValidacionesNota()) return; not.NotId = Convert.ToInt32(txtidnota.Text); not.AluId = Convert.ToInt32(txtidalumno.Text); not.MatId = Convert.ToInt32(txtidmateria.Text); not.NotNota = Convert.ToDecimal(txtnota.Text); //si nota existe la actualizo if (NotaBL.UpdateNota(not)) { MessageBox.Show("Se actualizo la nota con Id:" + not.NotId); CargarGrilla(); Limpiar(); } else MessageBox.Show("No se pudo actualizar la nota"); }La capa de negocio se encarga de validar si la nota existe por medio del id, si existe actualiza el registro si no muestra mensaje que no se puede actualizar, en el cĆ³digo encontramos los mĆ©todos ValidacionesNota() valida que los datos para agregar una nota sean correctos, CargarGrilla() carga todas las notas de un alumno en un datagridview y Limpiar() limpia los datos de los textbox.

ConclusiĆ³n
A lo largo de los 4 artĆculos hemos visto como desarrollar un proyecto en capas en .net usando entity framework, si bien el ejemplo puede ser un poco sencillo pero puede servir de guĆa o ejemplo para nuestros futuros desarrollos.
Descargar Proyecto VB.Net
Si quieren donarme para una soda lo pueden hacer aqui.
0 Comentarios