Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

29
Clase 4 Clase 4 Curso Microsoft .NET Curso Microsoft .NET I.S.F.T. N° 182 I.S.F.T. N° 182

Transcript of Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Page 1: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Clase 4Clase 4•Curso Microsoft .NETCurso Microsoft .NET

•I.S.F.T. N° 182I.S.F.T. N° 182

Page 2: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

AgendaAgenda LibreriasLibrerias

ConceptoConcepto VentajasVentajas EjemploEjemplo

Profundizando Visual StudioProfundizando Visual Studio Compilar, debuggearCompilar, debuggear SnipetsSnipets

Profundizando POO y .NETProfundizando POO y .NET Mas conceptosMas conceptos

ExepcionesExepciones

Page 3: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

AgendaAgenda LibreriasLibrerias

ConceptoConcepto VentajasVentajas EjemploEjemplo

Profundizando Visual StudioProfundizando Visual Studio Compilar, debuggearCompilar, debuggear SnipetsSnipets

Profundizando POO y .NETProfundizando POO y .NET Mas conceptosMas conceptos

ExepcionesExepciones

Page 4: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

LibreriasLibrerias

Las librerias son un conjunto de clases Las librerias son un conjunto de clases agrupadas en un proyecto, y su objetivo es agrupadas en un proyecto, y su objetivo es proveer funcionalidad a otros proyectos.proveer funcionalidad a otros proyectos.

El resultado final de un proyecto de librerías El resultado final de un proyecto de librerías es un assembly de tipo DLL.es un assembly de tipo DLL.

Las librerias o DLL’s no pueden ser Las librerias o DLL’s no pueden ser ejecutadas directamente como los EXE, el ejecutadas directamente como los EXE, el objetivo de estas es ser consumido por otra objetivo de estas es ser consumido por otra aplicacion (de Consola, Winform, Web, etc)aplicacion (de Consola, Winform, Web, etc)

Vis

ua

l Stu

dio

IDE

Vis

ua

l Stu

dio

IDE

Page 5: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

VentajasVentajas Cuando tenemos una funcionalidad que se Cuando tenemos una funcionalidad que se

utiliza en distintos proyectos, es altamente utiliza en distintos proyectos, es altamente efectivo el uso de librerías ya que permiten efectivo el uso de librerías ya que permiten reutilización de funcionalidades.reutilización de funcionalidades.

Se utilizan cuando un sistema de divide en Se utilizan cuando un sistema de divide en capas, permite la abstracción.capas, permite la abstracción.

Vis

ua

l Stu

dio

IDE

Vis

ua

l Stu

dio

IDE

Page 6: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Ejemplo:Ejemplo: Un sistema de altas, donde hay una aplicación de Un sistema de altas, donde hay una aplicación de

tipo WinForm que se instala para dar de alta a las tipo WinForm que se instala para dar de alta a las personas, y también un sitio web para las personas personas, y también un sitio web para las personas que se dan de alta y no tienen una maquina propia:que se dan de alta y no tienen una maquina propia:

Vis

ua

l Stu

dio

IDE

Vis

ua

l Stu

dio

IDE

Aplicación Aplicación Windows:Windows:AltaPersonas.exeAltaPersonas.exe

Sitio Web:Sitio Web:http://www.misitio.com/alta.aspxhttp://www.misitio.com/alta.aspx

Librería de clases:Librería de clases:UtilPersonas.dllUtilPersonas.dll

Base de DatosBase de Datos

Page 7: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

AgendaAgenda LibreriasLibrerias

ConceptoConcepto VentajasVentajas EjemploEjemplo

Profundizando Visual StudioProfundizando Visual Studio Compilar, debuggearCompilar, debuggear SnipetsSnipets

Profundizando POO y .NETProfundizando POO y .NET Mas conceptosMas conceptos

ExepcionesExepciones

Page 8: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

CompilarCompilar Al compilar, transformamos nuestro código fuente en Al compilar, transformamos nuestro código fuente en

código MSIL. Que es el lenguaje que interpreta código MSIL. Que es el lenguaje que interpreta el .NET Framework para ejecutar nuestra aplicaciónel .NET Framework para ejecutar nuestra aplicación

Page 9: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Errores en tiempo de CompilaciónErrores en tiempo de Compilación

Una vez finalizado el Una vez finalizado el desarrollo, se compilará la desarrollo, se compilará la solución para probar su solución para probar su funcionamientofuncionamiento

Muchas veces aparecen Muchas veces aparecen errores en tiempo de errores en tiempo de compilación, que no dejan al compilación, que no dejan al desarrollador ejecutar la desarrollador ejecutar la aplicaciónaplicación

