Tecnologia microsoft .net

66
Ing. BARJ. UPOLI – IST bernardorobelo.blogspot.com Tecnología Microsoft.Net Bernardo Antonio Robelo Jirón Ingeniero en Sistemas

Transcript of Tecnologia microsoft .net

Page 1: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.combernardorobelo.blogspot.com

Tecnología Microsoft.NetBernardo Antonio Robelo Jirón

Ingeniero en Sistemas

Page 2: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.combernardorobelo.blogspot.com

Page 3: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Antes de comenzar

• Presentación.• Ocupación Actual.• Experiencia con el uso de .NET y VB.NET• Expectativas.• Metodología del curso.

Page 4: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Objetivos del curso• Tecnología .NET• Net Framework 3.5• ASP.NET• ADO.NET• LINQ• WCF Y WPF• SilverLight 2.0• Lenguaje Visual Basic .NET

Page 5: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Agenda del Curso• Introducción a .NET ( Estructuras del Lenguaje)• SQL Server ( Transact – SQL )• Acceso a Datos ( ADO.NET)• Acceso a Datos (LINQ)• Controles Avanzados• WPF• Crystal Report• ASP.NET

Page 6: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Elementos Adicionales

• XHTML• JavaScript• CSS• XML• XAML

Page 7: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.combernardorobelo.blogspot.com

Tecnología Microsoft .NET

Page 8: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Objetivo

• Presentar una introducción a la plataforma de desarrollo Microsoft .NET, describiendo sus principios básicos de funcionamiento, su arquitectura de componentes y sus principales bibliotecas reutilizables, mostrando además las novedades introducidas en la última versión de la misma.

Page 9: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Paradigmas de Programación

1980 1990 2000

Fu

nci

on

alid

ad

Win16 Win32COM

MFCComponentes

Servicios

APIs

Windows3.0

Page 10: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Que tal un poquito de historia?

Page 11: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Primera GeneraciónTodos con las Mainframes

• Programación orientada a uso de terminales tontas, con cerebros un poco “más inteligentes”.

• Integrar aplicaciones era MUY difícil (procesos batch, importación-exportación, etc. etc.).

• Programación en lenguajes de “Primera” (Generación). COBOL, Fortran, Pascal, C, etc.• No cualquiera podía escribir aplicaciones.

No cualquiera tenía acceso apoder de cómputo.

• “Al final de los tiempos,solo sobrevivirán lascucarachas y COBOL”¿Será cierto?

Page 12: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Segunda Generación”Aquí se rompió una taza...”

• Después de años de pensar de manera centralizada, a “alguien” se le ocurrió dotar de poder para ser independientes a esas terminales tontas.

• Ahora ya el uso de cómputo no era privilegio de unos pocos.• Compartiendo el poder de los equipos de computo con el poder de

los equipos de escritorio,se tenían aplicaciones más potentes.

• Se podía tener aplicaciones en una solacomputadora (stand alone).

• Se hizo extensivo el uso delenguajes tipo Clipper, FoxPro

• COBOL seguía ¡vivito y coleando!

Page 13: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Tercera GeneraciónGeneración Internet... ¡Todos a la Red!

• Al surgir el “boom” de Internet, se sigue mezclando el poder de las maquinas de escritorio con el uso de servidores potentes para darles servicio.

• Aparecen nuevos lenguajes: Java, Visual Basic, etc.

• Aunque ya no es protagonista,COBOL continúa entre nosotros.

• En esta generación es la actual.

Page 14: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Que es .NET?

Page 15: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Tecnología .Net

.NET no es un Sistema Operativo

.NET no es un Lenguaje de Programación

.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

Page 16: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

¿Qué es .NET?• Plataforma de Desarrollo compuesta de

– Entorno de Ejecución (Runtime)– Bibliotecas de Funcionalidad (Class Library)– Lenguajes de Programación– Compiladores– Herramientas de Desarrollo (IDE & Tools)

• Visual Studio 2005. Visual Studio 2008.• Visual Studio 2010.

