Framework .NET 3.5 03 Creación de soluciones

24
¿Porqué fallan los proyectos de desarrollo de software? El desarrollo de software es abstracto, no es fácil ver el progreso y el resultado final enmascara la complejidad interna. El desarrollo de software es complejo, pequeños módulos interrelacionados, afectándose unos a otros y desarrollados pro distintas personas, con distintas capacidades, para solucionar un problema no bien comprendido y que evolucionará con el tiempo. No hay proceso de desarrollo, al menos, no formal, se improvisa sobre la marcha a medida que el "pequeño" desarrollo inicial se transforma en un proyecto de envergadura, o el equipo no está entrenado en metodologías de gestión de proyecto. Los requerimientos son erróneos o incompletos. La planificación de tiempos no es realista, por desconocimiento de los tiempos reales implicados en el desarrollo de un proyecto, habitualmente fijados por alguien que no es quien ha de realizar el trabajo, amén de las interferencias que se puedan producir. La tecnología usada es desconocida o no está madura aún. El equipo no es el adecuado al proyecto o hay demasiada rotación por cambios de asignación o incidencias en otros proyectos o el proyecto requiere el uso de una tecnología nueva para el equipo.

Transcript of Framework .NET 3.5 03 Creación de soluciones

¿Porqué fallan los proyectos de desarrollo de software?

El desarrollo de software es abstracto, no es fácil ver el progreso yel resultado final enmascara la complejidad interna.

El desarrollo de software es complejo, pequeños módulosinterrelacionados, afectándose unos a otros y desarrollados prodistintas personas, con distintas capacidades, para solucionar unproblema no bien comprendido y que evolucionará con el tiempo.

No hay proceso de desarrollo, al menos, no formal, se improvisasobre la marcha a medida que el "pequeño" desarrollo inicial setransforma en un proyecto de envergadura, o el equipo no estáentrenado en metodologías de gestión de proyecto.

Los requerimientos son erróneos o incompletos. La planificación de tiempos no es realista, por desconocimiento de

los tiempos reales implicados en el desarrollo de un proyecto,habitualmente fijados por alguien que no es quien ha de realizar eltrabajo, amén de las interferencias que se puedan producir.

La tecnología usada es desconocida o no está madura aún. El equipo no es el adecuado al proyecto o hay demasiada rotación

por cambios de asignación o incidencias en otros proyectos o elproyecto requiere el uso de una tecnología nueva para el equipo.

Proceso de desarrolloEs la estructura que la empresa decide utilizar en el desarrollo de unnuevo producto de software.Las fases principales son: Toma de requerimientos y conceptualización. Análisis. Diseño del sistema. Implementación. Pruebas. Pase a explotación y soporte.

Modelos de ciclo de vida del desarrollo de software: Cascada, las fases no se solapan, siendo la salida de una fase la entrada

de la siguiente. Válido para pequeños proyectos, con requerimientossencillos y no sujetos a cambios.

En forma de V, similar al anterior, pero con énfasis en las pruebas, se

desarrolla en plan de pruebas antes de iniciar el desarrollo.

Incremental, múltiples iteraciones del modelo en cascada.

Espiral, construido sobre el anterior, con énfasis en el análisis y reducción

de riesgos.

MetodologíasSon las estructuras usadas para controlar el proceso de desarrollo de unsistema mediante herramientas, modelos y métodos, con un ámbito mayorque un ciclo de vida al usar una vista de mayor nivel.Cada entorno de desarrollo y/o tipo de proyecto puede requerir unametodología diferente, no hay soluciones únicas ni mágicas.La última moda, de momento, son las metodologías Agile.Microsoft Solutions Framework es la versión adoptada por Microsoft eimplementada en su suite Team Server/Team System, integrando lasmetodologías Agile y Capability Maturity Model Integration Process

Improvement (CMMI) mediante las plantillas de proyectos. Es un conjuntoextensible y escalable de procesos, principios y prácticas de desarrollo desoftware construido a partir de la experiencia de los propios equipos dedesarrollo de Microsoft.Las fases del modelo de procesos de MSF son: Visión previa, puesta en común y motivación del equipo. Planificación, especificaciones funcionales, diseño, plan de trabajo,

estimación de costes. Desarrollo de todos los componentes. Estabilización, pruebas y solución de errores e incidencias. Despliegue, puesta en explotación y aprobación del cliente.

AgileEs una metodología de desarrollo de software para la que existenvarias implementaciones, aunque comparten unos principioscomunes de adaptabilidad al entorno. Reacción contra los métodos rígidos en desarrollo que empezó en