Visual Studio ofrece una lista Visual Studio ofrece una lista de errores que permite de errores que permite acceder rápidamente al lugar acceder rápidamente al lugar de código donde estos están.de código donde estos están.

Los errores en el código Los errores en el código aparecen remarcados para aparecen remarcados para poder identificarlos mas poder identificarlos mas rápidorápido

Bu

ild d

e

Bu

ild d

e

So

luc

ión

So

luc

ión

Page 10: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Errores en tiempo de EjecuciónErrores en tiempo de Ejecución Realizar un seguimiento Realizar un seguimiento

de código es muy útilde código es muy útil BreakpointsBreakpoints

Marcas en código donde Marcas en código donde se interrumpe la ejecuciónse interrumpe la ejecución

Se puede analizar el valor Se puede analizar el valor de variables y editar de variables y editar códigocódigo

SteppingStepping Recorrer el código línea Recorrer el código línea

por líneapor línea Se puede ingresar a los Se puede ingresar a los

métodos que son métodos que son llamados, volver atrás, etc.llamados, volver atrás, etc.

BreakpointBreakpoint

Línea de código ejecutadaLínea de código ejecutada

Menú DebugMenú Debug

Bu

ild d

e

Bu

ild d

e

So

luc

ión

So

luc

ión

Page 11: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

DebugDebug Debuggear es ir paso a paso por el código del proyecto, Debuggear es ir paso a paso por el código del proyecto,

y ver el estado de nuestros objetos, para encontrar y y ver el estado de nuestros objetos, para encontrar y solucionar problemas y entender el flujo de nuestra solucionar problemas y entender el flujo de nuestra aplicación.aplicación.

Para comenzar el debug, lo hacemos con la tecla F5Para comenzar el debug, lo hacemos con la tecla F5 Podemos poner puntos de interrupción para que la Podemos poner puntos de interrupción para que la

aplicación se detenga en ese punto del flujoaplicación se detenga en ese punto del flujo Para ir paso a paso, podemos utilizar las teclas F10 y F11Para ir paso a paso, podemos utilizar las teclas F10 y F11

Debuggear es ir paso a paso por el código del proyecto, Debuggear es ir paso a paso por el código del proyecto, y ver el estado de nuestros objetos, para encontrar y y ver el estado de nuestros objetos, para encontrar y solucionar problemas y entender el flujo de nuestra solucionar problemas y entender el flujo de nuestra aplicación.aplicación.

Para comenzar el debug, lo hacemos con la tecla F5Para comenzar el debug, lo hacemos con la tecla F5 Podemos poner puntos de interrupción para que la Podemos poner puntos de interrupción para que la

aplicación se detenga en ese punto del flujoaplicación se detenga en ese punto del flujo Para ir paso a paso, podemos utilizar las teclas F10 y F11Para ir paso a paso, podemos utilizar las teclas F10 y F11

Vis

ua

l Stu

dio

IDE

Vis

ua

l Stu

dio

IDE Línea a ejecutarLínea a ejecutar

Punto de interrupciónPunto de interrupción

Línea a ejecutarLínea a ejecutar

Punto de interrupciónPunto de interrupción

Page 12: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Analizando Valores en tiempo de Analizando Valores en tiempo de ejecuciónejecución

VisualizerVisualizer

Bu

ild d

e

Bu

ild d

e

So

luc

ión

So

luc

ión

Page 13: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

SnippetsSnippets

Los snippets son modelos de sintaxis comunes Los snippets son modelos de sintaxis comunes utilizados para nuestras aplicaciones, son utiles utilizados para nuestras aplicaciones, son utiles cuando no recordamos alguna sintaxis.cuando no recordamos alguna sintaxis.

Para ver los snippets, click derecho sobre la hoja de Para ver los snippets, click derecho sobre la hoja de codigo codigo Insert Snippet Insert Snippet Y elejimos el que Y elejimos el que queremos (ej: if, while, prop, etc)queremos (ej: if, while, prop, etc)

Vis

ua

l Stu

dio

IDE

Vis

ua

l Stu

dio

IDE

Page 14: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

AgendaAgenda LibreriasLibrerias

ConceptoConcepto VentajasVentajas EjemploEjemplo

Profundizando Visual StudioProfundizando Visual Studio Compilar, debuggearCompilar, debuggear SnipetsSnipets

Profundizando POO y .NETProfundizando POO y .NET Mas conceptosMas conceptos

ExepcionesExepciones

Page 15: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

NamespacesNamespacesS

inta

xis

Sin

taxi

s