– Guías de Arquitectura

• La evolución de la plataforma COM

Page 17: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Plataforma .NET

Page 18: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

¿Cuales son los Componentes de .NET?

• Experiencias .NET• Clientes .NET• Servicios .NET• Servidores .NET• Herramientas .NET

Experiencias

Clientes

Servicios

Herramientas

Servidores

Page 19: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Características de .NET• Plataforma de ejecución intermedia• 100% Orientada a Objetos• Multilenguaje• Plataforma Empresarial de Misión Crítica• Modelo de Programación único para todo tipo de

aplicaciones y dispositivos de hardware• Se integra fácilmente con aplicaciones existentes

desarrolladas en plataformas Microsoft• Se integra fácilmente con aplicaciones desarrolladas en otras

plataformas

Page 20: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Arquitectura .Net

Entorno de

Desarrollo

Mic

roso

ft .

NET

Librerías de Funcionalidad

Lenguajes de Programación

Entorno de Ejecución

Sistema Operativo (Familia Windows)

Aplicación .NET

Page 21: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

.NET como evolución de COM• Entorno de Ejecución (Runtime)

– COM: Windows– .NET: Common Language Runtime

• Librerías de Funcionalidad– COM: Algunas (ADO, FSO, etc.)– .NET: Muy extensa (.NET Framework Class Library)

• Lenguajes de Programación– 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)

Page 22: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.combernardorobelo.blogspot.com

.NET Framework

Page 23: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Que es un Framework?

Page 24: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Un Framework es, básicamente, un conjunto de clases que

interactúan en forma cooperativa para dar solución a

una determinada necesidad.

.NET FrameworkQue es un Framework?

Page 25: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

.NET FrameworkQue es un Framework?

¿Quedo claro?

Page 26: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Suponga que usted necesita construir un edificio…

.NET FrameworkQue es un Framework?

Page 27: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Imagine que a usted le tocara construir cada una de las partes…

.NET FrameworkQue es un Framework?

Page 28: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

.NET FrameworkQue es un Framework?

¿Cuánto tiempo cree que tardaría en terminar?

Page 29: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Lo mismo sucede con el software, si cada vez

tuviéramos que construir todos los componentes que lo

conforman, tardaríamos mucho más tiempo…

.NET FrameworkQue es un Framework?

Page 30: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

¿Qué es un Framework? Marco de trabajo Puede estar compuesto por

Librerías de clases Documentación Ayuda Ejemplos Tutoriales Etc.

Page 31: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

¿Qué es .NET Framework?

Herramientas de Desarrollo

Clientes

Aplicaciones de Usuario

Aplicaciones Web ASP.NET

Servicios Web XML

Bases de Datos

.NET Framework

Page 32: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Net Framework• Paquete de software fundamental de la plataforma .NET.

Incluye:– Entorno de Ejecución (Runtime)– Bibliotecas de Funcionalidad (Class Library)

• Se distribuye en forma libre y gratuita

• Existen tres variantes principales:– .NET Framework Redistributable Package

– .NET Framework SDK

– .NET Compact Framework

• Está instalado por defecto en Windows 2003 Server o superior

Page 33: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

.NET Compact Framework

ü*ü

ü

ü*ü

AplicaciónMóvil

Aplicación de Consola

Aplicación Web

Aplicación de Escritorio

¿Dónde instalar el .NET Framework?

ServidorCliente

* Sólo si la aplicación es distribuida

Page 34: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Línea del tiempo de .NETVisual Studio 6.0Visual BasicVBAVisual FoxProVBScriptC++J++JScriptASP

Visual Studio .NET 2003.NET Framework 1.1.NET Compact FrameworkJ#

Visual Studio 2008.NET Framework 3.0 – 3.5.NET Compact Framework

2000 2001 2002 2003 2004 2005 2006 y más 2008 2010

Visual Studio 2005.NET Framework 2.0.NET Compact Framework 2.0

Visual Studio .NET 2002.NET Framework 1.0Visual Basic .NETC#

