clase iii
TRANSCRIPT
Clase IIIClase III•[nombre instructor][nombre instructor]
•[fecha][fecha]
AgendaAgenda .NET Framework.NET Framework
AssembliesAssemblies App DomainApp Domain MSIL, JIT y Modelo de ejecuciónMSIL, JIT y Modelo de ejecución BCLBCL
Build de solucionesBuild de soluciones Errores en tiempo de compilaciónErrores en tiempo de compilación Errores en tiempo de ejecuciónErrores en tiempo de ejecución DebuggingDebugging Edit & ContinueEdit & Continue
Programación Orientada a ObjetosProgramación Orientada a Objetos Clases AbstractasClases Abstractas Métodos VirtualesMétodos Virtuales
ExcepcionesExcepciones Accesibilidad de MiembrosAccesibilidad de Miembros
AgendaAgenda ..NET FrameworkNET Framework
AssembliesAssemblies App DomainApp Domain MSIL, JIT y Modelo de ejecuciónMSIL, JIT y Modelo de ejecución BCLBCL
Build de solucionesBuild de soluciones Errores en tiempo de compilaciónErrores en tiempo de compilación Errores en tiempo de ejecuciónErrores en tiempo de ejecución DebuggingDebugging Edit & ContinueEdit & Continue
Programación Orientada a ObjetosProgramación Orientada a Objetos Clases AbstractasClases Abstractas Métodos VirtualesMétodos Virtuales
ExcepcionesExcepciones Accesibilidad de MiembrosAccesibilidad de Miembros
Que es un ensamblado “Assembly”?Que es un ensamblado “Assembly”? Un assemby es la unidad mas pequeña de Un assemby es la unidad mas pequeña de
distribución de código, instalación y distribución de código, instalación y versionadoversionado
Assemby sencilloAssemby sencillo
ResourcesResources
MSILMSIL
MetaDataMetaData
ManifestManifest
ThisAssembly.dllThisAssembly.dll
ResourcesResources
MSILMSIL
MetaDataMetaData
ManifestManifest
ThisAssembly.dllThisAssembly.dll
MSILMSIL
MetadataMetadata
A.netmoduleA.netmodule
B.netmoduleB.netmodule
ManifestManifest(No Assembly Metadata)(No Assembly Metadata)
MSILMSIL
MetadataMetadata
ManifestManifest(No Assembly Metadata)(No Assembly Metadata)
Assembly complejoAssembly complejo
.NE
T F
ram
ew
ork
.NE
T F
ram
ew
ork
CaracterísticasCaracterísticas de un Assembly de un Assembly Unidad de distribuciónUnidad de distribución
Uno o mas archivos independientemente del Uno o mas archivos independientemente del empaquetado ( packaging)empaquetado ( packaging)
Auto descriptivo usando el metadataAuto descriptivo usando el metadata ReflectionReflection
VersionadoVersionado Capturada por el CompiladorCapturada por el Compilador
Frontera de SeguridadFrontera de Seguridad Contienen permisos de ejecuciónContienen permisos de ejecución
Seguridad basada en evidenciasSeguridad basada en evidencias Los métodos pueden demandar pruebas de Los métodos pueden demandar pruebas de
permisos concedido para todo el proceso de permisos concedido para todo el proceso de ejecución.ejecución.
.NE
T F
ram
ew
ork
.NE
T F
ram
ew
ork
Que es el Metadata?Que es el Metadata? Describe a un assemblyDescribe a un assembly
Identifica: Nombre, versión, Cultura, Llaves Identifica: Nombre, versión, Cultura, Llaves publicaspublicas
Que tipos son exportadosQue tipos son exportados A que otros assemblys hace referenciaA que otros assemblys hace referencia Permisos que se necesitan para la ejecuciónPermisos que se necesitan para la ejecución
Descripción de tiposDescripción de tipos Nombre, visibilidad, clases base, interfaces que Nombre, visibilidad, clases base, interfaces que
implementaimplementa Miembros ( métodos, campos, propiedades, Miembros ( métodos, campos, propiedades,
eventos, tipos anidados)eventos, tipos anidados) Sentencias declarativasSentencias declarativas
Atributos definido por el usuarioAtributos definido por el usuario Atributos definidos por el compiladorAtributos definidos por el compilador Atributos definidos por el frameworkAtributos definidos por el framework
.NE
T F
ram
ew
ork
.NE
T F
ram
ew
ork
ManifiestManifiest.N
ET
Fra
me
wor
k.N
ET
Fra
me
wor
k
Dll HellDll Hell Problema de incompatibilidad entre versiones de Problema de incompatibilidad entre versiones de
librerías que están relacionadas entre si. librerías que están relacionadas entre si. Puede causar que todas las aplicaciones dejen de Puede causar que todas las aplicaciones dejen de
funcionar. funcionar. Puede ser causada por problemas en los Puede ser causada por problemas en los
instaladores, que no verifican correctamente el instaladores, que no verifican correctamente el versionado de las librerías.versionado de las librerías.
.NET Framework, con los assemblies, resuelve el .NET Framework, con los assemblies, resuelve el problema.problema. Cada assembly contiene el manifest con Cada assembly contiene el manifest con
información de versionado y compatibilidad con información de versionado y compatibilidad con otros assembliesotros assemblies
No se requiere mas el uso de instaladores para No se requiere mas el uso de instaladores para distribuir aplicaciones.distribuir aplicaciones.
.NE
T F
ram
ew
ork
.NE
T F
ram
ew
ork
Global Assembly CacheGlobal Assembly Cache Cache a nivel máquinaCache a nivel máquina Almacena assemblies que deben ser Almacena assemblies que deben ser
compartidos por diferentes aplicacionescompartidos por diferentes aplicaciones Instalar en GAC solo los assemblies que Instalar en GAC solo los assemblies que
deben ser compartidos y mantener privados deben ser compartidos y mantener privados a los que noa los que no
Para instalar en GAC un assemblyPara instalar en GAC un assembly Utilizar un instaladorUtilizar un instalador Utilizar la herramienta gacutil.exeUtilizar la herramienta gacutil.exe Utilizar el Windows Explorer para Utilizar el Windows Explorer para
arrastrar los assemblies al cachearrastrar los assemblies al cache
.NE
T F
ram
ew
ork
.NE
T F
ram
ew
ork
Que son los AppDomains?Que son los AppDomains? Procesos lógicos dentro del CLRProcesos lógicos dentro del CLR
Corren dentro de un proceso del Sistema Corren dentro de un proceso del Sistema OperativoOperativo
Un proceso del sistema operativo puede Un proceso del sistema operativo puede contener varios AppDomainscontener varios AppDomains
Es mucho mas barato que múltiple procesos del Es mucho mas barato que múltiple procesos del sistema operativosistema operativo Mucho menos costoso el intercambio de Mucho menos costoso el intercambio de
ejecuciónejecución Un assembly y sus tipos son siempre cargados Un assembly y sus tipos son siempre cargados
dentro de un AppDomaindentro de un AppDomain Provee una frontera paraProvee una frontera para
FallosFallos TiposTipos SeguridadSeguridad
.NE
T F
ram
ew
ork
.NE
T F
ram
ew
ork
CLR, AppDomains y AssembliesCLR, AppDomains y Assemblies.N
ET
Fra
me
wor
k.N
ET
Fra
me
wor
k
MSIL (Intermediate Language) + MSIL (Intermediate Language) + MetadataMetadata MSIL: lenguaje similar a las instrucciones nativas MSIL: lenguaje similar a las instrucciones nativas
de un procesadorde un procesador Metadata: es información acerca de los tipos Metadata: es información acerca de los tipos
(clases, interfaces, etc) y es almacenada junto al (clases, interfaces, etc) y es almacenada junto al MSILMSIL
.NE
T F
ram
ew
ork
.NE
T F
ram
ew
ork
Compilando Managed Code (MSIL + Compilando Managed Code (MSIL + Metadata)Metadata) Cuando el código administrado (C#, VB.NET, etc) es Cuando el código administrado (C#, VB.NET, etc) es
compilado, se genera un archivo (Assembly) .DLL o compilado, se genera un archivo (Assembly) .DLL o .EXE conteniendo:.EXE conteniendo: Código MSILCódigo MSIL MetadataMetadata
.NE
T F
ram
ew
ork
.NE
T F
ram
ew
ork
Compilación JITCompilación JIT Compilación JIT: El CLR compila cada método la Compilación JIT: El CLR compila cada método la
primera vez que el mismo es invocado. primera vez que el mismo es invocado. El MSIL es compilado a código nativo por el JIT El MSIL es compilado a código nativo por el JIT
antes de que sea ejecutado. antes de que sea ejecutado. Ejemplo: Tres Ejemplo: Tres
clases X, Y, Z. clases X, Y, Z. El met. 1 de Y El met. 1 de Y ha sido ha sido compilado y compilado y este llama al este llama al met. 1 de Z que met. 1 de Z que esta en MSIL.esta en MSIL.
.NE
T F
ram
ew
ork
.NE
T F
ram
ew
ork
Compilación JIT (Cont.)Compilación JIT (Cont.) El met. 1 de Y llama al met. 4 dentro de Y. Como el El met. 1 de Y llama al met. 4 dentro de Y. Como el
met. 4 esta en MSIL, el CLR invoca al JIT para met. 4 esta en MSIL, el CLR invoca al JIT para compilarlo a código nativo. compilarlo a código nativo.
.NE
T F
ram
ew
ork
.NE
T F
ram
ew
ork
Compilación JIT (Cont.)Compilación JIT (Cont.) Ahora met. 1 de Y llama NUEVAMENTE al met. 1 de Ahora met. 1 de Y llama NUEVAMENTE al met. 1 de
Z. Como el met. 1 de Z ya ha sido compilado a Z. Como el met. 1 de Z ya ha sido compilado a código nativo, el JIT NO interviene.código nativo, el JIT NO interviene.
.NE
T F
ram
ew
ork
.NE
T F
ram
ew
ork
Modelo de EjecuciónModelo de Ejecución
VBVB VC#VC# VC++VC++ ……
ILILNativeNativeCodeCode
JITJITCompilerCompiler
NativeNativeCodeCode
Install timeInstall timeCode GenCode Gen
Common Language RuntimeCommon Language Runtime
.NE
T F
ram
ew
ork
.NE
T F
ram
ew
ork
Soporte para múltiples lenguajesSoporte para múltiples lenguajes El .NET Framework soporta múltiples lenguajes de El .NET Framework soporta múltiples lenguajes de
desarrollo. desarrollo. Microsoft provee compiladores de C#, VB.NET, J#, Microsoft provee compiladores de C#, VB.NET, J#,
JScript.NET, y C++ con extensiones administradas. JScript.NET, y C++ con extensiones administradas. Otros fabricantes de lenguajes también han Otros fabricantes de lenguajes también han
desarrollado compiladores para .NET, por ej: desarrollado compiladores para .NET, por ej: COBOL.NET, Smalltalk, Perl, Pyton, Delphi, etc.COBOL.NET, Smalltalk, Perl, Pyton, Delphi, etc.
Todos los lenguajes para .NET COMPILAN a MSIL Todos los lenguajes para .NET COMPILAN a MSIL Beneficios del soporte para múltiples lenguajes:Beneficios del soporte para múltiples lenguajes:
Reutilización de códigoReutilización de código La biblioteca de clases es igual para todosLa biblioteca de clases es igual para todos Le permite optar por el lenguaje con el que se siente más Le permite optar por el lenguaje con el que se siente más
cómodocómodo Todos los lenguajes tienen la “misma performance”Todos los lenguajes tienen la “misma performance”
.NE
T F
ram
ew
ork
.NE
T F
ram
ew
ork
ILDASMILDASM
Herramienta para Herramienta para navegar por el IL navegar por el IL de un PEde un PE
.NE
T F
ram
ew
ork
.NE
T F
ram
ew
ork
Base Class Library (BCL)Base Class Library (BCL)
La BCL es un conjunto de tipos La BCL es un conjunto de tipos (clases, interfaces, etc.) básicos que (clases, interfaces, etc.) básicos que vienen predefinidos en el .NET vienen predefinidos en el .NET FrameworkFramework
Estos tipos están organizados en Estos tipos están organizados en jerarquías lógicas de nombres, jerarquías lógicas de nombres, denominado NAMESPACEdenominado NAMESPACE
Estos tipos también son Estos tipos también son INDEPENDIENTES del lenguaje de INDEPENDIENTES del lenguaje de desarrollodesarrollo
La BCL es extensible y totalmente La BCL es extensible y totalmente orientada a objetosorientada a objetos.N
ET
Fra
me
wor
k.N
ET
Fra
me
wor
k
¿¿Qué son los Namespaces?Qué son los Namespaces?
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
.NE
T F
ram
ew
ork
.NE
T F
ram
ew
ork
Convención de nombresConvención de nombres
Sintaxis determinada por un puntoSintaxis determinada por un punto Connota jerarquíasConnota jerarquías Permite buscar y referencias clases de Permite buscar y referencias clases de
manera mas sencillamanera mas sencilla La primera parte del nombre completo es el La primera parte del nombre completo es el
namespace, la ultima el nombre del tiponamespace, la ultima el nombre del tipo En el desarrollo de librerías de clases, En el desarrollo de librerías de clases,
generalmente se utiliza la convención generalmente se utiliza la convención NombreEmpresa.NombreTecnologíaNombreEmpresa.NombreTecnología
.NE
T F
ram
ew
ork
.NE
T F
ram
ew
ork
Base Class Library (BCL)Base Class Library (BCL)
System System
System.DataSystem.Data System.XmlSystem.Xml
System.WebSystem.Web
GlobalizationGlobalization
DiagnosticsDiagnostics
ConfigurationConfiguration
CollectionsCollections
ResourcesResources
ReflectionReflection
NetNet
IOIO
ThreadingThreading
TextText
ServiceProcessServiceProcess
SecuritySecurity
CommonCommon
OleDbOleDb
SQLTypesSQLTypes
SqlClientSqlClient
XPathXPath
XSLTXSLT
RuntimeRuntimeInteropServicesInteropServices
RemotingRemoting
SerializationSerialization
SerializationSerialization
ConfigurationConfiguration SessionStateSessionState
CachingCaching SecuritySecurity
ServicesServicesDescriptionDescription
DiscoveryDiscovery
ProtocolsProtocols
UIUIHtmlControlsHtmlControls
WebControlsWebControls
System.DrawingSystem.Drawing
ImagingImaging
Drawing2DDrawing2D
TextText
PrintingPrinting
System.Windows.FormsSystem.Windows.Forms
DesignDesign ComponentModelComponentModel
.NE
T F
ram
ew
ork
.NE
T F
ram
ew
ork
Administrando Propiedades de una Administrando Propiedades de una aplicaciónaplicación
.NE
T F
ram
ew
ork
.NE
T F
ram
ew
ork
DemoDemo•Assemblies y MSILAssemblies y MSIL
ResumenResumen
Assemblies y MetadataAssemblies y Metadata App DomainsApp Domains MSILMSIL JITJIT BCLBCL
.NE
T F
ram
ew
ork
.NE
T F
ram
ew
ork
AgendaAgenda .NET Framework.NET Framework
AssembliesAssemblies App DomainApp Domain MSIL, JIT y Modelo de ejecuciónMSIL, JIT y Modelo de ejecución BCLBCL
Build de solucionesBuild de soluciones Errores en tiempo de compilaciónErrores en tiempo de compilación Errores en tiempo de ejecuciónErrores en tiempo de ejecución DebuggingDebugging Edit & ContinueEdit & Continue
Programación Orientada a ObjetosProgramación Orientada a Objetos Clases AbstractasClases Abstractas Métodos VirtualesMétodos Virtuales
ExcepcionesExcepciones Accesibilidad de MiembrosAccesibilidad de Miembros
Compilar, Debuggear y TestearCompilar, Debuggear y Testear
Actividades principales en el Actividades principales en el desarrollo de aplicaciones desarrollo de aplicaciones componentes y servicios robustoscomponentes y servicios robustos
Visual Studio 2005 esta diseñado paraVisual Studio 2005 esta diseñado para Controlar configuraciones de compilaciónControlar configuraciones de compilación Identificar errores y resolverlosIdentificar errores y resolverlos Testear las aplicacionesTestear las aplicaciones
Bu
ild d
e S
olu
ción
Bu
ild d
e S
olu
ción
Compilando (Construyendo) En Visual Compilando (Construyendo) En Visual Studio 2005Studio 2005 Compilación en modo DebugCompilación en modo Debug
Se compila repetidamente, mientras se Se compila repetidamente, mientras se desarrolladesarrolla
El debugging es un proceso de dos pasosEl debugging es un proceso de dos pasos Errores en tiempo de CompilaciónErrores en tiempo de Compilación
SintaxisSintaxis TipeoTipeo Inconsistencias de tiposInconsistencias de tipos
Errores en tiempo de EjecuciónErrores en tiempo de Ejecución Errores lógicosErrores lógicos Errores semánticosErrores semánticos
Compilación en modo ReleaseCompilación en modo Release Una vez que el desarrollo está completo y fue Una vez que el desarrollo está completo y fue
suficientemente debuggeadosuficientemente debuggeado Versión optimizadaVersión optimizada
Mas rápidaMas rápida Mas chicaMas chica
Desde la barra de accesos rápidos se Desde la barra de accesos rápidos se puede cambiar el modo de compilación y puede cambiar el modo de compilación y
comenzarlacomenzarla
Bu
ild d
e S
olu
ción
Bu
ild d
e S
olu
ció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 S
olu
ción
Bu
ild d
e S
olu
ció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 S
olu
ción
Bu
ild d
e S
olu
ción
Analizando Valores en tiempo de Analizando Valores en tiempo de ejecuciónejecución
VisualizerVisualizer
Bu
ild d
e S
olu
ción
Bu
ild d
e S
olu
ción
Edit & ContinueEdit & Continue
Permite realizar cambios en el código Permite realizar cambios en el código fuente mientras el programa esta en fuente mientras el programa esta en break mode.break mode.
Soporta la mayoría de cambios de Soporta la mayoría de cambios de código en tiempo de ejecución.código en tiempo de ejecución.
Bu
ild d
e S
olu
ción
Bu
ild d
e S
olu
ción
LaboratorioLaboratorio•DebuggingDebugging
ResumenResumen
CompilaciónCompilación Corregir errores en tiempo de Corregir errores en tiempo de
compilacióncompilación Corregir errores en tiempo de Corregir errores en tiempo de
ejecuciónejecución Break PointsBreak Points Edit & ContinueEdit & Continue
Bu
ild d
e S
olu
ción
Bu
ild d
e S
olu
ción
AgendaAgenda .NET Framework.NET Framework
AssembliesAssemblies App DomainApp Domain MSIL, JIT y Modelo de ejecuciónMSIL, JIT y Modelo de ejecución BCLBCL
Build de solucionesBuild de soluciones Errores en tiempo de compilaciónErrores en tiempo de compilación Errores en tiempo de ejecuciónErrores en tiempo de ejecución DebuggingDebugging Edit & ContinueEdit & Continue
Programación Orientada a ObjetosProgramación Orientada a Objetos Clases AbstractasClases Abstractas Métodos VirtualesMétodos Virtuales
ExcepcionesExcepciones Accesibilidad de MiembrosAccesibilidad de Miembros
InterfasesInterfases
Contienen solo métodos sin implementaciónContienen solo métodos sin implementación Describen un “contrato”Describen un “contrato” No heredan atributosNo heredan atributos No se pueden crear instancias de una No se pueden crear instancias de una
interfaseinterfase Las clases derivadas deben de implementar Las clases derivadas deben de implementar
todas las operaciones heredadastodas las operaciones heredadasITransportable
Acelera
Frena
PO
OP
OO
Métodos de la InterfaseMétodos de la Interfase
Una clase puede implementar cero, Una clase puede implementar cero, una o más interfasesuna o más interfases
Deben de implementarse todos los Deben de implementarse todos los métodos heredados por la interfasemétodos heredados por la interfase
Las interfases a su vez pueden Las interfases a su vez pueden heredar de múltiples interfasesheredar de múltiples interfases
PO
OP
OO
Métodos VirtualesMétodos Virtuales
Es un método que la clase base permite Es un método que la clase base permite que sea sobrescrito en una clase derivadaque sea sobrescrito en una clase derivada
Un método no-virtual es la UNICA Un método no-virtual es la UNICA implementación posible para este métodoimplementación posible para este método
PO
OP
OO
OcultamientoOcultamiento
Esconde un método idénticoEsconde un método idéntico Introduce un nuevo método a la Introduce un nuevo método a la
jerarquía de la clasejerarquía de la clase Oculta los métodos virtuales y no-Oculta los métodos virtuales y no-
virtualvirtual Esconde métodos con firmas Esconde métodos con firmas
idénticasidénticas Esconde campos con el mismo Esconde campos con el mismo
identificadoridentificador
PO
OP
OO
Clases AbstractasClases Abstractas
Proveen una implementación parcial Proveen una implementación parcial para que sea heredada por las clases para que sea heredada por las clases derivadasderivadas
No pueden ser instanciadasNo pueden ser instanciadas
Transporte{ abstract }
Taxi<<Concrete>>
Colectivo<<Concrete>>
PO
OP
OO
Métodos AbstractosMétodos Abstractos
Solo en clases abstractasSolo en clases abstractas No pueden contener implementaciónNo pueden contener implementación Deben ser implementados por las clases derivadasDeben ser implementados por las clases derivadas Los métodos abstractos son virtualesLos métodos abstractos son virtuales Los métodos abstractos pueden sobrescribir Los métodos abstractos pueden sobrescribir
métodos de la clase base declarados como métodos de la clase base declarados como virtualesvirtuales
Los métodos abstractos pueden sobrescribir Los métodos abstractos pueden sobrescribir métodos de la clase base declarados como métodos de la clase base declarados como “override”“override”
PO
OP
OO
AgendaAgenda .NET Framework.NET Framework
AssembliesAssemblies App DomainApp Domain MSIL, JIT y Modelo de ejecuciónMSIL, JIT y Modelo de ejecución BCLBCL
Build de solucionesBuild de soluciones Errores en tiempo de compilaciónErrores en tiempo de compilación Errores en tiempo de ejecuciónErrores en tiempo de ejecución DebuggingDebugging Edit & ContinueEdit & Continue
Programación Orientada a ObjetosProgramación Orientada a Objetos Clases AbstractasClases Abstractas Métodos VirtualesMétodos Virtuales
ExcepcionesExcepciones Accesibilidad de MiembrosAccesibilidad de Miembros
ExcepcionesExcepciones
Ejecución de un programa en forma Ejecución de un programa en forma irregularirregular
Código bien escrito debe controlarlasCódigo bien escrito debe controlarlas .NET cuenta con gran soporte para el .NET cuenta con gran soporte para el
manejo de excepcionesmanejo de excepciones
Exc
epci
one
sE
xcep
cio
nes
Excepciones en C# y VB.NETExcepciones en C# y VB.NET
C#: C#: usa las palabras usa las palabras trytry//catchcatch//finallyfinally
VB.NETVB.NET usa las palabras usa las palabras TryTry//CatchCatch//FinallyFinally
try{ int resultado = x/y;}catch(DivideByZeroException e){ //Error division por cero}catch{ //Otro error}finally{ //Siempre pasa por aca}
Try Dim resultado As Integer resultado = x/yCatch e As DivideByZeroException ‘Error division por ceroCatch ‘Otro errorFinally ‘Siempre pasa por acaEnd Try
Excepción:Excepción: objeto que se genera cuando en tiempo de ejecución objeto que se genera cuando en tiempo de ejecución ocurre un error y contiene info sobre el mismoocurre un error y contiene info sobre el mismo
Exc
epci
one
sE
xcep
cio
nes
Asistente para el manejo de Asistente para el manejo de ExcepcionesExcepciones 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
epci
one
sE
xcep
cio
nes
AgendaAgenda .NET Framework.NET Framework
AssembliesAssemblies App DomainApp Domain MSIL, JIT y Modelo de ejecuciónMSIL, JIT y Modelo de ejecución BCLBCL
Build de solucionesBuild de soluciones Errores en tiempo de compilaciónErrores en tiempo de compilación Errores en tiempo de ejecuciónErrores en tiempo de ejecución DebuggingDebugging Edit & ContinueEdit & Continue
Programación Orientada a ObjetosProgramación Orientada a Objetos Clases AbstractasClases Abstractas Métodos VirtualesMétodos Virtuales
ExcepcionesExcepciones Accesibilidad de MiembrosAccesibilidad de Miembros
Alcance de miembrosAlcance de miembros
MiembroMiembro: se refiere a los campos, propiedades, métodos, : se refiere a los campos, propiedades, métodos, eventos, clases anidadas, etc.eventos, clases anidadas, etc.
C#:C#: todo miembro es declarado como todo miembro es declarado como PRIVATEPRIVATE por default por default VB.NET:VB.NET: todo miembro es declarado como todo miembro es declarado como PUBLICPUBLIC por default por default Modificadores de acceso disponibles:Modificadores de acceso disponibles:
C#C# VB.NETVB.NETpublicpublic PublicPublicprivateprivate PrivatePrivateinternalinternal FriendFriendprotectedprotected ProtectedProtectedprotected internalprotected internal Protected FriendProtected Friend
Acc
esib
ilid
ad
Acc
esib
ilid
ad
Modificadores de AccesibilidadModificadores de Accesibilidad
Es posible especificar distintos tipos de acceso para gets y sets Gets públicos y sets protegidos
Solo se puede modificar uno de los dos Se puede especificar solo accesibilidad más restrictiva.
C#
VB.NET
Acc
esib
ilid
ad
Acc
esib
ilid
ad
ExámenExámen
Para próxima clase tener rendido el Para próxima clase tener rendido el exámen: exámen:
““Net Esencial’s”Net Esencial’s”
www.dce2005.com