1 Introducción a .NET

39
Introducción a Visual Studio .NET 2008 TALLER PROGRAMACIÓN IV 800LC05 Nicolás Valdenegro

Transcript of 1 Introducción a .NET

  • 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