Visual Studio 2010.NET Framework 4.0

Page 35: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Evolucion del .NET Framework

Page 36: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

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

ET

Fra

mew

ork

Red

istr

ibut

able

.NE

T F

ram

ewo

rk S

DK

.NE

T F

ramew

ork

Class Library

Page 37: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Que es el .NET Framework 3.5 ?

Page 38: Tecnologia microsoft .net

38Windows 7, Windows Vista, Windows XP, Windows Server 2008

Common Language Runtime (CLR)

Biblioteca de Clases

ASP.NET WPF

WCF

WF

WCS

CLS y CTS

VB C# J# IronPhyton

Microsoft .NET Framework 3.5

ADO.NET LINQ

Add-in Framework

WindowsForms

WF & WCF

Enhancements

Additional

Enhancements

MVC

Dynamic Data

Entity Framework

Data Services

Ruby …

Page 39: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Common Language Runtime

Page 40: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

CLR – Common Languaje RuntimeArquitecturas de Ejecución de Aplicaciones

Page 41: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

CLR – Common Language Runtime• El CLR es el motor de ejecución (runtime) de .NET• Características

– Compilación Just-In-Time (JIT)– Gestión automática de memoria (Garbage Collector)– Gestión de errores consistente (Excepciones)– Ejecución basada en componentes (Assemblies)– Gestión de Seguridad– Multithreading

Page 42: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

CLR – Componentes Internos

Page 43: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Código Fuente

Cualquier lenguaje .NET

CompiladorAssembly

(MSIL)

Bibliotecao Ejecutable

CLR – Proceso de Compilación

Page 44: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.combernardorobelo.blogspot.com

DemoPrimer vistazo a .Net

Desarrollar nuestra aplicación “Hello World”

Page 46: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Assembly

Metadata

Código CompiladoMSIL

Recursos

MiBiblioteca.DLL

Descripción de Tipos

ClasesClases BaseInterfaces ImplementadasAtributos de las ClasesMétodos de las Clases

NombreVersiónCultura

Manifiesto del Assembly

Otros AssembliesPermisos de SeguridadTipos Externos

Page 47: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Assemblies - Aplicaciones .NET• Uno o más Assemblies• Al ejecutar una aplicación, ¿cómo ubico los

assemblies necesarios?• El Class Loader busca en el directorio local (preferido)• Global Assembly Cache (GAC)

• Diferentes aplicaciones pueden usar diferentes versiones– Actualizaciones más simples– Desinstalación más simple

Page 48: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

.NET Framework Class Library

• Conjunto de Tipos básicos (clases, interfaces, etc.) que vienen incluídos en el .NET Framework

• Los tipos están organizados en jerarquías lógicas de nombres, denominados NAMESPACES

• Los tipos son INDEPENDIENTES del lenguaje de desarrollo

• Es extensible y totalmente orientada a objetos

Page 49: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

.NET Framework Class Library

System

System.Data System.Xml

System.Web

Globalization

Diagnostics

Configuration

Collections

Resources

Reflection

Net

IO

Threading

Text

ServiceProcess

Security

Common

OleDb

SqlClient

Odbc

XPath

XSLT

Runtime

InteropServices

Remoting

Serialization

Serialization

Configuration SessionState

Caching Security

Services

Description

Discovery

Protocols

UI

HtmlControls

WebControls

System.Drawing

Imaging

Drawing2D

Text

Printing

System.Windows.FormsDesign ComponentModel

Page 50: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Common Language Specification (CLS)• Especificación que estandariza una serie de

características soportadas por el CLR• Contrato entre diseñadores de lenguajes de

programación 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

Page 51: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Common Language Specification (CLS)El resto de la industria y el sector académico han desarrollado

más de 20 lenguajes compatibles con la especificación CLS

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

APL

Delphi Python

LISP Prolog

Page 52: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

CLS - Elección del lenguaje• .NET posee un único runtime (el CLR) y un único

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

Page 53: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

VB.NETCódigoFuente

