![Page 1: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/1.jpg)
Programación IProgramación IProgramación IProgramación I
![Page 2: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/2.jpg)
Introducir a la plataforma de desarrollo Microsoft .NETDescribir sus características elementales de funcionamiento,Describir su arquitectura de componentes y sus principales bibliotecas reutilizables
![Page 3: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/3.jpg)
Introducción a Microsoft .NET.Componentes Fundamentales.Funcionamiento Interno del CLR.Bibliotecas Principales.Ventajas de .NET.Herramientas de Desarrollo .NET.
![Page 4: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/4.jpg)
Introducción a Microsoft .NET.◦ ¿Qué no es .NET?.◦ ¿Qué es .NET?.◦ Características de .NET.
![Page 5: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/5.jpg)
.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 6: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/6.jpg)
Plataforma de Desarrollo y ejecución de aplicaciones compuesta de:
◦ Entorno de Ejecución (Runtime)◦ Bibliotecas de Funcionalidad (Class Library)◦ Lenguajes de Programación◦ Compiladores◦ Herramientas de Desarrollo (IDE & Tools)◦ Basada en el paradigma de orientación a
objetos.◦ Permite el desarrollo de aplicaciones de nivel
empresarial a gran escala
![Page 7: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/7.jpg)
Plataforma de ejecución intermedia. 100% Orientada a Objetos. Multilenguaje. 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 8: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/8.jpg)
Entorno de
Desarrollo
Mic
rosoft
.N
ET
Librerías de Funcionalidad
Lenguajes de Programación
Entorno de Ejecución
Sistema Operativo (Familia Windows)
Aplicación .NET
![Page 9: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/9.jpg)
Paquete de software fundamental de la plataforma .NET. Incluye:◦ Entorno de Ejecución (Runtime).
◦ Bibliotecas de Funcionalidad (Class Library).
Existen tres variantes principales:◦ .NET Framework Redistributable Package
◦ .NET Framework SDK
◦ .NET Compact Framework.
![Page 10: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/10.jpg)
.NET Framework Redistributable Package◦ Compuesto por:
CLR BCL
.NET Framework SDK◦ Herramientas desde línea de comandos tales como
compiladores, depuradores ademas de CLR y BCL .NET Compact Framework
◦ Versión reducida para dispositivos móviles
![Page 11: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/11.jpg)
.NET Compact Framework
*
*
AplicaciónMóvil
Aplicación de Consola
Aplicación Web
Aplicación de Escritorio
ServidorCliente
* Sólo si la aplicación es distribuída.* Sólo si la aplicación es distribuída.
![Page 12: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/12.jpg)
Con Internet, la mayoría de aplicaciones y dispositivos tienen problemas comunicándose entre sí.
Los programadores terminan por escribir infraestructura en lugar de aplicaciones
Los programadores han tenido que limitar su alcance o aprender continuamente nuevos lenguajes para superar las limitaciones de los lenguajes
![Page 13: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/13.jpg)
Versión 1.0 (año en 2002 para VS2002) Versión 1.1 (liberada en 2003 para VS2003) Versión 2.0 (liberada en 2006 para VS2005) Versión 3.0 (liberada en 2007 para WinVista) Versión 3.5 (liberada en 2008) Versión 4.0 (liberada en 2010 para VS 2010) Versión 4.5 (liberada en 2012 para VS 2012)
![Page 14: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/14.jpg)
Introducción a Microsoft .NET. Componentes Fundamentales.
◦ Arquitectura.◦ Common Language Runtime (CLR).◦ Microsoft Intermediate Language.◦ Assemblies.◦ .NET Class Library.◦ Common Language Specification (CLS).
![Page 15: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/15.jpg)
Windows COM+ Services
Common Language Runtime
Base Class Library
ADO.NET y XML
ASP.NET Windows Forms
Common Language Specification
VB C++ C# J# …
.NE
T F
ram
ewor
k R
edis
trib
utab
le
.NE
T F
ram
ewo
rk S
DK
.NE
T F
ramew
ork
Class Library
![Page 16: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/16.jpg)
Introducción a Microsoft .NET.Componentes Fundamentales.Funcionamiento Interno del CLR.◦ Modelo de Ejecución.◦ Common Type System.
![Page 17: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/17.jpg)
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 18: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/18.jpg)
Class Loader
IL to NativeCompilers
CodeManager
GarbageCollector
Security Engine Debug Engine
Type Checker Exception Manager
Thread Support COM Marshaler
Base Class Library Support
![Page 19: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/19.jpg)
Un Assembly es la unidad mínima de ejecución, distribución, instalación y versionado de aplicaciones .NET,
MetadataMetadata
Código CompiladoCódigo CompiladoMSILMSIL
RecursosRecursos
MiBiblioteca.DLLMiBiblioteca.DLL
Descripción de TiposDescripción de Tipos
ClasesClasesClases BaseClases BaseInterfaces ImplementadasInterfaces ImplementadasAtributos de las ClasesAtributos de las ClasesMétodos de las ClasesMétodos de las Clases
NombreNombreVersiónVersiónCulturaCultura
Manifiesto del AssemblyManifiesto del Assembly
Otros AssembliesOtros AssembliesPermisos de SeguridadPermisos de SeguridadTipos ExternosTipos Externos
![Page 20: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/20.jpg)
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 21: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/21.jpg)
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: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/22.jpg)
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 23: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/23.jpg)
.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 la experiencia previa con otros lenguajes o de gustos personales.
Los tipos de aplicaciones .NET son INDEPENDIENTES del lenguaje que elija.
![Page 24: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/24.jpg)
Introducción a Microsoft .NET.Componentes Fundamentales.Funcionamiento Interno del CLR.◦ Modelo de Ejecución.◦ Common Type System.
![Page 25: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/25.jpg)
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
CompiladorCompiladorC#C#
CompiladorCompiladorC++ .NETC++ .NET
AssemblyAssemblyCódigo MSILCódigo MSIL
AssemblyAssemblyCódigo MSILCódigo MSIL
![Page 26: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/26.jpg)
Define un conjunto común de “tipos” de datos orientados a objetos.
Todo lenguaje de programación .NET debe implementar los tipos definidos por el CTS.
Todo tipo hereda Todo tipo hereda directa o directa o indirectamente del indirectamente del tipo System.Object.tipo System.Object.
Define Tipos de Define Tipos de VALOR y de VALOR y de REFERENCIA.REFERENCIA.
Todo tipo hereda Todo tipo hereda directa o directa o indirectamente del indirectamente del tipo System.Object.tipo System.Object.
Define Tipos de Define Tipos de VALOR y de VALOR y de REFERENCIA.REFERENCIA.
![Page 27: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/27.jpg)
El CLR administra dos segmentos de memoria: Stack (Pila) y Heap (Montón).
El Stack es liberado automáticamente y el Heap es administrado por el GC (Garbage Collector).
Los tiposLos tipos VALOR VALOR se se almacenan en el almacenan en el Stack.Stack.
Los tipos Los tipos REFERENCIAREFERENCIA se se almacenan en el almacenan en el Heap.Heap.
Los tiposLos tipos VALOR VALOR se se almacenan en el almacenan en el Stack.Stack.
Los tipos Los tipos REFERENCIAREFERENCIA se se almacenan en el almacenan en el Heap.Heap.
![Page 28: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/28.jpg)
Introducción a Microsoft .NET.Componentes Fundamentales.Funcionamiento Interno del CLR.Bibliotecas Principales.◦ Base Class Library (BCL).◦ ADO.NET.◦ Windows Forms.◦ ASP.NET.
![Page 29: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/29.jpg)
System
Globalization
Diagnostics
Configuration
Collections
Resources
Reflection
Net
IO
Threading
Text
ServiceProcess
Security InteropServices
Remoting
Serialization
![Page 30: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/30.jpg)
System.Data
OleDb
SqlClient
OracleClient
Common
Odbc SqlTypes
System.Xml
Serialization
XPath
XSLT
Schema
![Page 31: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/31.jpg)
System.Drawing
Drawing2D
Imaging
Printing
Text
System.WinForms
Design ComponentModel
![Page 32: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/32.jpg)
System.Web
Caching
Configuration
Services UI
SessionState
HtmlControls
WebControls
Description
Discovery
Security
Protocols
![Page 33: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/33.jpg)
Introducción a Microsoft .NET.Componentes Fundamentales.Funcionamiento Interno del CLR.Bibliotecas Principales.Ventajas de .NET.
![Page 34: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/34.jpg)
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 35: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/35.jpg)
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 36: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/36.jpg)
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 37: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/37.jpg)
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 38: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/38.jpg)
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 39: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/39.jpg)
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 40: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/40.jpg)
.NET Framework.NET FrameworkServicios Web XMLServicios Web XML
C#C#
C++C++ VBVB
Otros...Otros... .NET.NET
COMCOMCOM INTEROP
![Page 41: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/41.jpg)
Introducción a Microsoft .NET.Componentes fundamentales.Funcionamiento interno.Bibliotecas Principales.Ventajas de .NET.Herramientas de Desarrollo .NET.
![Page 42: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/42.jpg)
![Page 43: Programación I. Introducir a la plataforma de desarrollo Microsoft.NET Describir sus características elementales de funcionamiento, Describir su arquitectura](https://reader033.vdocuments.co/reader033/viewer/2022061217/54af3b7649795980498b4857/html5/thumbnails/43.jpg)