los 90, promovida por la Agile Alliance (desde el 2001). Usa el software funcional como medida del progreso. Prima las comunicaciones cara a cara. La cooperación entre el equipo de desarrollo y los clientes es

frecuente y deseada. Se produce un conjunto reducido de documentación. Se asume que habrá cambios en los requerimientos. Se presta especial atención al buen diseño y a las competencias

técnicas. Se busca simplificar los proyectos. Los equipos deben ser auto-organizados.

Métodos de desarrollo bajo Agile

Nivel Descripción

Extreme Programming XP Utiliza cinco valores: comunicación, sencillez, retorno, valor y respeto.

Scrum Utiliza una planificación flexible y entregables, equipos reducidos y revisiones frecuentes.

Adaptative Software Development ASD

Utiliza un ciclo de vida enfocado, iterativo, dirigido por riesgos y tolerante a cambios.

Dynamic Systems Development Method DSDM

Utiliza nueve principios que se focalizan en la implicación del usuario, entregas frecuentes y pruebas continuas.

Feature Driven Development

Utiliza cinco actividades: modelo de desarrollo, lista de características a construir, planificación, diseño y construcción por características.

Agile Unified process AUP Utiliza cuatro fases: inicio, elaboración, construcción y transición.

MSF para desarrollo Agile

Proceso de desarrollo de software dirigido por escenarios ybasado en contextos.Incorpora recomendaciones sobre requerimientos, diseño,seguridad, rendimiento y pruebas.Incorpora guías de proyecto (project guidance) que: Define un conjunto de roles en los equipos de desarrollo. Utiliza flujos de trabajo y actividades (work streams). Genera productos de trabajo (work products).

Integrado con Visual Studio 2008 Team System. Usuarios y grupos. Work items: escenarios, requerimientos de calidad de

servicio, tareas, bugs, riesgos. Control de fuentes y portal del proyecto.

Roles en MSF

Rol Descripción

Project manager Mantiene el control del proyecto

Power user / Expert Suministra información sobre lo que debe hacer el software

Analyst Obtiene los requerimientos del Power User

Solution Architect Genera la documentación del diseño de la solución

Lead Developer and Developer Escriben el código

Deployment manager Empaqueta y despliega la aplicación

Tester/Quality Assurance Localiza los errores e incidencias

Trainer Forma a los usuarios finales

Herramientas de diseño de software

Diseñador de clases de Visual Studio 2008, proporciona unentorno gráfico en el que visualizar las relaciones y dependencias.

Visual Studio Team System 18'05'', conjunto de herramientas quecubren el ciclo de vida completo de los proyectos de desarrollo desoftware, con versiones específicas para cada rol del equipo.

Diagramas de bases de datos y software de Microsoft Office Visio,herramienta gráfica de modelado de diagramas que soporta UML,pudiendo generarse los esqueletos de los procesos directamentedesde estos diagramas.

Microsoft Expression, conjunto de herramientas de diseño.

Herramientas de terceros.

Como ya hemos visto, al crear un nuevo proyecto elegiremosel tipo del mismo, esto se hace así para que Visual Studio,al seleccionar una determinada plantilla de proyecto:

Genere automáticamente la base de código adecuada, ycomo iremos viendo a lo largo del curso, esto puedellegar a ser mucho código.Cargue todos los módulos complementarios necesariospara dicha plantilla.Inicialice las cajas de herramientas.Presente las barras de menú y herramientas adecuadas.Genere la estructura de carpetas y documentoscorrespondientes al proyecto seleccionado.Personalice el interfaz de usuario y el editor.

En este caso vamos a ver todo lo que nos va a generarVisual Studio para un proyecto de Windows Forms.

La plantilla de aplicación Windows Forms nos va a permitirdesarrollar una aplicación con el mismo aspecto ycomportamiento, si queremos, que cualquier otra aplicaciónde Microsoft.Pasemos a ver, en primer lugar ¿Qué es y de que estácompuesta una aplicación Windows Forms?

Para crear una aplicación Windows Forms:Abrir Visual StudioMenú Archivo -> Nuevo -> ProyectoVisual C# -> Windows -> Aplicación Windows FormsSeleccionar un nombre y una ubicación y pulsar Aceptar.

Para añadir objetos a nuestra aplicación dispondremos devarias opciones, pudiendo añadir elementos predefinidos, acompletar o cumplimentar por nuestra parte en ese momentoo bien seleccionar elementos ya existentes, que deseemosreutilizar o incorporar en nuestra aplicación.

En ambos casos obtendremos:

Propiedades de un proyecto Windows Forms:

Application:Define parámetros generales de la aplicación.