Grupos de clases relacionados entre síGrupos de clases relacionados entre sí Agrupamiento lógico, no físicoAgrupamiento lógico, no físico Los Namespaces son jerárquicosLos Namespaces son jerárquicos Disminuyen los conflictos de nombresDisminuyen los conflictos de nombres

Ejemplo (Basado en el ejemplo de alta de personas):Ejemplo (Basado en el ejemplo de alta de personas): SisPersonas.UtilPersonas SisPersonas.UtilPersonas

(este namespace contendria todas las clases de la dll (este namespace contendria todas las clases de la dll UtilPersonas)UtilPersonas)

SisPersonas.PersonasWinSisPersonas.PersonasWin SisPersonas.PersonasWebSisPersonas.PersonasWeb

Por defecto, cuando trabajamos con Visual Studio 2005, todas Por defecto, cuando trabajamos con Visual Studio 2005, todas las clases de un proyecto estaran bajo el namespace de la las clases de un proyecto estaran bajo el namespace de la solucion y del proyecto (Ej: MiSolucion.MiProyecto). solucion y del proyecto (Ej: MiSolucion.MiProyecto). Fisicamente, esto se ve reflejado en una carpeta para la Fisicamente, esto se ve reflejado en una carpeta para la solucion, y dentro de esta otra carpeta para el proyecto. solucion, y dentro de esta otra carpeta para el proyecto.

Page 16: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

NamespacesNamespaces

C#C# C#C#namespace BancoARG{ namespace Gestion { public class CtaCte { } public class CajaAhorro { } }}

//Referencia “full”BancoARG.Gestion.CtaCte;BancoARG.Gestion.CajaAhorro;

//Referencia “corta”using BancoARG.Gestion;CtaCte cc = new CtaCte();CajaAhorro ca = new CajaAhorro();

PO

O y

Sin

taxi

sP

OO

y S

inta

xis

Page 17: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

EnumsEnums

C#: las estructuras se definen mediante enumC#: las estructuras se definen mediante enum

//Definicion del enum diasenum Dias {lunes, martes, miercoles, jueves, viernes};

Enum: Listas de datosEnum: Listas de datos Son nuestros propios tipos de datosSon nuestros propios tipos de datos Ayudan a hacer el codigo mas legible (en vez de Ayudan a hacer el codigo mas legible (en vez de

utilizar variables numericas)utilizar variables numericas)

PO

O y

Sin

taxi

sP

OO

y S

inta

xis

//UtilizacionDias dia = Dias.Lunes;If(dia != Dias.miercoles){

MessageBox.Show(“Hoy no es miercoles!”);}

Page 18: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

ClasesClases

C#: las clases son declaradas mediante classC#: las clases son declaradas mediante class

//Definicion de la clase CtaCteclass CtaCte{

//Definicion de miembros}

Clase: es la definición de las características de un Clase: es la definición de las características de un determinado tipo de objeto.determinado tipo de objeto.

PO

O y

Sin

taxi

sP

OO

y S

inta

xis

//Utilizacion de la clase CtaCteCtaCte objCtaCte = new CtaCte();

Page 19: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

ConstructoresConstructores

En C# tienen el mismo nombre de la claseEn C# tienen el mismo nombre de la clase

