1 introduccion microsoft .net

37
Módulo I- Introducción a la Programación en Módulo I- Introducción a la Programación en la Plataforma .Net con C# la Plataforma .Net con C#

Transcript of 1 introduccion microsoft .net

Page 1: 1 introduccion microsoft .net

Módulo I- Introducción a la Programación en Módulo I- Introducción a la Programación en la Plataforma .Net con C#la Plataforma .Net con C#

Page 2: 1 introduccion microsoft .net

TEMARIOTEMARIO

CAPITULO II.- INTRODUCCIÓN A LA PLATAFORMA .NET

• IntroducciónIntroducción• .NET Framework.NET Framework• CRL Common Languages CRL Common Languages

RuntimeRuntime• AssemblyAssembly• NET Framework Class LibraryNET Framework Class Library• CTS (Common Type System)CTS (Common Type System)• Ventajas de .NETVentajas de .NET• Herramientas de DesarrolloHerramientas de Desarrollo

Page 3: 1 introduccion microsoft .net

¿Qué NO es .NET?¿Qué NO es .NET?.NET no es un Sistema Operativo.NET no es un Sistema Operativo

.NET no es un Lenguaje de Programación.NET no es un Lenguaje de Programación

.NET no es un Entorno de Desarrollo.NET no es un Entorno de Desarrollo

.NET no es un Servidor de Aplicaciones.NET no es un Servidor de Aplicaciones

.NET no es un producto empaquetado que se .NET no es un producto empaquetado que se pueda comprar como talpueda comprar como tal

INTRODUCCIÓNINTRODUCCIÓN

Page 4: 1 introduccion microsoft .net

¿Qué es .NET?¿Qué es .NET?Plataforma de Desarrollo compuesta dePlataforma de Desarrollo compuesta de Entorno de Ejecución (Runtime)Entorno de Ejecución (Runtime) Bibliotecas de Funcionalidad (Class Library)Bibliotecas de Funcionalidad (Class Library) Lenguajes de ProgramaciónLenguajes de Programación CompiladoresCompiladores Herramientas de Desarrollo (IDE & Tools)Herramientas de Desarrollo (IDE & Tools) Guías de ArquitecturaGuías de Arquitectura

La evolución de la plataforma COMLa evolución de la plataforma COM

Page 5: 1 introduccion microsoft .net

Características de .NET (1/2)Características de .NET (1/2)

Plataforma de ejecución intermediaPlataforma de ejecución intermedia

100% Orientada a Objetos100% Orientada a Objetos

MultilenguajeMultilenguaje

Plataforma Empresarial de Misión CríticaPlataforma Empresarial de Misión Crítica

Page 6: 1 introduccion microsoft .net

Características de .NET (2/2)Características de .NET (2/2)

Modelo de Programación único para todo tipo Modelo de Programación único para todo tipo de aplicaciones y dispositivos de hardwarede aplicaciones y dispositivos de hardware

Se integra fácilmente con aplicaciones Se integra fácilmente con aplicaciones existentes desarrolladas en plataformas existentes desarrolladas en plataformas MicrosoftMicrosoft

Se integra fácilmente con aplicaciones Se integra fácilmente con aplicaciones desarrolladas en otras plataformasdesarrolladas en otras plataformas

Page 7: 1 introduccion microsoft .net

Plataforma de Ejecución IntermediaPlataforma de Ejecución Intermedia

Entorno de Desarrollo

Mic

ros o

ft .

NE

T

Librerías de Funcionalidad

Lenguajes de Programación

Entorno de Ejecución

Sistema Operativo (Famil ia Windows)

Aplicación .NET

Page 8: 1 introduccion microsoft .net

¿Qué es el .NET Framework?¿Qué es el .NET Framework?Paquete de software fundamental de la Paquete de software fundamental de la plataforma .NET. Incluye:plataforma .NET. Incluye: Entorno de Ejecución (Runtime)Entorno de Ejecución (Runtime) Bibliotecas de Funcionalidad (Class Library)Bibliotecas de Funcionalidad (Class Library)

