1 4 U I Mi Primera Experiencia Docente Felipe de Jesus Ramirez.pdf
Mi primera aplicación en .NET
description
Transcript of Mi primera aplicación en .NET
MSP Diego Pozadiegopoza.wordpress.com
El sistema de tiposTipos PrimitivosVariables y constantesEnumeracionesArrays(Arreglos)
Tipos Primitivos.NET Framework VB 2005 VB6
System.Boolean Boolean Boolean *
System.Byte Byte Byte
System.Int16 Short Integer
System.Int32 Integer Long
System.Int64 Long N.A.
System.Single Single Single
System.Double Double Double
System.Decimal Decimal Currency *
System.Char Char N.A. (ChrW)
System.String String String *
System.Object Object Variant / Object *
System.DateTime Date Date *
System.SByte SByte N.A.
System.UInt16 UShort N.A.
System.UInt32 UInteger N.A.
System.UInt64 ULong N.A.
Variables y ConstantesDeclarar Variables
Cuando se declaran variables automaticamente se inicializan con el valor por defecto.
Declarar Variables y asignarle un valor inicial
Declarar constantes
Dim a, b, c As Integer
Dim a As Integer = 10
Const constante = 100
Enumeraciones: Constantes agrupadasDeclarar enumeración
Las enumeraciones poseen un tipo de datos implícito por defecto Integer
Enum Colores Rojo Verde Azul End Enum
Arrays (Arreglos)Declarar arreglo
Declarar e inicializar un arreglo
Arreglos de mas dimensiones
Dim nombres() As String
Dim nombres(10) As String
Dim nombres() As String = {"Pepe", "Juan", "Luisa"}
Dim nombres(,) As String = {{"Juan", "Pepe"}, {"Ana", "Eva"}}
nombres(0,0)= Juannombres(0,1)= Pepenombres(1,0)= Ananombres(1,1)= Eva
Arrays (Arreglos)Cambiar el tamaño de un array: Redim
nombres(50)Eliminar el contenido de un array: EraseLos arrays son tipos por referenciaDim nombres() As String = {"Juan", "Pepe", "Ana", "Eva"}Dim otros() As Stringotros = nombresnombres(0) = "Antonio"
Repasando las Estructuras de
Control
Estructuras de Control
El orden de ejecución de las sentencias de un programa determina su flujo de control
Las estructuras de control permiten alterar el orden del flujo de control
Existen dos tipos básicosDe SelecciónDe Repetición o Iteración
Estructuras de Control Selectivas (1/2)
Dirigen el flujo de ejecución según el resultado de evaluación de expresiones
IF
si condición_logicaentonces hacer acción A
sino hacer acción Bfin_si
Ejemplo Ifif numero > 10
then hacer acción A else hacer acción BEnd if
Estructuras de Control Selectivas (2/2)
CASEsegún selector hacer
C11,C12,…: sentencia 1 C21,C22,…: sentencia 2
…..[sino sentencia x]
fin_según
Ejemplo CaseSelect edad hacer
Case <12: Escribir(“Infante”) Case <20: Escribir(“Adolescente”)Else: Escribir(“Adulto”)
fin_según
Estructuras de Control Repetitivas (1/3)
Permiten ejecutar un conjunto de sentencias repetidamente una cierta cantidad de veces o hasta que se cumpla una determinada condición
El conjunto de sentencias se denomina bucleCada repetición del cuerpo del bucle se
denomina iteración
Estructuras de Control Repetitivas (2/3)WHILE
mientras condición hacersentencia/s…..
fin_mientras
Ejemplo WhileWhile condición
sentencia/s…..
End While
Estructuras de Control Repetitivas (3/3)FOR
Para variable valor_inicial hasta valor_final hacer
sentencia/s…..
fin_para
Ejemplo FORFor variable = 1 To 10 [Step 2]
sentencia/s…..
Next
Introducción a la Programación
orientada a objetos
Objetivo
Describir el Paradigma de Orientación a Objetos incluyendo los conceptos relacionados
al análisis, diseño y programación
Temas a TratarParadigmas de ProgramaciónClases y ObjetosModificadores de Acceso¿Qué es UML?Principios de la Orientación a ObjetosConceptos del Diseño Orientado a Objetos
Paradigmas de ProgramaciónHay para todos los gustos
Estructurados (C, Pascal, Basic, etc.)Funcionales (CAML)Declarativos (Prolog)Orientados a Objetos (C#, VB.NET, Smalltalk, Java)Orientados a AspectosHíbridos (Lisp, Visual Basic)Incomprensibles....
Cada enfoque tiene sus ventajas y desventajasCada uno es más apropiado para ciertas cosas
El mundo color de ObjetosTodo el mundo está compuesto de entidades
que se relacionan e interactúan entre si
¿Qué es un Objeto?Todo es un Objeto ¡¿~?!
¿Es lo mismo de siempre con otro nombre?Pensar en Objetos ….
No es el último grito de la moda (1980s)
El mundo color de Objetos¿Por qué Orientación a Objetos (OO)?
Se parece más al mundo realPermite representar modelos complejosMuy apropiada para aplicaciones de negociosLas empresas ahora sí aceptan la OOLas nuevas plataformas de desarrollo la han
adoptado (Java / .NET)
Temas a TratarParadigmas de ProgramaciónClases y ObjetosModificadores de Acceso¿Qué es UML?Principios de la Orientación a ObjetosConceptos del Diseño Orientado a Objetos
¿Qué es un Objeto?Informalmente, un objeto representa una
entidad del mundo realEntidades Físicas
(Ej.: Vehículo, Casa, Producto)
Entidades Conceptuales (Ej.: Proceso Químico, Transacción Bancaria)
Entidades de Software (Ej.: Lista Enlazada, Interfaz Gráfica)
¿Qué es un Objeto?Definición Formal (Rumbaugh):
“Un objeto es un concepto, abstracción o cosa con un significado y límites claros en el problema en cuestión”
Un objeto posee (Booch):EstadoComportamientoIdentidad
Un objeto posee EstadoLo que el objeto sabeEl estado de un objeto es una de las posibles
condiciones en que el objeto puede existirEl estado normalmente cambia en el
transcurso del tiempoEl estado de un objeto es implementado por
un conjunto de propiedades (atributos), además de las conexiones que puede tener con otros objetos
Un objeto posee ComportamientoLo que el objeto puede hacerEl comportamiento de un objeto determina
cómo éste actúa y reacciona frente a las peticiones de otros objetos
Es modelado por un conjunto de mensajes a los que el objeto puede responder (operaciones que puede realizar)
Se implementa mediante métodos
Un objeto posee IdentidadCada objeto tiene una identidad única,
incluso si su estado es idéntico al de otro objeto
¿Qué es una Clase?Una clase es una descripción de un grupo de
objetos con: Propiedades en común (atributos)Comportamiento similar (operaciones)La misma forma de relacionarse con otros
objetos (relaciones)Una semántica en común (significan lo mismo)
Una clase es una abstracción que:Enfatiza las características relevantesSuprime otras características (simplificación)
Un objeto es una instancia de una clase
Objetos y ClasesUna clase es una definición abstracta de un
objetoDefine la estructura y el comportamiento
compartidos por los objetosSirve como modelo para la creación de objetos
Los objetos pueden ser agrupados en clases
Ejemplo de una ClaseClase: CursoEstado (Atributos)
NombreUbicaciónDías OfrecidosHorario de InicioHorario de Término
Comportamiento (Métodos)Agregar un AlumnoBorrar un AlumnoEntregar un Listado del CursoDeterminar si está Completo
Temas a TratarParadigmas de ProgramaciónClases y ObjetosModificadores de Acceso¿Qué es UML?Pilares de la Orientación a ObjetosConceptos del Diseño Orientado a Objetos
Modificadores de AccesoPermiten definir el nivel de acceso
(visibilidad) de los miembros (atributos o métodos) de una clasePublico: Cualquier clase puede “ver” los
miembros públicos de otra clasePrivado: Sólo la clase puede ver sus propios
miembros privadosExisten otros dos modificadores para
propósitos específicos (Paquete, Protegido)
Temas a TratarParadigmas de ProgramaciónClases y ObjetosModificadores de Acceso¿Qué es UML?Pilares de la Orientación a ObjetosConceptos del Diseño Orientado a Objetos
¿Qué es UML?“UML es un lenguaje visual para especificar,
construir y documentar sistemas” (OMG - Object Management Group)
Unified (UNIFICADO):El aporte de muchos métodos y notacionesIndependiente de implementaciones, plataformas y
lenguajesModeling (MODELADO):
Los modelos son utilizados en todas las ingenieríasLanguage (LENGUAJE):
Si hay gente, requieren comunicarse. Si se tienen que comunicar, se tienen que entender. Para entenderse necesitan un lenguaje común
¡UML no es Metodología!
Una Clase en UMLUna clase está compuesta de
tres seccionesLa primera sección contiene el
nombre de la claseLa segunda sección muestra la
estructura (atributos)La tercera sección muestra el
comportamiento (operaciones)La segunda y la tercera
sección pueden ser suprimidasModificadores de Acceso
Los miembros públicos se denotan con el signo “+”
Los miembros privados se denotan con el signo “–”
+AgregarAlumno()+BorrarAlumno()+GenerarListadoCurso()+EstaCompleto()
-nombre-ubicacion-dias-inicio-fin
Curso
Temas a TratarParadigmas de ProgramaciónClases y ObjetosModificadores de Acceso¿Qué es UML?Pilares de la Orientación a ObjetosConceptos del Diseño Orientado a Objetos
RelacionesRelaciones
HerenciaHerencia
AbstracciónAbstracción
Encapsulamiento Encapsulamiento
AbstracciónIgnorancia Selectiva
La abstracción nos ayuda a trabajar con cosas complejas
Se enfoca en lo importanteIgnora lo que no es importante (simplifica)
Una clase es una abstracción en la que: Se enfatizan las características relevantes Se suprimen otras características
Una clase debe capturar una y solo una abstracción clave
EncapsulamientoPrincipio que establece que los atributos
propios de un objeto no deben ser visibles desde otros objetosDeben ser declarados como privados
Permite abstraer al resto del mundo de la complejidad de la implementación interna
Permite exponer el estado del objeto sólo a través del comportamiento que le hayamos definido mediante miembros públicos
¿Por qué es útil?Punto de Control/ValidaciónMejor respuesta ante los Cambios
RelacionesTodo sistema abarca muchas clases y objetos Los objetos contribuyen en el
comportamiento de un sistema colaborando entre si La colaboración se logra a través de las
relaciones Existen dos tipos principales de relaciones
AsociaciónAgregación
Relaciones de AsociaciónUna asociación es una conexión entre dos
clases que representa una comunicaciónUna asociación puede tener nombreLa comunicación puede ser tanto uni como bi-
direccional (por defecto)La multiplicidad es el número de instancias que
participan en una asociaciónEjemplo:
Una Persona es Dueña de un VehículoUn Vehículo Pertenece a una Persona
Persona Vehiculo-dueño
Relaciones de AgregaciónLa agregación es una forma especial de
asociación donde un todo se relaciona con sus partesTambién se conoce como “una parte de” o una
relación de contenciónEjemplo:
Una Puerta es una parte de un VehículoEl Vehículo es azul, la Puerta es AzulMover el Vehículo implica mover la Puerta
+Mover()
-color
Vehiculo Puerta
HerenciaEs una relación entre
clases en la cual una clase comparte la estructura y comportamiento definido en otra clase (Grady Booch)
Cada clase que hereda de otra posee:Los atributos de la clase
base además de los propiosSoporta todos o algunos de
los métodos de la clase baseUna subclase hereda de
una clase base
+Avanzar()+Detenerse()
-pasajeros
Transporte
Automóvil Avión
Clase BaseClase Base
Clases Derivadas Clases Derivadas oo
subclasessubclases
HerenciaHerencia “Es-Un”: herencia real, donde la
subclase es un tipo específico de la superclaseUn Cuadrado es un RectánguloUn perro es un mamíferoUn automóvil es un vehículo a motor
Temas a TratarParadigmas de ProgramaciónClases y ObjetosModificadores de Acceso¿Qué es UML?Principios de la Orientación a ObjetosConceptos del Diseño Orientado a Objetos
Es la propiedad que tienen los objetos de permitir invocar genéricamente un comportamiento (método) cuya implementación será delegada al objeto correspondiente recién en tiempo de ejecución
El polimorfismo tiende a existir en las relaciones de herencia, pero no siempre es así
Polimorfismo
Polimorfismo - EjemploLa definición del método reside en la clase
baseLa implementación del método reside en la
clase derivadaLa invocación es resuelta al momento de
ejecución
Transporte
Avanzar
Frenar
Transporte
Avanzar
Frenar
Transporte
Avanzar
Frenar
Transporte
Avanzar
Frenar
Clases y EstructurasClasesDefinir una claseInstanciar una claseEstructurasPropiedades
ClasesSon tipos por referenciaTodas las clases derivan del tipo Object
Definir Una ClaseDefinición
Miembros de una claseEnumeraciones Campos Métodos (funciones o procedimientos) Propiedades Eventos
Class Cliente Public Nombre As String Public Apellidos As String
End Class
Instanciar: Crear un objeto en la memoriaPrimero declaramos la variable
Luego instanciamos (creamos el objeto en memoria)
A partir de este momento, la variable c tiene acceso a un nuevo objeto del tipo Cliente, por tanto podremos usarla para asignarle valores y usar cualquiera de los miembros que ese tipo de datos contenga:
Dim c As Cliente
c = New Cliente
c.Nombre = "Antonio“c.Apellidos = "Ruiz Rodríguez"
Estructuras: Tipos por valor definidos por el usuarioDefinir una estructura
Utilizar una estructura
Structure PuntoPublic X As IntegerPublic Y As Integer
End Structure
Dim p As Puntop.X = 100p.Y = 75
EventosLa forma que tienen nuestras clases y
estructuras de comunicar que algo está ocurriendo, es por medio de eventos.
Principalmente se usan para Interceptar los eventos de los controles de un formulario
Ej. Click de un botón, Carga de un formulario
Desarrollo de Aplicaciones¿Qué tipo de aplicaciones puedo desarrollar
con Visual Basic 2005 Express?Podrá desarrollar principalmente, Aplicaciones para Windows, Bibliotecas de Clases y Aplicaciones de Consola, Aplicaciones Web, etc. Además, podrá añadir sus propias plantillas para obtener un mayor rendimiento en el desarrollo de aplicaciones.
Uso del diseñador de Visual BasicCuadro de herramientasExplorador de Bases de DatosExplorador de SolucionesPropiedadesMenús y barras de botones
ControlesDatosComponentesControles ComunesGeneral
Nuestra primera aplicación: Aplicación de ConsolaCrear una aplicación que dados 2 números nos
calcule el cociente y el resto y que termine cuando se lo indiquemos
Consideraciones:Escribir en pantalla:
Console.WriteLine(“mensaje”)Leer input del usuario:
variable=Console.ReadLineLimpiar la pantalla: Console.Clear
Aplicación Windows
ConsideracionesPropiedades comunes de los controles
Text (Name) Enabled Visible
Aplicación Agenda de WindowsPARTE I:Agregue un formulario Splash a su aplicación que se
mostrará durante 4 segundos.Agregue un Formulario MDI (este formulario tiene que
aparecer después del splash) con un menú principal de la siguiente manera:
MENUSMenú Archivo
Abrir Guardar como Salir
Datos Capturar datos Reporte
Agregue la funcionalidad al elemento del menú Archivo -> Salir para cerrar la ventana.
Aplicación AgendaPARTE II:Agregue un formulario de captura de datos
de la agenda (un Formulario secundario MDI) que incluya:
Etiqueta Tipo ValidaciónTipo ComboBox Aceptar los datos: Amigo, Familiar, Cliente, o Proveedor
Nombre TextBox Cadena con no más de 50 caracteres.
Correo electrónico TextBox Una “@” no se debe incluir en el primer caracter, por lo menos un “.” después de la “@”
Código Postal TextBox Todos los caracteres deben ser números y la longitud fija = 5
Fecha de nacimiento DatePicker La fecha debe ser anterior a hoy.
Aplicación AgendaTambién tiene que incluir un
CommandButton para validar que estén cargados todos los datos, y mostrar un MessageBox cuando haya terminado.
Utilice un ErrorProvider para mostrar los errores que validan a cada control.
Agregue la funcionalidad al elemento del menú Datos -> Capturar datos para mostrar este formulario como secundario MDI.
Aplicación Agenda
PARTE IIIIncluya un DataSet al proyecto.Agregue una Tabla al DataSet con los campos
Correo, Nombre, TipoContacto, FechaDeNacimiento y CodigoPostal. Aquí se almacenarán los datos de los contactos.
Agregue la funcionalidad al botón de comandos para agregar una fila a la tabla para cada dato capturado.
Agregue un formulario a su aplicación para mostrar los datos almacenados en la Tabla.
Agregue la funcionalidad al elemento del menú Datos -> Reporte para mostrar este formulario como secundario MDI.
Aplicación Agenda
PARTE IV:Agregue la funcionalidad a los elementos del
menú Archivo -> Guardar como para mantener el DataSet en un archivo XML.
Agregue la funcionalidad a los elementos del menú Archivo -> Abrir para recuperar el DataSet de un archivo XML.
Direcciones de interésBlog
diegopoza.wordpress.comMicrosoft Desarrollador 5 estrellas
www.dce2005.comMicrosoft Estudiantes
www.microsoft.com/spanish/msdn/latam/estudiantes
Grupo de Usuarios Microsoft Argentinawww.mug.org.ar
Microsoft Technettechnet.microsoft.com
Preguntas