class CtaCte{ public CtaCte(){...} //Const. por default public CtaCte(int i){...} //Const. con un parametro}

Constructor: funciones dentro de la clase, que son Constructor: funciones dentro de la clase, que son llamadas cuando se crea una instancia de dicha llamadas cuando se crea una instancia de dicha clase.clase.

PO

O y

Sin

taxi

sP

OO

y S

inta

xis

Page 20: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Sobrecarga de MétodosSobrecarga de Métodos

C#C# C#C#public void HacerDeposito(int importe) {}

public void HacerDeposito(int importe, bool acreditar){}

Sobrecarga: varios métodos con el mismo nombre pero Sobrecarga: varios métodos con el mismo nombre pero diferentes parametros.diferentes parametros.

Sobrecarga: varios métodos con el mismo nombre pero Sobrecarga: varios métodos con el mismo nombre pero diferentes parametros.diferentes parametros.

PO

O y

Sin

taxi

sP

OO

y S

inta

xis

Page 21: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

HerenciaHerencia

En C# la herencia se define:En C# la herencia se define: En C# la herencia se define:En C# la herencia se define:

class Cuenta //Clase Padre{ }class CtaCte : Cuenta //Clase Hija{ }

Herencia: mecanismo por el cual una clase (hija) hereda de Herencia: mecanismo por el cual una clase (hija) hereda de otra (padre) para extender su funcionalidad.otra (padre) para extender su funcionalidad.

Herencia: mecanismo por el cual una clase (hija) hereda de Herencia: mecanismo por el cual una clase (hija) hereda de otra (padre) para extender su funcionalidad.otra (padre) para extender su funcionalidad.

En .NET solose permiteHerenciaSimple

PO

O y

Sin

taxi

sP

OO

y S

inta

xis

Page 22: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

HerenciaHerenciaHerenciaHerencia

class MyBaseClass{}

class MyDerivedClass: MyBaseClass{}

Hereda: Hereda: Todas las operaciones y atributos públicos y Todas las operaciones y atributos públicos y

privadosprivados Los constructores y destructores no son Los constructores y destructores no son

heredadosheredados

Hereda: Hereda: Todas las operaciones y atributos públicos y Todas las operaciones y atributos públicos y

privadosprivados Los constructores y destructores no son Los constructores y destructores no son

heredadosheredados

PO

O y

Sin

taxi

sP

OO

y S

inta

xis

Page 23: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Colecciones: Objetos que, internamente, gestionan arrays, pero que

estan preparados para gestionarlos de forma opimizada

Espacio de Nombres de System.Collection ArrayList: Array cuyo número de elementos puede

modificarse dinámicamente

HashTable: El acceso a los valores del array se realiza a traves de una clave asociada a cada elemento

SortedList: Variación de un HashTable en la que los elementos se ordenan por la clave según van siendo agregados, funcionamiento similar al HashTable

Queue: Útiles para almacenar mensajes en el orden en el que fueron recibidos

Stack: Representa una colección de objetos simple de la clase último en entrar, primero en salir

Colecciones: Objetos que, internamente, gestionan arrays, pero que

estan preparados para gestionarlos de forma opimizada

Espacio de Nombres de System.Collection ArrayList: Array cuyo número de elementos puede

modificarse dinámicamente

HashTable: El acceso a los valores del array se realiza a traves de una clave asociada a cada elemento

SortedList: Variación de un HashTable en la que los elementos se ordenan por la clave según van siendo agregados, funcionamiento similar al HashTable

Queue: Útiles para almacenar mensajes en el orden en el que fueron recibidos

Stack: Representa una colección de objetos simple de la clase último en entrar, primero en salir

Colecciones de ObjetosColecciones de ObjetosB

ase

Cla

ss L

ibra

ryB

ase

Cla

ss L

ibra

ry

Page 24: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

ArrayList – Ejemplo (C#)ArrayList – Ejemplo (C#)System.Collection.ArrayListSystem.Collection.ArrayList

Ba

se C

lass

Lib

rary

Ba

se C

lass

Lib

rary

Page 25: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

AgendaAgenda LibreriasLibrerias

ConceptoConcepto VentajasVentajas EjemploEjemplo

Profundizando Visual StudioProfundizando Visual Studio Compilar, debuggearCompilar, debuggear SnipetsSnipets

Profundizando POO y .NETProfundizando POO y .NET Mas conceptosMas conceptos

ExepcionesExepciones

Page 26: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

ExcepcionesExcepciones

Ejecución de un programa en forma irregular

Código bien escrito debe controlarlas .NET cuenta con gran soporte para el

manejo de excepciones

Ejecución de un programa en forma irregular

Código bien escrito debe controlarlas .NET cuenta con gran soporte para el

manejo de excepciones

Exc

ep

cion

es

Exc

ep

cion

es

Page 27: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Excepciones en C# y VB.NET

C#: usa las palabras try/catch/finally

C#: usa las palabras try/catch/finally

try{ int resultado = x/y;}catch(DivideByZeroException e){ //Error division por cero}catch{ //Otro error}finally{ //Siempre pasa por aca}

Excepción: objeto que se genera cuando en tiempo de ejecución ocurre un error y contiene info sobre el mismo

Excepción: objeto que se genera cuando en tiempo de ejecución ocurre un error y contiene info sobre el mismo

Exc

ep

cion

es

Exc

ep

cion

es

Se intenta ejecutar Se intenta ejecutar el codigo dentro el codigo dentro del “try”del “try”

Si ocurre una Si ocurre una excepción, esta es excepción, esta es capturada por los capturada por los distintos “catch”distintos “catch”

Opcionalmente, si Opcionalmente, si se agrega el se agrega el “finally” siempre se “finally” siempre se ejecutaran las ejecutaran las sentencias dentro sentencias dentro de elde el

Page 28: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

Asistente para el manejo de Excepciones Permite Descubrir mas sobre una Permite Descubrir mas sobre una

excepción.excepción. Permite corregir errores en Run-TimePermite corregir errores en Run-Time

Exc

ep

cion

es

Exc

ep

cion

es

Page 29: Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.

DemoDemo

Aplicación windows consumiendo libreriasAplicación windows consumiendo librerias