Se distribuye en forma libre y gratuitaSe distribuye en forma libre y gratuita

Existen tres variantes principales:Existen tres variantes principales: .NET Framework Redistributable Package.NET Framework Redistributable Package .NET Framework SDK.NET Framework SDK .NET Compact Framework .NET Compact Framework

.NET FRAMEWORK.NET FRAMEWORK

Page 9: 1 introduccion microsoft .net

.NET Compact Framework

*

*

AplicaciónMóvil

Aplicación de Consola

Aplicación Web

Aplicación de Escritorio

¿Dónde instalar el .NET Framework?¿Dónde instalar el .NET Framework?

ServidorCliente

* Sólo si la aplicación es distribuída* Sólo si la aplicación es distribuída

Page 10: 1 introduccion microsoft .net

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 FrameworkArquitectura del .NET Framework.N

ET

Fr a

mew

o rk

Red

istr

i but

able

.NE

T F

r am

ewo

rk S

DK

.NE

T F

r amew

o rk

Class L ibrary

Page 11: 1 introduccion microsoft .net

CLRCLREl CLR es el motor de ejecución (runtime) de El CLR es el motor de ejecución (runtime) de .NET.NETCaracterísticasCaracterísticas Compilación Just-In-Time (JIT)Compilación Just-In-Time (JIT) Gestión automática de memoria (Garbage Gestión automática de memoria (Garbage

Collector)Collector) Gestión de errores consistente (Excepciones)Gestión de errores consistente (Excepciones) Ejecución basada en componentes Ejecución basada en componentes

(Assemblies)(Assemblies) Gestión de SeguridadGestión de Seguridad MultithreadingMultithreading

CLR – COMMON LANGUAGE RUNTIMECLR – COMMON LANGUAGE RUNTIME

Page 12: 1 introduccion microsoft .net

CLR - Arquitecturas de Ejecución de CLR - Arquitecturas de Ejecución de AplicacionesAplicaciones

Page 13: 1 introduccion microsoft .net

VB.NETVB.NETCódigoCódigoFuenteFuente

Compilador Compilador VB.NETVB.NET

C++.NETC++.NETC#C#

AssemblyAssemblyCódigo MSILCódigo MSIL

Sistema Operativo (Windows)Sistema Operativo (Windows)

Common Language RuntimeCommon Language Runtime

Compilador JITCompilador JIT

Código NativoCódigo Nativo

Código Código ManejadoManejado

ComponenteComponenteNo ManejadoNo Manejado

Modelo de Ejecución del CLRModelo de Ejecución del CLR

CompiladorCompiladorC#C#

CompiladorCompiladorC++ .NETC++ .NET

AssemblyAssemblyCódigo MSILCódigo MSIL

AssemblyAssemblyCódigo MSILCódigo MSIL

Page 14: 1 introduccion microsoft .net

Debug EngineDebug Engine

CompiladorCompiladorJITJIT

Assembly en Assembly en la máquinala máquina

destinodestino

Modelo de Ejecución del CLRModelo de Ejecución del CLR

AssemblyAssembly

DesarrolloDesarrollo InstalaciónInstalación

InstalaciónInstalación

EjecuciónEjecución

AssemblyAssemblyLoaderLoaderSeguridadSeguridadClass Class

LoaderLoader

.exe Nativo.exe Nativo++

Tabla GC Tabla GC

Code Code ManagerManager

Garbage CollectorGarbage Collector

Manejador ExcepcionesManejador Excepciones

Soporte MultiThreadSoporte MultiThread

COM InteropCOM Interop

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 permissions and forms the root of the code group tree."> <IMembershipCondition class="AllMembershipCondition" version="1" /> <CodeGroup class="UnionCodeGroup" version="1" PermissionSetName="FullTrust"

Page 15: 1 introduccion microsoft .net

CLR – Componentes InternosCLR – Componentes Internos

Class Loader

IL to NativeCompilers

CodeManager

GarbageCollector

Security Engine Debug Engine

Type Checker Exception Manager

Thread Support COM Marshaler

