Clase 4 Curso Microsoft.NETCurso Microsoft.NET I.S.F.T. N° 182I.S.F.T. N° 182.
-
Upload
enrique-coto -
Category
Documents
-
view
218 -
download
0
Transcript of 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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!”);}
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();
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
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
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
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
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
ArrayList – Ejemplo (C#)ArrayList – Ejemplo (C#)System.Collection.ArrayListSystem.Collection.ArrayList
Ba
se C
lass
Lib
rary
Ba
se C
lass
Lib
rary
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
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
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
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
DemoDemo
Aplicación windows consumiendo libreriasAplicación windows consumiendo librerias