Build:Define parámetros para la generación de los binarios.

Build Events:Define parámetros para los eventos de la generación de los binarios.

Debug:Define el comportamiento del depurador para local o remoto.

Resources:Gestiona los recursos adicionales de la aplicación, como imágenes, sonidos, …

Services:Gestiona la autentificación de usuarios ASP .NET en aplicaciones Windows Forms

Settings:Permite almacenar y recuperar, dinámicamente, información de configuración de la aplicación.

Reference Paths:Almacena la ruta de la carpeta para las referencias del ensamblado de la aplicación.

Signing:Firma la aplicación y el manifiesto del ensamblado con un nombre fuerte.

Security:Establece la seguridad de acceso a código para las aplicaciones que se implantarán con la tecnología Click-Once.

Publish:Configura las propiedades para las implantaciones Click-Once.

Propiedades de un formulario Windows:

Eventos de un formulario Windows:

Los controles son todos aquellos componentes que podemossituar en un formulario y que, habitualmente, tienen unconjunto determinado de propiedades y eventos asociados,sobre los cuales podremos actuar en tiempo de diseño, desdeel editor visual, y en tiempo de ejecución, mediante código.Visual Studio viene con un gran surtido de controlespredefinidos y cargados en las cajas de herramientas, comoya hemos podido ver.Además hay otro surtido, aún más amplio, de controlesespecializados que no están cargados por defecto, pero quepodremos añadir a las cajas de herramientas sin mayorproblema que un par de clicks de ratón.Por si no fuera suficiente, podemos definirnos nuestrospropios controles personalizados y utilizarlos desde el editorde la misma forma que los de Visual Studio, aunque esto loveremos más adelante.

Los controles que mas habitualmente utilizaremos son:

Button: el que nos permite mostrar un botón de acciónsusceptible de ser pulsado.

CheckBox: para poder marcar una selección u opción.

ComboBox: para mostrar una lista de elementos sobre laque realizar una selección y mostrar dicha selección.

Label: un etiqueta de texto estático en el formulario.

ListBox: una lista de elementos sobre la que se puedenrealizar selecciones individuales o múltiples.

PictureBox: para contener una imagen.

RadioButton: para selecciones mutuamente excluyentes.

TextBox: control de introducción de texto.

Para añadir controles a un formulario podemos utilizar lassiguientes técnicas:

Desde el diseñador visual, arrastrándolo desde la caja deherramientas.Desde el mismo diseñador, haciendo doble click sobre elcontrol en la barra de herramientas.Desde la vista de código fuente, arrastrándolo desde la cajade herramientas.En la misma vista de código, situando el cursor en el puntoque nos interese y haciendo doble click en el control de lacaja de herramientas.Añadiéndolo a mano en el código, tecleando todo lonecesario.

Ojo, hay controles que no aparecen en el formulario cuandolos añadimos, se verán en la barra de componentes inferior.

Crear una aplicación Windows FormGenerar una nueva aplicación Windows Forms.En el formulario por defecto:

Cambiar el texto a “Primer formulario”.Cambiar el icono a c:\Archivos de Programa\MicrosoftOffice\Office12\MSN.icoPermitir que ajuste su tamaño automáticamente, en ambossentidos.

Añadir un control Label y fijar su texto a “Teclea un nombre”.Añadir un control TextBox y fijar su tamaño en 300 x 20pixeles.Añadir un control Button, centrado, y ponerle el texto“Púlsame”.Añadir otro control Label y efectuar los cambios:

Quitar el texto por defecto.Modificar su propiedad Font a Cooper Black de 20 puntos en azul.

Añadir código al pulsar el botón para que el texto del segundoLabel pase a ser “Hola "+ el texto del TextBox.Ejecutar la aplicación y probar el funcionamiento con variosnombres, cortos y largos.

Mejoras en el framework y en los lenguajesLINQ, language integrated queryC# 3.0 y Visual Basic 9.0Servicios de sincronización para ADO

Aplicaciones ricasAmpliación de tecnologías disponibles.ASP.NET AJAXAplicaciones Web con Visual Studio 2008SilverlightWindows Presentation Foundation (WPF) y Expression blend

Aplicaciones conectadasWCF, WF y Windows CardSpaceProgramación Web con WCFServicios con WF y WCF

Aplicaciones para Office y Windows MobileAplicaciones de negocio con Office y Visual Studio Office ToolsAmpliación de la interfaz de Office con la herramientas de Visual Studiopara OfficeCrear workflows de SharePointAplicaciones móviles con Visual Studio 2008 y .Net Compact Framework3.5