Base Class Library Support

Page 16: 1 introduccion microsoft .net

Código Código FuenteFuenteCódigo Código FuenteFuente

Cualquier Cualquier lenguaje .NETlenguaje .NET

CompiladorCompilador

AssemblyAssembly (MSIL)(MSIL)

AssemblyAssembly (MSIL)(MSIL)

BibliotecaBibliotecao Ejecutableo Ejecutable

CLR – Proceso de CompilaciónCLR – Proceso de Compilación

Page 18: 1 introduccion microsoft .net

¿¿Qué es un “AssemblyQué es un “Assembly”?”?Un Assembly es la unidad mínima de ejecución, Un Assembly es la unidad mínima de ejecución, distribución, instalación y versionado de distribución, instalación y versionado de aplicaciones .NETaplicaciones .NET

Metadata Metadata

Código Compilado Código CompiladoMSIL MSIL

Recursos Recursos

MiBiblioteca.DLL MiBiblioteca.DLL

Descripción de Tipos Descripción de Tipos

Clases ClasesClases Base Clases BaseInterfaces Implementadas Interfaces ImplementadasAtributos de las Clases Atributos de las ClasesMétodos de las Clases Métodos de las Clases

Nombre NombreVersión VersiónCultura Cultura

Manifiesto del Assembly Manifiesto del Assembly

Otros Assemblies Otros AssembliesPermisos de Seguridad Permisos de SeguridadTipos Externos Tipos Externos

ASSEMBLYASSEMBLY

Page 19: 1 introduccion microsoft .net

Assemblies - Aplicaciones .NETAssemblies - Aplicaciones .NET

Uno o más AssembliesUno o más AssembliesAl ejecutar una aplicación, ¿cómo ubico los Al ejecutar una aplicación, ¿cómo ubico los assemblies necesarios?assemblies necesarios?

El Class Loader busca en el directorio local El Class Loader busca en el directorio local (preferido)(preferido)

Global Assembly Cache (GAC)Global Assembly Cache (GAC)

Diferentes aplicaciones pueden usar Diferentes aplicaciones pueden usar diferentes versionesdiferentes versiones Actualizaciones más simplesActualizaciones más simples Desinstalación más simpleDesinstalación más simple

Page 20: 1 introduccion microsoft .net

.NET Framework Class Library.NET Framework Class LibraryConjunto de Tipos básicos (clases, interfaces, etc.) que vienen incluidos en el .NET Framework Los tipos están organizados en jerarquías lógicas de nombres, denominados NAMESPACESLos tipos son INDEPENDIENTES del lenguaje de desarrolloEs extensible y totalmente orientada a objetos

CLASS LIBRARYCLASS LIBRARY

Page 21: 1 introduccion microsoft .net

.NET Framework Class Library.NET Framework Class LibraryEl namespace raíz 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.FormsDesignDesign ComponentModelComponentModel

Page 22: 1 introduccion microsoft .net

Base Class LibraryBase Class Library

System

Globalization

Diagnostics

Configuration

Collections

Resources

Reflection

Net

IO

Threading

Text

ServiceProcess

Security InteropServices

Remoting

Serialization

Page 23: 1 introduccion microsoft .net

Acceso a Datos: ADO.NETAcceso a Datos: ADO.NETSystem.Data

OleDb

SqlClient

OracleClient

Common

Odbc SqlTypes

System.Xml

Serialization

XPath

XSLT

Schema

Page 24: 1 introduccion microsoft .net

Windows FormsWindows Forms

System.Drawing

Drawing2D

Imaging

Printing

Text

System.WinForms

Design ComponentModel

Page 25: 1 introduccion microsoft .net

Aplicaciones Web: ASP.NETAplicaciones Web: ASP.NET

System.Web

Caching

Configuration

Services UI

SessionState

HtmlControls

WebControls

Description

Discovery

Security

Protocols

Page 26: 1 introduccion microsoft .net

CTSCTSDefine un conjunto común de “tipos” de datos Define un conjunto común de “tipos” de datos orientados a objetosorientados a objetos

