Introduccin a Visual Studio .NET 2008
TALLER PROGRAMACIN IV 800LC05
Nicols Valdenegro
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.
Nicols Valdenegro C. 17/03/2014
Temas a Tratar
Introduccin a Microsoft .NETComponentes FundamentalesFuncionamiento Interno del CLRBibliotecas PrincipalesVentajas de .NETHerramientas de Desarrollo .NETNovedades en .NET 2.0
Nicols Valdenegro C. 17/03/2014
Temas a Tratar
Introduccin a Microsoft .NET Qu no es .NET? Qu es .NET? Caractersticas de .NET Componentes de .NET Plataforma .NET .NET Como evolucin de COM
Nicols Valdenegro C. 17/03/2014
Introduccin
Microsoft.NET es el conjunto de nuevas tecnologas en las que Microsoft ha estado trabajando durante los ltimos aos con el objetivo de obtener una plataforma sencilla y potente para distribuir el software en forma de servicios que puedan ser suministrados remotamente y que puedan comunicarse y combinarse unos con otros de manera totalmente independiente de la plataforma, lenguaje de programacin y modelo de componentes con los que hayan sido desarrollados.
Nicols Valdenegro C. 17/03/2014
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
Nicols Valdenegro C. 17/03/2014
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
La evolucin de la plataforma COM.
Nicols Valdenegro C. 17/03/2014
Caractersticas de .NET I
.NET es una nueva plataforma para el desarrollo y explotacin de aplicaciones gestionadas (managed) modernas y orientadas a objetosLas aplicaciones .NET se pueden desarrollar en cualquier lenguaje de programacin que se ajusta a .NET.NET soporta una extensa framework de libreras de clases independientes del lenguaje de programacin.NET soporta la creacin de componentes auto-describibles.NET ofrece integracin multi-lenguaje, reutilizacin de componentes, y herencia entre componentes desarrollados en diferentes lenguajes
Nicols Valdenegro C. 17/03/2014
Caractersticas de .NET II
.NET ofrece un nueva manera de desarrollar aplicaciones de sobremesa usando las clases Windows Forms.NET ofrece una nueva manera de desarrollar aplicaciones basadasen navegador Web a travs de ASP.NETLas clases ADO.NET proveen una arquitectura desconectada para acceso a datos a travs de Internet.NET soporta la creacin de Servicios Web XML independientes de la plataforma, a travs de SOAP (Simple Object Access Protocol) y WSDL (Web Services Description Language).NET ofrece una nueva arquitectura para el desarrollo y explotacin de objetos remotos.NET convierte a varias tecnologas y tcnicas Windows en obsoletas
Nicols Valdenegro C. 17/03/2014
Componentes de .NET
Microsoft.NET est compuesto de: Plataforma .NET .NET Framework SDK Visual Studio .NET Servicios Web (Microsoft .NET myServices) Servidores para empresas (SQL Server .NET...)
Nicols Valdenegro C. 17/03/2014
Plataforma .NET
El concepto en el que se basa .NET no es nuevo.Java y su entorno de ejecucin (JVM) ya utilizan el concepto de encapsulamientodel sistema operativo para permitir la interoperabilidad entre diferentes sistemas operativos.
Nicols Valdenegro C. 17/03/2014
Plataforma .NET
Nicols Valdenegro C. 17/03/2014
Entorno de Entorno de Entorno de Entorno de
DesarrolloDesarrolloDesarrolloDesarrolloLibrerLibrerLibrerLibreras de Funcionalidadas de Funcionalidadas de Funcionalidadas de Funcionalidad
Lenguajes de ProgramaciLenguajes de ProgramaciLenguajes de ProgramaciLenguajes de Programacinnnn
Entorno de EjecuciEntorno de EjecuciEntorno de EjecuciEntorno de Ejecucinnnn
Sistema Operativo (Familia Windows)Sistema Operativo (Familia Windows)Sistema Operativo (Familia Windows)Sistema Operativo (Familia Windows)
AplicaciAplicaciAplicaciAplicacin .NETn .NETn .NETn .NET
M
i
c
r
o
s
o
f
t
.
N
E
T
M
i
c
r
o
s
o
f
t
.
N
E
T
M
i
c
r
o
s
o
f
t
.
N
E
T
M
i
c
r
o
s
o
f
t
.
N
E
T
.NET como evolucin de COM
Entorno de Ejecucin (Runtime) COM: Windows .NET: Common Language Runtime
Libreras de Funcionalidad COM: Algunas (ADO, FSO, etc.)
.NET: Muy extensa (.NET Framework Class Library)
Lenguajes de Programacin COM: VB, C++, VFP, ASP, J++ .NET: Common Language Specification
Entorno de Desarrollo (IDE) COM: Uno para cada lenguaje .NET: Uno independiente del lenguaje (VS.NET)
Nicols Valdenegro C. 17/03/2014
Qu es el .NET Framework?
Paquete de software fundamental de la plataforma .NET. Incluye: Entorno de Ejecucin (Runtime) Bibliotecas de Funcionalidad (Class Library)
Se distribuye en forma libre y gratuitaExisten tres variantes principales: .NET Framework Redistributable Package .NET Framework SDK .NET Compact Framework
Est instalado por defecto en Windows 2003 Server o superior.
Nicols Valdenegro C. 17/03/2014
Dnde instalar el .NET Framework?
* Slo si la aplicacin es distribuida
Nicols Valdenegro C. 17/03/2014
.NET Compact Framework
*
*
Aplicacin
Mvil
Aplicacin de Consola
Aplicacin Web
Aplicacin de
Escritorio
ServidorServidorServidorServidorClienteClienteClienteCliente
Lnea del tiempo de .NETVisual Studio 6.0Visual BasicVBAVisual FoxProVBScriptC++J++JScriptASP
Visual Studio .NET 2003.NET Framework 1.1.NET Compact FrameworkJ#
Visual Studio Orcas.NET Framework Orcas.NET Compact Framework Orcas
2000 2001 2002 2003 2004 2005 2006 y ms
Visual Studio 2005 (Whidbey) .NET Framework 2.0 (Whidbey) .NET Compact Framework 2.0 (Whidbey)
Visual Studio .NET 2002.NET Framework 1.0Visual Basic .NETC#
Nicols Valdenegro C. 17/03/2014
Temas a Tratar
Introduccin a Microsoft .NETComponentes Fundamentales Arquitectura Common Language Runtime (CLR) Microsoft Intermediate Language Assemblies .NET Class Library Common Language Specification (CLS)
Nicols Valdenegro C. 17/03/2014
Windows COM+ Services
Common Language Runtime
Base Class Library
ADO.NET y XML
ASP.NET Windows Forms
Common Language Specification
VB C++ C# J#
Arquitectura del .NET Framework.
N
E
T
F
r
a
m
e
w
o
r
k
R
e
d
i
s
t
r
i
b
u
t
a
b
l
e
.
N
E
T
F
r
a
m
e
w
o
r
k
S
D
K
.NET Fram
ework
Class Library
Nicols Valdenegro C. 17/03/2014
CLR - Common Language Runtime
El CLR es el motor de ejecucin (runtime) de .NET.Caractersticas 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
Nicols Valdenegro C. 17/03/2014
.NET Framework Class Library
Conjunto de Tipos bsicos (clases, interfaces, etc.) que vienen includos en el .NET Framework Los tipos estn organizados en jerarquas lgicas de nombres, denominados NAMESPACESLos tipos son INDEPENDIENTES del lenguaje de desarrolloEs extensible y totalmente orientada a objetos
Nicols Valdenegro C. 17/03/2014
.NET Framework Class LibraryEl namespace raz es SYSTEM
System
System.Data System.Xml
System.Web
GlobalizationGlobalization
DiagnosticsDiagnostics
ConfigurationConfiguration
CollectionsCollections
ResourcesResources
ReflectionReflection
NetNet
IOIO
ThreadingThreading
TextText
ServiceProcessServiceProcess
SecuritySecurity
CommonCommon
OleDbOleDb
SqlClientSqlClient
OdbcOdbc
XPathXPath
XSLTXSLT
RuntimeRuntime
InteropServicesInteropServices
RemotingRemoting
SerializationSerialization
SerializationSerialization
ConfigurationConfiguration SessionStateSessionState
CachingCaching SecuritySecurity
ServicesServices
DescriptionDescription
DiscoveryDiscovery
ProtocolsProtocols
UIUI
HtmlControlsHtmlControls
WebControlsWebControls
System.Drawing
ImagingImaging
Drawing2DDrawing2D
TextText
PrintingPrinting
System.Windows.Forms
DesignDesign ComponentModelComponentModel
Nicols Valdenegro C. 17/03/2014
Common Language Specification - CLS
Especificacin que estandariza una serie de caractersticas soportadas por el CLRContrato entre diseadores de lenguajes de programacin y autores de bibliotecasPermite la interoperabilidad entre lenguajesMicrosoft 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
Nicols Valdenegro C. 17/03/2014
Common Language Specification - CLS
El resto de la industria y el sector acadmico han desarrollado ms de 20 lenguajes compatibles con la especificacin CLS
Nicols Valdenegro C. 17/03/2014
Cobol
Eiffel
Fortran
Pascal
Perl
C++.NET C#
Haskell
Java JavaScript
Visual Basic.NET
Mercury
ML
PHP
Objective Caml
Oberon Smalltalk Scheme
J#
RPG
Mondrian
APLAPL
Delphi Python
LISP Prolog
CLS - Eleccin del lenguaje
.NET posee un nico runtime (el CLR) y un nico conjunto de bibliotecas para todos los lenguajesNo hay diferencias notorias de performance entre los lenguajes provistos por MicrosoftEl 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.
Nicols Valdenegro C. 17/03/2014
Temas a Tratar
Introduccin a Microsoft .NETComponentes FundamentalesFuncionamiento Interno del CLR Especificacin CLI Modelo de Ejecucin Application Domains Common Type System
Nicols Valdenegro C. 17/03/2014
Infraestructura de Lenguaje Comn-CLI
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)
El .NET Framework y el .NET Compact Framework son implementaciones de la especificacin CLI
Nicols Valdenegro C. 17/03/2014
Sub-Especificaciones de CLI
Lenguajes de Alto NivelLenguajes de Alto NivelLenguajes de Alto NivelLenguajes de Alto Nivel
BCL (Base Class Library)BCL (Base Class Library)BCL (Base Class Library)BCL (Base Class Library)
CLR (Common Language Runtime)CLR (Common Language Runtime)CLR (Common Language Runtime)CLR (Common Language Runtime)
Sistema OperativoSistema OperativoSistema OperativoSistema Operativo
CLS (Common Language Specification)CLS (Common Language Specification)CLS (Common Language Specification)CLS (Common Language Specification)
CTS (Common Type System)CTS (Common Type System)CTS (Common Type System)CTS (Common Type System)
se ajustan a las reglas de la
y utilizan las clases de la
cuyos tipos bsicos forman el
y se ejecutan bajo el control de y usan los servicios del
que est acoplado al y utiliza los servicios del
Nicols Valdenegro C. 17/03/2014
VB.NETVB.NETCCdigodigoFuenteFuente
Compilador Compilador VB.NETVB.NET
C++.NETC++.NETC#C#
AssemblyAssemblyCCdigodigo MSILMSIL
Sistema Operativo (Windows)Sistema Operativo (Windows)
Common Language RuntimeCommon Language Runtime
CompiladorCompilador JITJIT
CCdigo Nativodigo Nativo
CCdigo digo ManejadoManejado
ComponenteComponenteNoNo ManejadoManejado
Modelo de Ejecucin del CLR
CompiladorCompiladorC#C#
CompiladorCompiladorC++ .NETC++ .NET
AssemblyAssemblyCCdigodigo MSILMSIL
AssemblyAssemblyCCdigodigo MSILMSIL
Nicols Valdenegro C. 17/03/2014
Temas a Tratar
Introduccin a Microsoft .NETComponentes FundamentalesFuncionamiento Interno del CLRBibliotecas Principales Base Class Library (BCL) ADO.NET Windows Forms ASP.NET
Nicols Valdenegro C. 17/03/2014
Base Class Library
System
Globalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security InteropServices
Remoting
Serialization
Nicols Valdenegro C. 17/03/2014
Acceso a Datos: ADO.NETSystem.Data
OleDb
SqlClient
OracleClient
Common
Odbc SqlTypes
System.Xml
Serialization
XPath
XSLT
Schema
Nicols Valdenegro C. 17/03/2014
Aplicaciones Web: ASP.NET
System.Web
Caching
Configuration
Services UI
SessionState
HtmlControls
WebControls
Description
Discovery
Security
Protocols
Nicols Valdenegro C. 17/03/2014
Temas a Tratar
Introduccin a Microsoft .NETComponentes FundamentalesFuncionamiento Interno del CLRBibliotecas PrincipalesVentajas de .NET
Nicols Valdenegro C. 17/03/2014
Ventajas de .NET
Unifica los modelos de programacinSimplifica an ms el desarrolloProvee un Entorno de Ejecucin robusto y seguroEs independiente del lenguaje de programacinInteroperabilidad con cdigo existenteSimplifica la instalacin y administracin de las aplicacionesEs Extensible
Nicols Valdenegro C. 17/03/2014
Unificando los Modelos
Windows APIWindows API
.NET Framework.NET Framework
API consistente mas allAPI consistente mas all del lenguaje del lenguaje o del modelo de programacio del modelo de programacinn
ASPASP
Basado en Servidor,Basado en Servidor,UI Embebido en el UI Embebido en el
ccdigodigo
MFC/ATL (C++)MFC/ATL (C++)
OOP, OOP, Potencia,Potencia,
Acceso a bajo nivelAcceso a bajo nivel
Visual BasicVisual Basic
Desarrollo RapidoDesarrollo Rapido,,ComponentesComponentes,,Event DrivenEvent Driven
Nicols Valdenegro C. 17/03/2014
Desarrollo Simplificado
Alto nivel de abstraccin No mas accesos COM a bajo nivel Orientado a Objetos desde el Ncleo
Sistema de tipos unificado (CTS) Todo es un objeto, no mas variants
Componentes de Software Propiedades, mtodos, eventos, y atributos incluidos en la construccin de clases
API organizada en forma JerrquicaNicols Valdenegro C. 17/03/2014
Entorno de Ejecucin Robusto y Seguro
Gestin automtica de la memoria Todos los objetos son administrados por el Garbage Collector
Manejo de ExcepcionesFuertemente tipado Solo casteos seguros Inicializacin de variables obligatoria
Instalacin con Cero Impacto No requiere registracin en la Registry
Nicols Valdenegro C. 17/03/2014
Independencia del lenguaje
Libertad en la eleccin del lenguaje 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
Herramientas compartidas Debuggers, profilers, analizadores de cdigo, y otras trabajan para todos los lenguajes
Nicols Valdenegro C. 17/03/2014
Nicols Valdenegro C. 17/03/2014