Tema 1: Análisis y Diseño de la Aplicación

Anuncio
Gestión de una aplicación completa con .NET
Servicio de Informática
Tema 1: Análisis y Diseño de la Aplicación
Índice de contenido
Introducción ....................................................................................................................................1
Diseñador de clases........................................................................................................................1
Creación de nuevos tipos............................................................................................................2
Visualización y modificación de tipos existentes..........................................................................5
Relaciones entre clases...............................................................................................................5
Diseño de la aplicación...................................................................................................................7
Pautas.........................................................................................................................................8
De base de datos a clases..............................................................................................................8
Introducción
La fase mas importante del desarrollo software es el diseño. Si realizamos un mal diseño iremos
arrastrando los problemas que esto genera a todas las fases del desarrollo, con el resultado de
obtener software de mala calidad.
En grupos de trabajo grandes es de gran utilidad tener esquemas y estándares de programación
comunes, así como clases de utilidad genéricas compartidas por todos los programadores.
Esto facilita la reutilización, compartición y comprensión de código.
Diseñador de clases
Mediante el diseñador de clases de Visual Studio podemos crear nuestro diagrama de clases de
forma visual y él nos generará el código automáticamente.
Para incluir un diagrama de clases a nuestro proyecto pinchamos con el botón derecho y
elegimos Diagrama de clase. (Ilustración 1).
Tema 1 / Página 1
Gestión de una aplicación completa con .NET
Servicio de Informática
Ilustración 1: Agregar diagrama de clase
El diagrama de clase nos lo pondrá en la carpeta App_Code, si no le decimos lo contrario
(Ilustración 2).
Ilustración 2: Insertar en la carpeta App_Code
Una vez hecho esto visualizaremos en pantalla la superficie de diseño.
Tema 1 / Página 2
Gestión de una aplicación completa con .NET
Servicio de Informática
Creación de nuevos tipos
Podemos crear nuevos tipos arrastrando elementos desde el Cuadro de herramientas a la
superficie de diseño, o pinchando con el botón derecho en la superficie de diseño y eligiendo la
opción Agregar.
Al arrastrar un tipo nos mostrará una ventana para introducir las propiedades de dicho tipo. Como
se puede ver en la ilustración 3 al añadir una clase
Ilustración 3: Agregar una clase
Tendremos en el diseñador de forma gráfica la nueva clase (Ilustración 4) .
Ilustración 4: Nueva clase en el diseñador
Haciendo click en la flecha que aparece en la parte superior derecha podremos visualizar y
modificar las propiedades de la clase como se puede apreciar en la ilustración 5.
Tema 1 / Página 3
Gestión de una aplicación completa con .NET
Servicio de Informática
Ilustración 5: Propiedades de la clase
Ahora podemos agregar métodos propiedades y demás pulsando con el botón derecho sobre la
clase, seleccionando el menú Agregar y el elemento que queramos insertar (Ilustración 6)
Tema 1 / Página 4
Gestión de una aplicación completa con .NET
Servicio de Informática
Ilustración 6: Agregar elementos a la clase
Visualización y modificación de tipos existentes
Podemos visualizar los tipos existentes arrastrando elementos desde la Vista de Clases o el
Explorador de Soluciones a la superficie de diseño.
Tema 1 / Página 5
Gestión de una aplicación completa con .NET
Servicio de Informática
Relaciones entre clases
En el diseñador también se pueden ver, crear y modificar las relaciones entre las diferentes
clases de nuestra aplicación.
Por ejemplo si arrastramos desde el Explorador de soluciones una clase ClaseExamenTest que
es una clase heredada de ClaseExamenes en el diseñador veremos lo que aparece en la
ilustración 7.
Ilustración 7: Herencia entre clases
Si queremos crear una herencia entre clases pincharemos en la flecha que aparece en la parte
superior de la clase y lo arrastraremos hasta la clase de la que queremos que herede.
Mediante la flecha que aparece a la derecha podemos crear una propiedad que devuelva un
objeto de otra clase.
Por ejemplo si agregamos una nueva clase llamada ClaseExamenPractico, pinchamos en la
flecha de la derecha a arrastramos hasta la clase ClaseExamenTest (Ilustración 8)
Tema 1 / Página 6
Gestión de una aplicación completa con .NET
Servicio de Informática
El código que genera sería
public class ClaseExamenPractico
{
public global::ClaseExamenTest ExamenTest
{
get
{
throw new System.NotImplementedException();
}
set
{
}
}
}
Ilustración 8: Relación entre clases
Estas propiedades se pueden mostrar como Propiedad o como asociación entre clases
(Ilustración 8) o como cualquier otra propiedad.
Para alternar entre una vista y otra pulsamos con el botón derecho en la propiedad y elegimos
Mostrar como asociación o Mostrar como propiedad según queramos.
Tema 1 / Página 7
Gestión de una aplicación completa con .NET
Servicio de Informática
Diseño de la aplicación
El diseño orientado objetos trata de identificar las entidades con identidad y comportamiento
propio para agruparlas en clases.
No existen recetas fáciles para el análisis de software
La correcta definición de los requisitos y su seguimiento en el proceso de desarrollo es uno de los
factores fundamentales de la calidad del software
En aplicaciones .net además tendremos que tener en cuenta que trabajamos con aplicaciones
para Internet, o sea aspx, que son a su vez clases.
Con Visual Studio una aplicación .net se parece mucho más a una aplicación que se ejecuta en
local que a una aplicación programada con el antiguo asp.
Ahora no necesitamos una página aspx para cada operación que queremos realizar, podemos
usar un mismo aspx por ejemplo, para mostrar, tratar y almacenar datos. Sin necesidad de ir
pasando los datos de una página a otra.
Es muy importante analizar antes que queremos que haga cada aspx, sin sobrecargarlos
demasiado ni crear aspx innecesarios.
Pautas
•
Identificar y crear las clases de acceso a base de datos necesarias
•
Identificar las entidades con identidad propia de la aplicación para crear las clases
necesarias
•
Minimizar el código en los aspx. Estos sólo se utilizarán para gestionar el comportamiento
de la aplicación mediante los métodos de eventos. Toda la lógica estará agrupada en las
clases dentro de la carpeta App_Code.
•
Utilizar las clases genéricas del Servicio de Informática para el acceso a base de datos, la
gestión de errores y la globalización.
•
Crear los aspx según las entidades lógicas de la aplicación. Por ejemplo si tenemos una
aplicación que gestiona alumnos y asignaturas lo más cómodo es crear dos aspx, uno
para la gestión de alumnos y otro para la gestión de asignaturas. Es tan mala práctica
crear mil aspx (por ejemplo: uno para mostrar la lista de alumnos, otro para el formulario
de editar los datos, otro para almacenar los datos en bd …) como meter todo en el
Default.aspx
•
Seguir la guía de estilo de programación en .NET del Servicio de Informática
https://aplicacionesua.cpd.ua.es/programacion/verFicha.asp?ficha=660
Tema 1 / Página 8
Gestión de una aplicación completa con .NET
Servicio de Informática
De base de datos a clases
El transformar nuestras tablas de base de datos en un buen esquema de clases nos puede
facilitar la implementación de nuestras aplicaciones, aumentando la sencillez, legibilidad y
reutilización.
Por ejemplo, con un esquema como el de la Ilustración 9:
Ilustración 9: Esquema de base de datos
Primero localizamos los objetos con los que vamos a trabajar, normalmente aquellos que
almacenan datos y no relaciones entre datos. En este esquema Alumnos y Estudios.
Para cada uno de estos crearemos una clase.
•
•
ClaseAlumno
ClaseEstudio
Como variables miembro y propiedades tendremos los campos de la base de datos que
necesitamos en nuestra aplicación.
Además cada clase tendrás dos métodos para leer y almacenar los datos en la base de datos
llamados Carga y Guarda respectivamente.
Tema 1 / Página 9
Gestión de una aplicación completa con .NET
Servicio de Informática
Ilustración 10: De base de datos a clases
Ahora analizaremos nuestra aplicación para ver si necesitamos en algún momento una lista de
alumnos o estudios. Supongamos que al mostrar los alumnos mostramos todos los estudios que
tiene ese alumno, necesitamos una lista de estudios filtrada por alumno.
Para ello nos creamos otra clase como la clase base pero en plural, ClaseEstudios, que se
encarga de filtrar elementos de la Clase ClaseEstudio.
Será una clase estática, y tendrá un método por cada filtro que queramos aplicar.
Estos métodos devolverán listas de ClaseEstudio.
La declaración de la clase y el método sería:
public static class ClaseEstudios
{
public static List<ClaseEstudio> filtrarAlumno(int expediente)
{
// Aqui el Codigo
throw new System.NotImplementedException();
}
}
De está forma el código de un aspx sería algo tan sencillo como
Tema 1 / Página 10
Gestión de una aplicación completa con .NET
Servicio de Informática
ClaseAlumno alumno = new ClaseAlumno();
alumno.Carga(expediente);
// Tratar datos del alumno
alumno.Guarda();
Tema 1 / Página 11
Descargar