Todo lenguaje de programación .NET debe Todo lenguaje de programación .NET debe implementar los tipos definidos por el CTSimplementar los tipos definidos por el CTS

Todo tipo hereda Todo tipo hereda directa o directa o indirectamente del indirectamente del tipo System.Objecttipo System.Object

Define Tipos de Define Tipos de VALOR y de VALOR y de REFERENCIAREFERENCIA

CTS COMMON TYPE SYSTEMCTS COMMON TYPE SYSTEM

Page 27: 1 introduccion microsoft .net

La Memoria y los Tipos de DatosLa Memoria y los Tipos de DatosEl CLR administra dos segmentos de memoria: El CLR administra dos segmentos de memoria: Stack (Pila)Stack (Pila) y y Heap (Montón)Heap (Montón)

El El StackStack es liberado automáticamente y el es liberado automáticamente y el HeapHeap es administrado por el es administrado por el GCGC ( (Garbage Garbage CollectorCollector ))Los tiposLos tipos VALOR VALOR se almacenan en el se almacenan en el StackStack

Los tipos Los tipos REFERENCIAREFERENCIA se se almacenan en el almacenan en el HeapHeap

Page 28: 1 introduccion microsoft .net

Ventajas de .NETVentajas de .NETUnifica los modelos de programaciónUnifica los modelos de programaciónSimplifica aún más el desarrolloSimplifica aún más el desarrolloProvee un Entorno de Ejecución robusto y Provee un Entorno de Ejecución robusto y seguroseguroEs independiente del lenguaje de Es independiente del lenguaje de programaciónprogramaciónInteroperabilidad con código existenteInteroperabilidad con código existenteSimplifica la instalación y administración de Simplifica la instalación y administración de las aplicacioneslas aplicacionesEs ExtensibleEs Extensible

Page 29: 1 introduccion microsoft .net

Unificando los ModelosUnificando los Modelos

Windows APIWindows API

.NET Framework.NET Framework

API consistente mas allá del lenguaje API consistente mas allá del lenguaje o del modelo de programacióno del modelo de programación

ASPASP

Basado en Servidor,Basado en Servidor,UI Embebido en el UI Embebido en el

códigocódigo

MFC/ATL (C++)MFC/ATL (C++)

OOP, OOP, Potencia,Potencia,

Acceso a bajo nivelAcceso a bajo nivel

Visual BasicVisual Basic

Desarrollo Rapido,Desarrollo Rapido,Componentes,Componentes,Event DrivenEvent Driven

Page 30: 1 introduccion microsoft .net

Desarrollo SimplificadoDesarrollo Simplificado

Alto nivel de abstracciónAlto nivel de abstracción No mas accesos COM a bajo nivelNo mas accesos COM a bajo nivel Orientado a Objetos desde el NúcleoOrientado a Objetos desde el Núcleo

Sistema de tipos unificado (CTS)Sistema de tipos unificado (CTS) Todo es un objeto, no mas variantsTodo es un objeto, no mas variants

Componentes de SoftwareComponentes de Software Propiedades, métodos, eventos, y atributos Propiedades, métodos, eventos, y atributos

incluidos en la construcción de clasesincluidos en la construcción de clases

API organizada en forma JerárquicaAPI organizada en forma Jerárquica

Page 31: 1 introduccion microsoft .net

Entorno de Ejecución Robusto y Entorno de Ejecución Robusto y SeguroSeguro

Gestión automática de la memoriaGestión automática de la memoria Todos los objetos son administrados por el Todos los objetos son administrados por el

Garbage CollectorGarbage Collector

Manejo de ExcepcionesManejo de ExcepcionesFuertemente tipadoFuertemente tipado Solo casteos segurosSolo casteos seguros Inicialización de variables obligatoriaInicialización de variables obligatoria

Instalación con Cero ImpactoInstalación con Cero Impacto No requiere registración en la RegistryNo requiere registración en la Registry

Page 32: 1 introduccion microsoft .net

Independencia del lenguajeIndependencia del lenguaje

