Professional Documents
Culture Documents
Desarrollador Cinco
Estrellas
Estrella 1
Introduccin a Microsoft .NET
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
Modelo Relacional
Protocolos de Acceso (ODBC/OLEDB)
Lenguaje SQL
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
Qu no es .NET?
Qu es .NET?
.NET Como evolucin de COM
Funcionalidad
Paradigmas de Programacin
Windows
3.0
MFC
COM
Win32
Win16
1980
1990
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
Microsoft .NET
Aplicacin .NET
Lenguajes de Programacin
Libreras de Funcionalidad
Entorno de
Desarrollo
Entorno de Ejecucin
COM: Windows
.NET: Common Language Runtime
Libreras de Funcionalidad
Lenguajes de Programacin
Qu es el .NET Framework?
Paquete de software fundamental de la
plataforma .NET. Incluye:
Aplicacin de
Escritorio
Cliente
Servidor
Aplicacin Web
Aplicacin de
Consola
Aplicacin
Mvil
2000
2001
2002
2003
2004
2005
2006 y ms
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#
.NET Framework
Redistributable
Windows Forms
ADO.NET y XML
Base Class Library
COM+ Services
.NET Framework
ASP.NET
Class Library
Assembly
(MSIL)
Cdigo
Fuente
Compilador
Cualquier
lenguaje .NET
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
Actualizaciones ms simples
Desinstalacin ms simple
System.Windows.Forms
Services
Description
UI
HtmlControls
Discovery
WebControls
Protocols
Design
ComponentModel
System.Drawing
Caching
Security
Drawing2D
Printing
Configuration
SessionState
Imaging
Text
System.Data
System.Xml
OleDb
Odbc
XSLT
Common
SqlClient
XPath
Serialization
System
Collections
IO
Security
Runtime
InteropServices
Configuration
Net
ServiceProcess
Diagnostics
Reflection
Text
Remoting
Globalization
Resources
Threading
Serialization
C++.NET
Delphi
Pascal
Visual Basic.NET
Java
PHP
Haskell
Perl
LISP
Fortran
APL
J#
Python
JavaScript
Prolog
C#
Eiffel
RPG
ML
Objective Caml
Scheme
Mercury
Temas a Tratar
Introduccin a Microsoft .NET
Componentes Fundamentales
Funcionamiento Interno del CLR
Especificacin CLI
Modelo de Ejecucin
Application Domains
Common Type System
Sub-Especificaciones de CLI
Lenguajes de Alto Nivel
se ajustan a las reglas de la
Sistema Operativo
VB.NET
Compilador
VB.NET
Cdigo
Manejado
Assembly
Cdigo MSIL
C#
C++.NET
Compilador
C#
Compilador
C++ .NET
Assembly
Cdigo MSIL
Assembly
Cdigo MSIL
Componente
No Manejado
Desarrollo
Instalacin
Assembly
Assembly en
la mquina
destino
Policy
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<mscorlib>
<security>
<policy>
<PolicyLevel version="1">
<CodeGroup class="UnionCodeGroup"
version="1"
PermissionSetName="Nothing"
Name="All_Code"
Description="Code group
grants no permissio
ns and forms the root of the code group tree.">
<IMembershipCondition clas
s="AllMembershipCondition"
version="1"/>
<CodeGroup class="UnionCodeGroup"
version="1"
PermissionSetName="FullTrust"
Ejecucin
Compilador
JIT
Class
Loader
Seguridad
Assembly
Loader
Garbage Collector
.exe Nativo
+
Tabla GC
Code
Manager
Manejador Excepciones
Soporte MultiThread
Debug Engine
COM Interop
Application Domains
Procesos virtuales dentro del CLR
AppDomain N
Cdigo Manejado
Define Tipos de
VALOR y de
REFERENCIA
Temas a Tratar
Introduccin a Microsoft .NET
Componentes Fundamentales
Funcionamiento Interno del CLR
Bibliotecas Principales
IO
Security
InteropServices
Configuration
Net
ServiceProcess
Remoting
Diagnostics
Reflection
Text
Serialization
Globalization
Resources
Threading
Common
SqlClient
OracleClient
OleDb
Odbc
SqlTypes
System.Xml
XSLT
Serialization
XPath
Schema
Mayor seguridad
Mejor control de concurrencia
Los datos se mantienen actualizados
Desventajas:
Desventajas
ADO.NET - Arquitectura
XxxConnection
XxxCommand
XxxDataAdapter
DataSet
XxxDataReader
ADO.NET- DataSet
DataSet
DataTable
DataColumn
DataTable
DataRow
Relaciones
Esquema XML
Restricciones
DocumentNavigator
XmlTextWriter
XmlReader
XmlTextReader
XmlValidatingReader
XmlDocument
XmlNodeReader
Windows Forms
System.WinForms
Design
ComponentModel
System.Drawing
Drawing2D
Printing
Imaging
Text
UI
Description
HtmlControls
Discovery
WebControls
Protocols
Caching
Security
Configuration
SessionState
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
Visual Basic
OOP,
Potencia,
Acceso a bajo nivel
MFC/ATL (C++)
Windows API
Basado en Servidor,
UI Embebido en el
cdigo
ASP
Desarrollo Simplificado
Alto nivel de abstraccin
Componentes de Software
Manejo de Excepciones
Fuertemente tipado
Herramientas compartidas
Instalacin y Administracin ms
simples
Unidades de Ensamblado (Assemblies)
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#
COM INTEROP
C++
COM
VB
Otros...
.NET
Temas a Tratar
Introduccin a Microsoft .NET
Componentes fundamentales
Funcionamiento interno
Bibliotecas Principales
Ventajas de .NET
Herramientas de Desarrollo .NET
Desarrolladores
Consultores
Profesionales
VB6 Devs
Part-Timers
Hobbyists
Estudiantes
Entusiastas
Novatos
Refactoring
Code Snippets
Diseadores WYSIWYG
Depuradores
Intellisense
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
Generics - Ejemplo
Definiendo una clase genrica en C#
public class ClaseGenerica<T>
{
public T atributo;
}
Generics - Ejemplo
Definiendo una clase genrica en VB.NET
Public Class ClaseGenerica(Of T)
Public atributo As T
End Class
Generics - Colecciones
Colecciones Genricas Vs. Colecciones Tradicionales
System.Collections.Generic
System.Collections
Comparer<T>
Comparer
Dictionary<K,T>
HashTable
List<T>
ArrayList
Queue<T>
Queue
SortedDictionary<K,T>
SortedList
Stack<T>
Stack
ICollection<T>
ICollection
IComparable<T>
System.IComparable
IComparer<T>
IComparer
IDictionary<K,T>
IDictionary
IEnumerable<T>
IEnumerable
IEnumerator<T>
IEnumerator
IKeyComparer<T>
IKeyComparer
IList<T>
IList
Generics - Colecciones
Sin generics
Con generics
Generics - Colecciones
Sin generics
Con generics
Tipos Parciales
Permiten la declaracin de un tipo en varios
archivos fsicos
// Demo.Part3.cs
// Error 1!
public class Demo
{
// Error 2!
private int i;
// OK
private int j;
public void Test()
{
// Error 3!
Console.Write( "P3" );
}
}
' Demo.Part3.vb
' OK en VB.NET
Public Class Demo
' Error 2!
Private i As Integer
' OK
Private j As Integer
Public Sub Test()
' OK en VB.NET
Console.Write("P3")
End Sub
End Class
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
Operaciones Asincrnicas
Notification Services
Service Broker
Performance
Serializacin
Soporte a XML
DbCommand
DbCommandBuilder
DbConnection
DataAdapter
DbDataAdapter
DbDataReader
DbParameter
DbParameterCollection DbTransaction
DbProviderFactory DbProviderFactories
DbException
ProviderIndependiente
del cdigo de
la aplicacin
en esta capa
Sql
OleDb
ODBC
Oracle
3rd
3rd
Party 1
Party 2
Providerespecfico en
el cdigo de la
aplicacin en
esta capa
DataSet.RemotingFormat = SerializationFormat.Binary
DataTable es auto-serializable:
System.Data.SqlTypes.SqlXml