tecnologia microsoft .net
TRANSCRIPT
Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.combernardorobelo.blogspot.com
Tecnología Microsoft.NetBernardo Antonio Robelo Jirón
Ingeniero en Sistemas
Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.combernardorobelo.blogspot.com
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.
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
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
Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com
Elementos Adicionales
• XHTML• JavaScript• CSS• XML• XAML
Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.combernardorobelo.blogspot.com
Tecnología 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.
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
Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com
Que tal un poquito de historia?
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?
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!
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.
Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com
Que es .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
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
Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com
Plataforma .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
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
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
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)
Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.combernardorobelo.blogspot.com
.NET Framework
Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com
Que es un Framework?
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?
Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com
.NET FrameworkQue es un Framework?
¿Quedo claro?
Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com
Suponga que usted necesita construir un edificio…
.NET FrameworkQue es un Framework?
Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com
Imagine que a usted le tocara construir cada una de las partes…
.NET FrameworkQue es un Framework?
Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com
.NET FrameworkQue es un Framework?
¿Cuánto tiempo cree que tardaría en terminar?
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?
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.
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
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
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
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
Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com
Evolucion del .NET Framework
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
Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com
Que es el .NET Framework 3.5 ?
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 …
Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com
Common Language Runtime
Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com
CLR – Common Languaje RuntimeArquitecturas de Ejecución de Aplicaciones
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
Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com
CLR – Componentes Internos
Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com
Código Fuente
Cualquier lenguaje .NET
CompiladorAssembly
(MSIL)
Bibliotecao Ejecutable
CLR – Proceso de Compilación
Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.combernardorobelo.blogspot.com
DemoPrimer vistazo a .Net
Desarrollar nuestra aplicación “Hello World”
Microsoft Intermediately Language
.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 }
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
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
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
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
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
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
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
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
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"
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
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
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
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
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
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
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
Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com
Interoperabilidad
.NET Framework Servicios Web XML
C#
C++ VB
Otros... .NET
COMCOM INTEROP
Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com
Además
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/
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
Ing. BARJ. UPOLI – ISTbernardorobelo.blogspot.com
Gracias
Bernardo A. Robelo Jirón
Email: [email protected]
Blog: bernardorobelo.blogspot.com