Professional Documents
Culture Documents
Objetivo
Presentar una introduccin a la plataforma de desarrollo Microsoft .NET, describiendo sus principios bsicos de funcionamiento, su arquitectura de componentes y sus principales bibliotecas reutilizables, mostrando adems las novedades introducidas en la ltima versin de la misma.
Prerrequisitos
Poseer los conocimientos proporcionados por la Estrella 0 del programa Haber aprobado el examen correspondiente a la Estrella 0 del programa Conocimientos fundamentales de bases de datos relacionales, incluyendo
Temas a Tratar
Introduccin a Microsoft .NET Componentes Fundamentales Funcionamiento Interno del CLR Bibliotecas Principales Ventajas de .NET Herramientas de Desarrollo .NET Novedades en .NET 2.0
Temas a Tratar
Introduccin a Microsoft .NET
Paradigmas de Programacin
Funcionalidad
cios ervi S
Windows 3.0
s API
Win16
1980 1990
tes n one p om C
COM Win32 MFC
2000
Qu NO es .NET?
.NET no es un Sistema Operativo .NET no es un Lenguaje de Programacin .NET no es un Entorno de Desarrollo .NET no es un Servidor de Aplicaciones .NET no es un producto empaquetado que se pueda comprar como tal
Qu es .NET?
Plataforma de Desarrollo compuesta de
Entorno de Ejecucin (Runtime) Bibliotecas de Funcionalidad (Class Library) Lenguajes de Programacin Compiladores Herramientas de Desarrollo (IDE & Tools) Guas de Arquitectura
Entorno de Desarroll o
COM: Windows .NET: Common Language Runtime COM: Algunas (ADO, FSO, etc.) .NET: Muy extensa (.NET Framework Class Library) COM: VB, C++, VFP, ASP, J++ .NET: Common Language Specification COM: Uno para cada lenguaje .NET: Uno independiente del lenguaje (VS.NET)
Libreras de Funcionalidad
Lenguajes de Programacin
Qu es el .NET Framework?
Paquete de software fundamental de la plataforma .NET. Incluye:
.NET Framework Redistributable Package .NET Framework SDK .NET Compact Framework
Servidor
2000
2001
2002
2003
2004
2005
2006 y ms
Visual Studio .NET 2002 .NET Framework 1.0 Visual Basic .NET C#
Visual Studio 2005 (Whidbey) .NET Framework 2.0 (Whidbey) .NET Compact Framework 2.0 (Whidbey)
Temas a Tratar
Introduccin a Microsoft .NET Componentes Fundamentales
Arquitectura Common Language Runtime (CLR) Microsoft Intermediate Language Assemblies .NET Class Library Common Language Specification (CLS)
VB
C++
C#
J#
ASP.NET
.NET Framework Redistributable
Windows Forms
ADO.NET y XML Base Class Library Common Language Runtime Windows COM+ Services
Compilacin Just-In-Time (JIT) Gestin automtica de memoria (Garbage Collector) Gestin de errores consistente (Excepciones) Ejecucin basada en componentes (Assemblies) Gestin de Seguridad Multithreading
Cdigo Fuente
Compilador
Assembly (MSIL)
Biblioteca o Ejecutable
CLR - MSIL
.method private hidebysig static void Main(string[] args) cil managed { .entrypoint maxstack 8 L_0000: ldstr "Hola Mundo" L_0005: call void [mscorlib]System.Console::WriteLine( string) L_000a: ret }
Qu es un Assembly?
Un Assembly es la unidad mnima de ejecucin, distribucin, instalacin y versionado de aplicaciones .NET
Descripcin de Tipos MiBiblioteca.DLL Metadata Recursos Cdigo Compilado MSIL
Clases Clases Base Interfaces Implementadas Atributos de las Clases Mtodos de las Clases
El Class Loader busca en el directorio local (preferido) Global Assembly Cache (GAC)
Conjunto de Tipos bsicos (clases, interfaces, etc.) que vienen includos en el .NET Framework Los tipos estn organizados en jerarquas lgicas de nombres, denominados NAMESPACES Los tipos son INDEPENDIENTES del lenguaje de desarrollo Es extensible y totalmente orientada a objetos
System.Windows.Forms
Design ComponentModel
System.Drawing
Drawing2D Imaging Printing Text
System.Data
OleDb Common Odbc SqlClient
System.Xml
XSLT XPath Serialization
System
Collections Configuration Diagnostics Globalization IO Net Reflection Resources Security ServiceProcess Text Threading Runtime InteropServices Remoting Serialization
caractersticas soportadas por el CLR Contrato entre diseadores de lenguajes de programacin y autores de bibliotecas Permite la interoperabilidad entre lenguajes Microsoft provee implementaciones de 4 lenguajes, todos compatibles con CLS
Microsoft Visual Basic .NET Microsoft Visual C# .NET Microsoft Visual J#.NET Microsoft Visual C++.NET
Visual C# J# Basic.NET +.NE Delphi Java PHP Perl Python JavaScri T pt Pascal Haskell LISP Prolog RPG C+ Oberon Mondrian Smalltalk Eiffel Cobol Fortran APL ML Scheme Mercury Objective Caml
CLS - Eleccin del lenguaje nico runtime (el CLR) y un nico .NET posee un
conjunto de bibliotecas para todos los lenguajes No hay diferencias notorias de performance entre los lenguajes provistos por Microsoft El lenguaje a utilizar, en gral., depender de su experiencia previa con otros lenguajes o de gustos personales
Si conoce Java, Delphi, C++, etc. C# Si conoce Visual Basic o VBScript VB.NET
Los tipos de aplicaciones .NET son INDEPENDIENTES del lenguaje que elija
Temas a Tratar
Introduccin a Microsoft .NET Componentes Fundamentales Funcionamiento Interno del CLR
Especificacin patrocinada por Microsoft, Intel, HP y estandarizada por ECMA (2001) e ISO (2003) que describe:
Entorno de Ejecucin de Aplicaciones Conjunto de Libreras Bsicas (BCL) Tipos de Datos Comunes (CTS)
Sub-Especificaciones de CLI
Lenguajes de Alto Niv el
se ajustan a las reglas de la
Sistema Operativ o
Cdigo Manejado
Ejecucin
Compilador JIT
Class Loader
Seguridad
Code Manager
Debug Engine
COM Interop
Application Domains
Procesos virtuales dentro del CLR
Se ejecutan dentro de un proceso del Sistema Operativo Un proceso del sistema operativo puede contener varios AppDomains Ms eficiente que mltiples procesos del sistema operativo Ms eficiente en el intercambio de contexto de ejecucin
Un Assembly y sus tipos son siempre cargados dentro de un AppDomain Provee una frontera para: Fallos, Tipos, Seguridad
Todo tipo hereda directa o indirectamente del tipo System.Object Define Tipos de VALOR y de REFERENCIA
Stack (Pila) y Heap (Montn) El Stack es liberado automticamente y el Heap es administrado por el GC (Garbage Collector)
Los tipos VALOR se almacenan en el Stack Los tipos REFERENCIA se almacenan en el Heap
Temas a Tratar
Introduccin a Microsoft .NET Componentes Fundamentales Funcionamiento Interno del CLR Bibliotecas Principales
Acceso a Bases de Datos Relacionales Escenario Conectado conectado es uno en el cual Un entorno
los usuarios estn constantemente conectados a la fuente de datos Ventajas:
Mayor seguridad Mejor control de concurrencia Los datos se mantienen actualizados Se requiere una conexin constante (consume recursos del servidor) Escalabilidad
Desventajas:
Acceso a Bases de Datos Relacionales Escenario Desconectado En un entorno desconectado, una parte de
los datos del repositorio central se copia y modifica en forma local, para luego sincronizarse con ste. Ventajas
Se puede trabajar en forma independiente Mayor escalabilidad y performance Los datos no estn sinconizados Resolucin manual de conflictos
Desventajas
ADO.NET - Arquitectura
Ejecuta comandos contra una base de datos XxxConnection XxxConnection XxxCommand XxxCommand
Intercambia datos entre un dataset y una base de datos Copia local de datos relacionales
ADO.NET- DataSet
DataSet DataTable DataColumn DataTable DataRow
DocumentNavigator
XmlTextWriter XmlDocument
XmlReader
XmlTextReader
XmlValidatingReader
XmlNodeReader
Windows Forms
System.WinForms Design ComponentModel
Temas a Tratar
Introduccin a Microsoft .NET Componentes Fundamentales Funcionamiento Interno del CLR Bibliotecas Principales Ventajas de .NET
Ventajas de .NET
Unifica los modelos de programacin Simplifica an ms el desarrollo Provee un Entorno de Ejecucin robusto y seguro Es independiente del lenguaje de programacin Interoperabilidad con cdigo existente Simplifica la instalacin y administracin de las aplicaciones Es Extensible
.NET Framework
Desarrollo Rapido, Componentes, Event Driven OOP, Potencia, Acceso a bajo nivel Basado en Servidor, UI Embebido en el cdigo
ASP
Windows API
Desarrollo Simplificado
Alto nivel de abstraccin
No mas accesos COM a bajo nivel Orientado a Objetos desde el Ncleo Todo es un objeto, no mas variants Propiedades, mtodos, eventos, y atributos incluidos en la construccin de clases
Componentes de Software
Todas las facilidades de la plataforma .NET estn disponibles a todos los lenguajes de programacin .NET Los componentes de una aplicacin .NET pueden ser escritos en distintos lenguajes de alto nivel compatibles con la plataforma Debuggers, profilers, analizadores de cdigo, y otras trabajan para todos los lenguajes
Herramientas compartidas
Instalaciones Cero-impacto
Versioning
Extensibilidad
El Framework no es una caja negra Sus clases pueden ser extendidas a travs del mecanismo de herencia
Interoperabilidad
C# C++
Otros...
COM INTEROP
COM
VB .NET
Temas a Tratar
Introduccin a Microsoft .NET Componentes fundamentales Funcionamiento interno Bibliotecas Principales Ventajas de .NET Herramientas de Desarrollo .NET
Temas a Tratar
Introduccin a Microsoft .NET Componentes fundamentales Funcionamiento interno Bibliotecas Principales Ventajas de .NET Herramientas de Desarrollo .NET Novedades en .NET 2.0
Temas a Tratar
Novedades en .NET 2.0
Generics Soporte para 64 bits Tipos Parciales Nivel de Accesibilidad de Properties Novedades en ADO.NET 2.0
Generics
Son tipos parametrizados soportados por el CLR
Un tipo parametrizado es aquel que puede definirse sin especificar los tipos de datos de sus parmetros en tiempo de compilacin.
Nos dan la posibilidad de declarar clases, estructuras, mtodos e interfaces que actuarn uniformemente sobre valores cuyos tipos se desconocen a priori y son recin especificados al momento de su utilizacin
Generics - Ejemplo
Definiendo una clase genrica en C#
public class ClaseGenerica<T> { public T atributo; }
Generics - Ejemplo
Definiendo una clase genrica en VB.NET
Generics - Colecciones
Colecciones Genricas Vs. Colecciones Tradicionales System.Collections.Generic Comparer<T> Dictionary<K,T> List<T> Queue<T> SortedDictionary<K,T> Stack<T> ICollection<T> IComparable<T> IComparer<T> IDictionary<K,T> IEnumerable<T> IEnumerator<T> IKeyComparer<T> IList<T> System.Collections Comparer HashTable ArrayList Queue SortedList Stack ICollection System.IComparable IComparer IDictionary IEnumerable IEnumerator IKeyComparer IList
Generics - Colecciones
Sin generics
Con generics
Generics - Colecciones
Sin generics
Con generics
No aprovechan las caractersticas de los sistemas operativos de 64 bits, ya que se ejecutan emuladas Permite compilar aplicaciones para que hagan uso nativamente de las nuevas caractersticas de los sistemas operativos y procesadores de 64 bits
Tipos Parciales
Permiten la declaracin de un tipo en varios archivos fsicos
Vlido para clases y estructuras Vlido para interfaces slo en C# Utilizan la palabra clave partial en la declaracin Dividir implementaciones complejas en partes pequeas Separacin de cdigo auto-generado Mtiples desarrolladores pueden trabajar sobre distintas secciones del mismo tipo simultneamente Puede facilitar el mantenimiento y el control de versiones de cdigo
Modificadores de acceso
El CLR 2.0 permite especificar diferentes modificadores de acceso para el get y el set de las propiedades e ndices Permite solamente modificar uno de los dos elementos de acceso, mientras que el otro toma el nivel de acceso de la property Puede especificar ms restricciones Mejora el encapsulamiento de atributos
public class Customer{ private string id; public string CustomerId { public get { return id; } private set { id = value; } } }
Public Class Customer Private id As String Public Property CustomerId() As String Get Return Me.id End Get Private Set(ByVal value As String) Me.id = value End Set End Property End Class
Operaciones Asincrnicas
Notification Services Service Broker Tipo de dato XML Soporte a Servicios Web Performance Serializacin Soporte a XML
Namespace System.Data.Common
DbConnection DbDataReader
DbProviderFactory DbProviderFactories
Sql
OleDb
ODBC
Oracle
3 Party 1
rd
3 Party 2
rd
Mantienen indices internos de los registros de sus DataTables El DataSet 1.x es siempre serializado a XML Bueno para integrar datos, malo en performance El DataSet 2.0 soporta serializacin binaria Rpido y compacto
DataSet.RemotingFormat = SerializationFormat.Binary
DataTable es auto-serializable:
System.Data.SqlTypes.SqlXml
Expuestas como una instancia de XPathDocument Pueden accederse va XmlReader Facilidades para trabajar con documentos XML como un conjunto de valores
2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.