Libertad en la elección del lenguajeLibertad en la elección del lenguaje Todas las facilidades de la plataforma .NET Todas las facilidades de la plataforma .NET

están disponibles a todos los lenguajes de están disponibles a todos los lenguajes de programación .NETprogramación .NET

Los componentes de una aplicación .NET Los componentes de una aplicación .NET pueden ser escritos en distintos lenguajes de pueden ser escritos en distintos lenguajes de alto nivel compatibles con la plataformaalto nivel compatibles con la plataforma

Herramientas compartidasHerramientas compartidas Debuggers, profilers, analizadores de código, y Debuggers, profilers, analizadores de código, y

otras trabajan para todos los lenguajesotras trabajan para todos los lenguajes

Page 33: 1 introduccion microsoft .net

Instalación y Administración más Instalación y Administración más simplessimples

Unidades de Ensamblado (“Assemblies”)Unidades de Ensamblado (“Assemblies”) Mínima unidad de distribución, versionado y Mínima unidad de distribución, versionado y

administración de seguridad de aplicaciones administración de seguridad de aplicaciones .NET.NET

Auto-descriptas a través de un manifiesto Auto-descriptas a través de un manifiesto (“manifest”)(“manifest”)

Instalaciones Cero-impactoInstalaciones Cero-impacto Aplicaciones y componentes pueden ser Aplicaciones y componentes pueden ser

compartidas o privadascompartidas o privadasVersioningVersioning Múltiples versiones del mismo componente Múltiples versiones del mismo componente

pueden co-existir, aún en el mismo procesopueden co-existir, aún en el mismo proceso

Page 34: 1 introduccion microsoft .net

ExtensibilidadExtensibilidad

El Framework no es una “caja negra”El Framework no es una “caja negra”Sus clases pueden ser extendidas a través Sus clases pueden ser extendidas a través del mecanismo de herenciadel mecanismo de herencia A diferencia de COM, usamos y extendemos las A diferencia de COM, usamos y extendemos las

clases en si mismas, no un “wrapper”clases en si mismas, no un “wrapper”

Herencia entre distintos lenguajesHerencia entre distintos lenguajes

Page 35: 1 introduccion microsoft .net

Visual Studio 2010Visual Studio 2010

Novatos

Entusiastas

Estudiantes

Hobbyists

Part-Timers

Profesionales

Consultores

Desarrolladores

Arquitectos

Testers

VB6 Devs

HERRAMIENTAS DE DESARROLLOHERRAMIENTAS DE DESARROLLO

Page 36: 1 introduccion microsoft .net

Visual Studio 2010 Express EditionsVisual Studio 2010 Express Editions

Herramientas de desarrollo gratuitasHerramientas de desarrollo gratuitasMuy livianas, fáciles de usar y de aprenderMuy livianas, fáciles de usar y de aprenderDiseñadas para entusiastas, estudiantes y Diseñadas para entusiastas, estudiantes y desarrolladores principiantesdesarrolladores principiantesHay varias ediciones, según el tipo de aplicación y Hay varias ediciones, según el tipo de aplicación y el lenguajeel lenguajeTiene características avanzadas, por ejemplo:Tiene características avanzadas, por ejemplo: RefactoringRefactoring Code SnippetsCode Snippets Diseñadores WYSIWYGDiseñadores WYSIWYG DepuradoresDepuradores IntellisenseIntellisense

Page 37: 1 introduccion microsoft .net

SQL Server 2008 ExpressSQL Server 2008 Express

La nueva versión de MSDELa nueva versión de MSDEEs gratuitoEs gratuitoPreparado para trabajar integrado con .NET Preparado para trabajar integrado con .NET 2.02.0Tamaño máximo de base: 4 GbTamaño máximo de base: 4 GbMax. Conexiones Concurrentes: no tieneMax. Conexiones Concurrentes: no tieneIncluye una interfaz de administración y un Incluye una interfaz de administración y un editor de consultaseditor de consultasMayor integración con Visual Studio 2010Mayor integración con Visual Studio 2010