Charla 3 - Posibilidades del Mundo Microsoft

Anuncio
Charla Microsoft .NET un mundo
de posibilidades
Julio Cesar Pupo Vega
CIDS
OBJETIVOS
“El que quiera tener razón y habla solo, de seguro logrará su objetivo.”
Johann Wolfgang Goethe
Presentar una introducción de la plataforma
de Microsoft .NET, puntualizando en su
arquitectura de Framework, evolución,
principios básicos, Además posibilidades
laborales de este.
Tópicos
“¡Confiamos demasiado en los sistemas, y muy poco en los hombres!”
Benjamin Disraeli
•
•
•
•
•
•
•
•
Introducción a Microsoft .NET.
Historia.
Java Vs .Net
Componentes Fundamentales
Funcionamiento Interno del CLR
Bibliotecas Principales
Ventajas de .NET
Herramientas de Desarrollo .NET
Que
no es .Net
Antes de decir qué es .NET, es conveniente aclarar qué NO es .NET:
• .NET no es un sistema operativo, como si lo es Microsoft
Windows en sus distintas versiones.
• .NET no es un Lenguaje de Programación: si bien la plataforma
Microsoft .NET incluye lenguajes de programación de aplicaciones,
su concepto es más amplio y va más allá de éstos.
• .NET no es un Entorno de Desarrollo: si bien la plataforma Microsoft
.NET incluye entornos de desarrollo integrados (IDEs), su concepto
es más amplio y va más allá de éstos.
• .NET no es un servidor de aplicaciones (Application Server)
• .NET no es un producto empaquetado que se pueda comprar como
tal, sino que es una plataforma que engloba distintas aplicaciones,
servicios y conceptos y que en conjunto permiten el desarrollo y la
ejecución de aplicaciones.
Que si es .Net
•
Plataforma de Desarrollo compuesta de
– Entorno de Ejecución (CLR - Common Language Runtime)
– Bibliotecas de Funcionalidad (Class Library – ASP.Net, XML,
Windows Form, ADO.Net , etc).
– Lenguajes de Programación(VB.Net, C#, F#, J#, etc)
– Compiladores
– Herramientas de Desarrollo (IDE & Tools)
– Guías de Arquitectura
• La evolución de la plataforma COM
Características
Cuatro características corresponden al juez: Escuchar cortésmente, responder sabiamente, ponderar
prudentemente y decidir imparcialmente.
Socrates
• 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
Características (2/2)
Cuatro características corresponden al juez: Escuchar cortésmente, responder sabiamente, ponderar
prudentemente y decidir imparcialmente.
Socrates
•
•
•
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 ->(XML,
HTTP, SOAP, WSDL y UDDI.)
.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)
Historia
Funcionalidad
“La historia es la ciencia de lo que nunca sucede dos veces.”
Paul Ambroise Valéry
Windows
3.0
MFC
COM
Win32
Win16
1980
1990
2000….
Historia
“La historia es la ciencia de lo que nunca sucede dos veces.”
Paul Ambroise Valéry
Historia
“La historia es la ciencia de lo que nunca sucede dos veces.”
Paul Ambroise Valéry
Visual Studio 6.0
Visual Basic
VBA
Visual FoxPro
VBScript
C++
J++
JScript
ASP
2000
2001
Visual Studio .NET 2002
.NET Framework 1.0
Visual Basic .NET
C#
ADO.NET
Visual Studio .NET 2003
.NET Framework 1.1
.NET Compact Framework
J#
2002
2003
2005
Visual Studio 2005
.NET Framework 2.0
.NET Compact Framework 2.0
Visual Studio 2008
.NET Framework 3.5
.NET Compact Framework 3.5
LINQ
ADO.NET Entity Framework
2008
2010
Visual Studio 2010
.NET Framework 4.0
.NET Compact Framework 4.0
Parellel LINQ
Task Parallel Library
¿Qué es el .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
Arquitectura del .NET Framework?
La arquitectura es una profesión peligrosa.
Rem Koolhaas
Aplicación .NET
Lenguajes de Programación
Librerías de Funcionalidad
Entorno de Ejecución
Sistema Operativo (Familia Windows)
Entorno de
Desarrollo
Arquitectura del .NET Framework?
La arquitectura es una profesión peligrosa.
Rem Koolhaas
C++
C#
J#
…
Common Language Specification
.NET Framework
Redistributable
Windows Forms
ADO.NET y XML
Base Class Library
Common Language Runtime
Windows
COM+ Services
.NET Framework
ASP.NET
Class Library
.NET Framework SDK
VB
CLR – Componentes Internos
CLR – Proceso de Compilación
Assembly
(MSIL)
Código
Fuente
Compilador
Cualquier
lenguaje .NET
Biblioteca
o Ejecutable
CLR - MSIL
.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
}
¿Qué es un “Assembly”?
Un Assembly es la unidad mínima de ejecución,
distribución, instalación y versionado de
aplicaciones .NET
Descripción de Tipos
MiBiblioteca.DLL
Metadata
Recursos
Código Compilado
MSIL
Clases
Clases Base
Interfaces Implementadas
Atributos de las Clases
Métodos de las Clases
Manifiesto del Assembly
Nombre
Versión
Cultura
Otros Assemblies
Permisos de Seguridad
Tipos Externos
.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
.NET Framework Class Library
El namespace raíz es SYSTEM
System.Web
System.Windows.Forms
Services
Description
UI
HtmlControls
Discovery
WebControls
Protocols
Design
ComponentModel
System.Drawing
Caching
Security
Drawing2D
Printing
Configuration
SessionState
Imaging
Text
System.Data
System.Xml
OleDb
Odbc
XSLT
Common
SqlClient
XPath
Serialization
System
Collections
IO
Security
Runtime
InteropServices
Configuration
Net
ServiceProcess
Diagnostics
Reflection
Text
Remoting
Globalization
Resources
Threading
Serialization
Common Language Specification (CLS)
El lenguaje es el bien más precioso y a la vez el más peligroso que se ha dado al hombre.
Friedrich Hölderlin
• 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 5
lenguajes, todos compatibles
–
–
–
–
–
Microsoft Visual Basic .NET
Microsoft Visual C# .NET
Microsoft Visual J#.NET
Microsoft Visual C++.NET
Microsoft Visual F# .NET
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
C++.NET
Delphi
Pascal
Visual Basic.NET
Java
Haskell
Oberon Mondrian
Cobol
PHP
Fortran
Perl
LISP
Smalltalk
APL
C#
F#
J#
Python
JavaScript
RPG
Prolog
Eiffel
Objective Caml
RUGBY
ML
Scheme
Mercury
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
Modelo de Ejecución del CLR
Código
Fuente
VB.NET
Compilador
VB.NET
Código
Manejado
Assembly
Código MSIL
C#
C++.NET
Compilador
C#
Compilador
C++ .NET
Assembly
Código MSIL
Assembly
Código MSIL
Common Language Runtime
Compilador JIT
Código Nativo
Sistema Operativo (Windows)
Componente
No Manejado
Modelo de Ejecución del CLR
System.Data
Common
SqlClient
OracleClient
OleDb
Odbc
SqlTypes
System.Xml
XSLT
Serialization
XPath
Schema
Interoperabilidad
Servicios Web XML
.NET Framework
C#
COM INTEROP
C++
COM
VB
Otros...
.NET
ADO .Net
System.Data
Common
SqlClient
OracleClient
OleDb
Odbc
SqlTypes
System.Xml
XSLT
Serialization
XPath
Schema
ADO .Net Escenario Conectado
• Un entorno conectado es uno en el cual los usuarios están
constantemente conectados a la fuente de datos
•
Ventajas:
– Mayor seguridad
– Mejor control de concurrencia
– Los datos se mantienen actualizados
• Desventajas:
– Se requiere una conexión constante (consume recursos del
servidor)
– Escalabilidad
Animación ADO.Net
Duda siempre de ti mismo, hasta que los datos no dejen lugar a dudas.
Louis Kronenberg
ADO .Net Escenario Desconectado
• En un entorno desconectado, una parte de los datos del
repositorio central se copia y modifica en forma local,
para luego sincronizarse con éste.
• Ventajas
– Se puede trabajar en forma independiente
– Mayor escalabilidad y performance
• Desventajas
– Los datos no están sinconizados
– Resolución manual de conflictos
ADO.NET- Clases más comunes
Base de Datos
Maneja la conección a una base de
datos
Ejecuta comandos contra una base
de datos
XxxConnection
Intercambia datos entre un dataset
y una base de datos
XxxCommand
Copia local de datos relacionales
Provee acceso a datos
read-only, Forward-only
XxxDataAdapter
XxxDataReader
DataSet
ADO.NET- DataSet
DataSet
DataColumn
DataTable
DataRow
Relaciones
Esquema XML
Restricciones
ADO.NET - Soporte a XML
<XML>
DocumentNavigator
XmlTextWriter
XmlReader
XmlTextReader
XmlValidatingReader
XmlDocument
XmlNodeReader
APP Windows
System.WinForms
Design
ComponentModel
System.Drawing
Drawing2D
Printing
Imaging
Text
Aplicaciones Web: ASP.NET
System.Web
Services
Description
UI
HtmlControls
Discovery
WebControls
Protocols
Caching
Security
Configuration
SessionState
¿Qué es ASP.NET MVC?
• ASP.NET MVC es, básicamente, una
implementación del patrón Modelo - Vista Controlador (MVC) para tecnología ASP.NET. El
patrón MVC no es ni nuevo (data de finales de
los años 70) ni está pensado para aplicaciones
web, pero en realidad en aplicaciones web
encaja perfectamente.
MVC
Brevemente podemos decir que el patrón MVC separa la
lógica (y acceso a datos) de una aplicación de su
presentación, usando 3 componentes:
• Modelo: Representa las reglas de negocio de la
aplicación (y el acceso a datos subyacente).
• Vistas: Representan la presentación de la aplicación.
• Controlador: Actúan de intermediario entre el usuario
y el Modelo y las Vistas. Recogen las peticiones del
usuario, interaccionan con el modelo y deciden que
vista es la que debe mostrar los datos.
MVC
Arquitectura de ADO.NET Entity
Framework
Soporte para consultas vía LINQ
denominado LINQ to Entities
Un objeto para generar consultas
dentro del modelo Object Services
Un modelo de objetos para acceder a
la capa conceptual
Lenguaje denominado eSQL o Entity
SQL semejante a SQL pero con
capacidades
Proveedor deadicionales
acceso a datos semejante
a SqlClient
Niveles de abstracción
Nivel conceptual descrito por un
lenguaje denominado Conceptual
Schema
Definition
Language
(CSDL)
Un lenguaje
de mapeado
de esquema
lógico a esquema conceptual (MSL)
Nivel Lógico descrito por un lenguaje
denominado Store Schema Definition
Language (SSDL)
Base de Datos relacional
Microsoft Silverlight
Silverlight conserva un modo de gráficos de sistema, similar al del WPF e integra
en
un
solo
complemento
multimedia,
gráficos
de
computador, animaciones e interactividad. La base de su programación
es XAML y el acceso a los objetos esta dado por C# y Visual Basic (aunque la
versión 1.0 trabajaba a partir de JavaScript). El XAML puede ser usado para
marcar los gráficos vectoriales y las animaciones
Java - .Net
Java arranco siendo un lenguaje tremendo y bastante
"revolucionario". Vale la pena aclarar que tiene ya mas de 15 años.
.NET, como suele hacer Microsoft, llego después pero (a mi
criterio) le paso el trapo ampliamente. La idea de tener un
framework atrás que te permita compilar código en muchísimos
lenguajes y te lo convierta a algo común es increíble.
Herramientas de Desarrollo - Free
Casarse es la forma más cara de tener sexo gratis.
Anónimo
•
•
•
•
Visual Studio 2005-2008-2010 Express Editions
SQL Server 2005 - 2008 Express
WEB Matrix
MONO
Herramientas de Desarrollo
Testers
Arquitectos
Desarrolladores
Consultores
Profesionales
VB6 Devs
Part-Timers
Hobbyists
Estudiantes
Entusiastas
Novatos
Ejemplo de Paginas
•
•
•
•
•
•
•
•
http:// www.semana.com
http://www.ecopetrol.com.co
http:// www.msn.com
http:// www.paginasamarillas.com
http://www.elempleo.com
http://www.everis.com
http://www.grupobancolombia.com
http://www.caracoltv.com/
Expectativas Laborales
El ocio es la pérdida del salario.
Francisco de Quevedo y Villegas
Gracias!
El aburrimiento es la enfermedad de las personas afortunadas; los desgraciados no
se aburren, tienen demasiado que hacer.
A. Dufresnes
[email protected]
Descargar