Compilador VB.NET

C++.NETC#

AssemblyCódigo MSIL

Sistema Operativo (Windows)

Common Language Runtime

Compilador JIT

Código Nativo

Código Manejado

ComponenteNo Manejado

Modelo de Ejecución del CLR

CompiladorC#

CompiladorC++ .NET

AssemblyCódigo MSIL

AssemblyCódigo MSIL

Page 54: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Debug Engine

CompiladorJIT

Assembly en la máquina

destino

Modelo de Ejecución del CLR

Assembly

Desarrollo Instalación

Instalación

Ejecución

AssemblyLoader

SeguridadClass Loader

.exe Nativo+

Tabla GC

Code Manager

Garbage Collector

Manejador Excepciones

Soporte MultiThread

COM 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 55: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Ventajas de .NET

• Unifica los modelos de programación• Simplifica aún más el desarrollo• Provee un Entorno de Ejecución robusto y seguro• Es independiente del lenguaje de programación• Interoperabilidad con código existente• Simplifica la instalación y administración de las

aplicaciones• Es Extensible

Page 56: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Unificando los Modelos

Windows API

.NET Framework

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

ASP

Basado en Servidor,

UI Embebido en el código

MFC/ATL (C++)

OOP, Potencia,

Acceso a bajo nivel

Visual Basic

Desarrollo Rapido,Componentes,Event Driven

Page 57: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Desarrollo Simplificado• Alto nivel de abstracción

– No mas accesos COM a bajo nivel– Orientado a Objetos desde el Núcleo

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

• Componentes de Software– Propiedades, métodos, eventos, y atributos

incluidos en la construcción de clases• API organizada en forma Jerárquica

Page 58: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Entorno de Ejecución Robusto y Seguro

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

Collector• Manejo de Excepciones• Fuertemente tipado

– Solo casteos seguros– Inicialización de variables obligatoria

• Instalación con Cero Impacto– No requiere registración en la Registry

Page 59: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Independencia del lenguaje• Libertad en la elección del lenguaje

– Todas las facilidades de la plataforma .NET están disponibles a todos los lenguajes de programación .NET

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

• Herramientas compartidas– Debuggers, profilers, analizadores de código, y otras

trabajan para todos los lenguajes

Page 60: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Instalación y Administración más simples• Unidades de Ensamblado (“Assemblies”)

– Mínima unidad de distribución, versionado y administración de seguridad de aplicaciones .NET

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

• Instalaciones Cero-impacto– Aplicaciones y componentes pueden ser

compartidas o privadas• Versioning

– Múltiples versiones del mismo componente pueden co-existir, aún en el mismo proceso

Page 61: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Extensibilidad• El Framework no es una “caja negra”• Sus clases pueden ser extendidas a través del

mecanismo de herencia– A diferencia de COM, usamos y extendemos las

clases en si mismas, no un “wrapper”• Herencia entre distintos lenguajes

Page 62: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Interoperabilidad

.NET Framework Servicios Web XML

C#

C++ VB

Otros... .NET

COMCOM INTEROP

Page 63: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Además

Page 64: Tecnologia microsoft .net

Moneando

• El Proyecto MONO es una implementación en código abierto de las herramientas del Framework .NET

• Desarrollado por Miguel de Icaza e impulsado por Novell.• Permite ejecutar aplicaciones desarrolladas en .NET sobre

las plataformas:- Windows- Linux- MAC OS

Proyecto Mono: http://www.go-mono.com/

Page 65: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Y Por Fin……¿Qué le paso a COBOL?

Pues con la ayuda del .NET Framework, se pudo rescatar esa reliquia (que en realidad es importante por que muchas dependencias importantes aun lo usan). Fujitsu se dio a la tarea de hacer la versión .NET llamada NetCOBOL.

Así que todavía hay COBOL para un buen rato

Page 66: Tecnologia microsoft .net

Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com

Gracias

Bernardo A. Robelo Jirón

Email: [email protected]

Blog: bernardorobelo.blogspot.com