Desarrollo en Capas .Net (Parte 4) - Capa Presentacion

miércoles, 31 de octubre de 2012

En el articulo anterior desarrollamos nuestra capa de negocio

 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.

capas


Diseño de la aplicación.

Diseño


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.

Capturas


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 C#

Descargar Proyecto VB.Net

0 comentarios:

Publicar un comentario en la entrada

Nota: solo los miembros de este blog pueden publicar comentarios.