3. INSTRUCTOR
SOREY GARCÍA
(@SOREYGARCIA)
El material de apoyo usado fue aportado por el
MVP Cesar Fong y es material del MIX 2011
4. INFORMACIÓN GENERAL (Nivel
1)
Nivel: 100
Público: Aplica solo para estudiantes del SENA e invitados
de AVANET
Personas: 20 SENA – 10 AVANET
Costo: Ninguno
Requisitos: SDK para Windows Phone 7 Mango. Si ya se
tiene VS 2010 es necesario instalarle el Service Pack 1.
Meta: Lograr publicar aplicaciones en el Market Place
5. TEMAS (Nivel 1)
SEMANA 1 (Nivelación)
Entendiendo el desarrollo con .NET
Conociendo Windows Phone 7
Conociendo el APPHUB
SEMANA 2 (Nivelación)
Introducción básica a C# con WP7
Introducción básica a Silverlight para WP7
SEMANA 3
Navegación y Controles
Launchers y Choosers
Pivot y Panorama
SEMANA 4
Almacenamiento local
Bases de datos locales
6. TEMAS (Nivel 2)
Pre-requisito: Solo podrán acceder al Nivel 2 quienes presenten una
aplicación con los conceptos del Nivel 1 aplicados.
SEMANA 1 (Nivelación)
Entendiendo las Aplicaciones Distribuidas
Entendiendo los Servicios Web
SEMANA 2
Sensores
SEMANA 3
Notificaciones
Mapas
SEMANA 4
Publicando una aplicación en el APPHUB
7. ¡ADVERTENCIA!
Este curso es para personas con
conocimientos básicos. Los temas serán
abordados en sus formas más simples con el
ánimo de dar las herramientas necesarias
para abordar cada una de las sesiones
avanzando progresivamente.
11. Manejar correctamente los conceptos te
ayudará a defenderte en
cualquier herramienta
Preocúpate por aprender a razonar y pensar,
para aprender a usar las herramientas, están
los tutoriales
15. Si bien esta definición es correcta, el problema
está, en que tanto lo comprendemos…
16. Intentemos algo simple…
La orientación a objetos es
una forma de ver las
situaciones y de analizar el
entorno…
17. …es una forma de entender un problema
identificando las entidades
principales que se encuentran en el
18. Identificar los conceptos relevantes
o las entidades involucradas
El propósito de la programación orientada a
en un problema significa…
objetos consiste en proporcionar una solución informática
identificando los conceptos relevantes
presentes en el problema
conceptos relevantes = entidades
abstraer los detalles y
particularidades y emitir un
concepto genérico
19. Esto se logra identificando las
características comunes de un grupo de
objetos
y las acciones que realizan o bien que producen
algún efecto sobre ellos
20. La programación orientada a objetos (POO) es por tanto
una forma de desarrollar software,
pensando en las entidades principales del
problema que dicho sistema pretende resolver y por
tanto los datos que se manipularán de esas entidades y
las acciones de las que estas son responsables dentro
del sistema.
21. El lenguaje de programación es
la herramienta
para resolver el problema
22. El propósito de la POO no tiene que ver con
el lenguaje de programación
Sobre el lenguaje de programación lo que
podemos decir es que este soporta unas y otras
características
de la Orientación a Objetos
También podemos decir que cada quien elige la
herramienta que satisface las necesidades de su proyecto,
tanto a nivel de implementación como de conocimiento
disponible en su recurso humano
23. Y aunque es claro que existe más
de una herramienta para
resolver un problema
24. Es seguro que también hay
formas más fáciles
de hacerlo…
28. Cualquier Cosa
…de la que puedas emitir un concepto.
Es decir…
Cualquier Cosa ,
todo es un objeto.
29. Veamos,
Este es un objeto
Es un automóvil
de plástico, rojo
con 4 llantas y 2 puertas
30. Si realizáramos el proceso mental lentamente,
nos daríamos cuenta de que al ver el objeto
emitimos un concepto preconcebido
es decir automóvil
31. En la imagen cada uno de los elementos
que vemos es considerado
un objeto
Sin embargo de todos ellos
podemos emitir un concepto conocido
y para ello usamos la palabra globo
32. A ese concepto conocido que representa
una
agrupación de objetos
…lo llamamos Clase
33. Una clase es como un molde de galletas…
… este determina la forma y características que
la galleta (el objeto) va a tener, sin ser el objeto
real
34. La clase es una…
…los objetos son todos los que podamos crear
mentalmente a partir de dicha clase o concepto
35. ¿Recuerdan eso de la abstracción?
Pues bien…
Una clase esta compuesta por
características (atributos o propiedades)
y por comportamientos (acciones o
métodos)
…esos que elegimos como generalidades del conjunto de objetos
comunes de nuestro problema a resolver
37. Las características y comportamientos
de una clase son determinadas por el contexto del
problema o escenario
Esto en programación quiere decir, que dentro
de un sistema, solo implementamos los
atributos y métodos relacionados con
el ámbito del problema que estamos
solucionando.
38. Veamos algunos conceptos adicionales…
A los valores que tienen los atributos de un
objeto se les conoce como el
estado del objeto, y a los atributos y
métodos que ofrece se les conoce como la
interfaz al código usado para construir
las clases se le conoce como la
implementación de la clase.
39. Los objetos se comunican se
comunican con otros a través de
mensajes
Un mensaje es una comunicación dirigida a un
objeto, que le ordena que ejecute uno de sus
métodos con ciertos parámetros asociados al
evento que lo generó.
Wikipedia
40. Con respecto a la comunicación entre
objetos tenemos más principios
alta cohesión y el bajo
acoplamiento
41. Cuando decimos que un objeto tiene una
alta cohesión hablamos de que sus
características y comportamientos están
estrechamente relacionados
La relación que tienen esta determinada por el contexto
del problema a resolver
42. Cuando decimos que un objeto tiene
una bajo acoplamiento hablamos del
nivel de independencia que tiene un
objeto con respecto a otros
El hacer un objeto independiente de los demás ayudará a
que ese objeto pueda ser usado en otros contexto
43. Los principios que dirigen la orientación a objetos son…
… La modularidad y la
reusabilidad
Qué son?
44. En términos simples la
modularidad significa trabajar
por partes…
Esas partes deberían ser lo más independientes
posibles, como piezas de lego, de esa forma podrías
usar diferentes piezas en la construcción de otro
sistema
45. Y la reusabilidad significa
¡no se invente la
rueda!
Lo que ya esta hecho es para usarse y algunas de las
cosas que no están hechas, deben construirse
pensando en que alguien necesitará usarlo alguna vez.
Por otro lado recuerde, reusar no es simplemente
copiar y pegar código.
46. ¡UN CONSEJO!
No inventarse la rueda no
significa, que no mejores la
rueda.
47. Por último, veamos algunas características de la
Programación Orientada a Objetos
55. Ahora imagine que a usted le tocara
construir cada una de las partes…
56. ¿Cuánto tiempo cree que tardaría
en terminar?
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…
57. ¿Qué es un framework?
Un framework es, básicamente, un conjunto
de clases que interactúan en forma
cooperativa para dar solución a una
determinada necesidad.
58. Ahora un poco menos conceptual...
En términos simples un framework es un
conjunto de clases base agrupadas en
componentes, que pueden ser reutilizadas para
la construcción de nuevo software
60. Microsoft .NET
.NET es el conjunto de tecnologías en las que
Microsoft ha trabajado con el objetivo de obtener
una plataforma sencilla y potente para distribuir el
software en forma de servicios que puedan ser
suministrados remotamente y que puedan
comunicarse y combinarse unos con otros de
manera totalmente independiente de la
plataforma, lenguaje de programación y modelo
de componentes con los que hayan sido
desarrollados.
61. ¿Qué es Visual Studio .NET?
Es entorno de desarrollo (IDE), la herramienta
sobre la cual los programadores desarrollan el
software
62. Línea de Tiempo .NET Framework 4
2010
2010
2008 .NET Framework 3.5
2008
2007 .NET Framework 3.0
2005
Beta
.NET Framework 2.0
64. .NET Framework
Es una Plataforma de Desarrollo, la cual esta
compuesta por:
Un entorno de ejecución (Runtime)
Bibliotecas de funcionalidad (Class Library)
Lenguajes de programación
Compiladores
65. ¿Qué NO es?
NO es un sistema operativo
NO es un lenguaje de programación
NO es un entorno de desarrollo
NO es un servidor de aplicaciones
66. ¿Qué es el .NET Framework?
Un conjunto de tecnologías que me permiten:
Unir las aplicaciones Web actuales que están aisladas,
de manera muy fácil
Acceder a información en cualquier momento, en
cualquier lugar
Simplificar el desarrollo y la implementación
Desarrollar aplicaciones para cualquier dispositivo, sin
necesidad de mucho esfuerzo.
Reutilizar mucho código
67. Algunas Características
Completamente Orientado 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 o en otras
plataformas.
68. Línea de Tiempo
Visual Studio 6.0
Visual Basic
.NET Framework
VBA
Visual FoxPro
Visual Studio .NET 2003 Visual Studio 2008
VBScript
.NET Framework 1.1 .NET Framework 3.0 –
C++
.NET Compact Framework 3.5
J++
J# .NET Compact
JScript
Framework
ASP
2000 2001 2002 2003 2004 2005 2006 2008 2010
Visual Studio .NET 2002 Visual Studio 2005
.NET Framework 1.0 .NET Framework 2.0
Visual Basic .NET .NET Compact Framework Visual Studio 2010
C# 2.0 .NET Framework
4.0
F#
69. Microsoft .NET Framework 2.0
VB C++ C# J# …
Common Language Specification
Visual Studio .NET
ASP.NET: Servicios Web Windows
y Web Forms Forms
ADO.NET: Datos y XML
Biblioteca de Clases Base
Common Language Runtime
70. ¿Qué contienen las demás versiones?
VB C# J# IronPhyton Ruby …
CLS y CTS
WF & WCF
ASP.NET WPF WCS Enhancements
Dynamic Data
Additional Entity
ADO.NET WCF LINQ
Enhancements Framework
Windows Add-in
WF MVC Data Services
Forms Framework
Biblioteca de Clases
Common Language Runtime (CLR)
Windows 7, Windows Vista, Windows XP, Windows Server 2008
71. Common Language Runtime
(CLR)
Es el motor de ejecución de .NET
Caracteristicas:
Compilacion Just In Time (JIT)
Gestion de Memoria (Garbage Collector)
Gestion de Errores (excepciones)
Ejecucion basada en componentes (assemblies)
Gestion de seguridad
Multithreading
72. ¿Como trabaja el CLR?
Código Assembly
Fuente (MSIL)
Compilador
Cualquier Biblioteca
lenguaje .NET o Ejecutable
73. Tiempos: Compilación y
Ejecución
Compilación
Código Compilador Código
Fuente Lenguaje MSIL
Metadata
Ejecución Antes de la
instalación o
Código JIT cuando se ejecuta
Nativo Compiler por primera vez
74. Modelo de Ejecución del CLR
Código VB.NET C# C++.NET
Fuente
Componente
Compilador Compilador Compilador
No Manejado
VB.NET C# C++ .NET
Código Assembly Assembly Assembly
Manejado Código MSIL Código MSIL Código MSIL
Common Language Runtime
Compilador JIT
Código Nativo
Sistema Operativo (Windows)
75. Estructura de un proyecto .NET
Solución
Proyectos (Assemblies -
Componentes)
Namespaces (Agrupación lógica)
Clases
Archivos de configuración
Recursos adicionales
76. Estructura de un Assembly
Descripción de Tipos
Clases
MiBiblioteca.DLL Clases Base
Interfaces Implementadas
Metadata Atributos de las Clases
Métodos de las Clases
Recursos
Manifiesto del Assembly
Nombre
Código Compilado Versión
MSIL Cultura
Otros Assemblies
Permisos de Seguridad
Tipos Externos
77. Ahora sí, a lo que vinimos
¿Qué es Windows
Phone?
89. Windows Elementos
Plataforma Enfocado
Phone Hardware
Consistente en Calidad
Comunes
Hardware
Capacidades consistentes
definidas por Microsoft
Una resolución en el lanzamiento
Segunda resolución añadida después
Touch
Procesador consistente / GPU
Cantidad de RAM consistente
Teclado opcional
90. Standardized Hardware Foundation
Capacitive touch
4 or more contact points
Sensors
A-GPS, Accelerometer, Compass, Light, Proximity
Camera
5 mega pixels or more, flash required, camera button required
Multimedia
Common detailed specs, Codec acceleration
Memory
256MB RAM or more, 8GB Flash or more
GPU
DirectX 9 acceleration
CPU
ARMv7 Cortex/Scorpion or better
Hardware buttons | Start, Search, Back
91. CAPACIDADES COMUNES
Input .NET
• Touch (4 o más puntos de contacto) • Superset of Silverlight 3.0
• Hardware buttons • Windows Communication Foundation
• SOAP y REST services
Media Phone Access
• Digital media capture & playback • Acceso integrado al phone UI
• Acceso a librería de media • Sensores
• Picker para contactos y fotos
Datos
Integrado con Cloud Services
• Isolated Storage
• LINQ (Objetos y XML) • App Deployment & Updates
• Notificaciones
• Locación
• Xbox LIVE
92. PHONE 7
APPLICATION RUNTIME
SENSORS MEDIA STORAGE LOCATION
.NET FRAMEWORK SANDBOX
WINDOWS 7WINDOWS PHONE XBOX 360
93. .NET FRAMEWORK SANDBOX
• Aplicaciones aisladas
• No acceso directo a recursos locales
• Acceso a funcionalidades limitadas a través de API
• Dos aplicaciones no comparten almacenamiento
• No podemos hacer uso de código nativo
94. ISOLATE STORAGE
Todas las
operaciones de
entrada y salida
están limitadas al
isolate storage
(almacenamiento
aislado), no se tiene
acceso al background
sistema operativo o el
sistema de archivos.
Esto mejora la
seguridad y reduce la
posibilidad de acceso
no autorizado o datos
corruptos.
95. ARQUITECTURA BSP = Board Support Package
Applications Your App UI and logic
Frameworks
Silverlight XNA HTML/JavaScript
CLR
App Model UI Model Cloud Integration
Xbox LIVE
App management Shell frame Bing
Licensing Session manager Location
Chamber isolation Direct3D Push notifications
Software updates Compositor Windows Live ID
Kernel
Security Hardware BSP
Networking A-GPS Accelerometer Compass Light Proximity
Storage Media Wi-Fi Radio Graphics
Hardware Foundation
96. Windows Phone 7 Frameworks Details
Windows Phone Frameworks
Launchers & Windows Phone
Camera Device Integration
Choosers Controls
PhoneApplicationFrame PhoneApplicationPage PushNotification WebBrowserControl Sensors
Silverlight Presentation and Media XNA Frameworks for Games
Controls Drawing IsolatedStorage Drawing GamerServices
Shapes Markup Media Navigation Media Input Graphics Audio Content
Application Object
Common Base Class Library
Runtime Resources Globalization Reflection Location Text IO Net Diagnostics
Security Threading Collections ComponentModel Configuration ServiceModel Linq
97. OBJETIVOS DE LA
PLATAFORMA
Ayudar a los usuarios a personalizar los
equipos
Ayudar a los desarrolladores a ser rentables
Habilitar experiencias en la nube
98. PLATAFORMA DE APLICACIÓN
Runtime – On “Screen” Tools & Support
Herramientas
Código en el
para diseño y
cliente
desarrollo
SCREEN
CLOUD Cloud Services Developer Portal Services
Herramientas
Código en el
usadas para
servidor
publicar y
vender
99. PLATAFORMA DE APLICACIÓN
Runtime – On “Screen” Tools
Sensors Media Data Location Phone Emulator
Phone Xbox LIVE Notifications Samples Documentation
.NET Framework managed code sandbox Guides Community
SCREEN Packaging and Verification Tools
CLOUD Cloud Services Portal Services
Notifications App Deployment Registration Marketplace
Location Identity Feeds Validation MO and CC Billing
Social Maps Certification Business Intelligence
Publishing Update Management
100. DOS TIPOS DE APLICACIONES
Nuevo XAML/event-driven Framework para juegos de alta
application UI framework performance
Rápida creación de aplicaciones Rápida creación de juegos 2D y 3D
visuales multiscreen
Controles basados en Metro Contenidos enriquecidos
HTML/JavaScript Maduro, robusto, tecnología
500,000 desarrolladores ampliamente
trabajando en Windows adoptada
y web en
Xbox 360,
Windows,
y Zune
101. CLOUD SERVICES
Tuyo
Construyes; Consumes; Se hace fácil
con los servicios de Cloud Computing
como Windows Azure
Ellos
Se hace fácil con las APIs que tu
conoces; Windows Communication
Foundation SOAP. REST. LINQ.
Nuestro (MS)
102. MODELO DE APLICACION
Application
Uniquely identifiable,
licensable and serviceable
software product
packaged as a XAP
Application
Deployment
Steps include Ingestion, Windows Phone
Certification and Signing Marketplace
Application license
Crypto-verifiable object
issued to grant rights to Windows Phone
an application Marketplace
104. APP HUB / MARKETPLACE
AppHub Marketplace
• Registrar con el AppHub (99US$) • Publicación en Marketplace
• Descargar Herramientas • Comprar
• Construir tus juegos / aplicaciones • Actualizaciones
• Test / Debug
• Submit para Certificación
• Certificado y Firmado
105. MARKET PLACE
Búsqueda mejorada
• Fácil de encontrar grandes
aplicaciones y juegos
• Navegación cool en el
marketplace
Simple, Reliable
Acquisition
• Demos
• Compra y Descarga es más
sencillo
• Flexibilidad del pago
• Actualizaciones rápidas y
flexibles
109. HERRAMIENTAS WINDOWS
PHONE
Tools
Phone Emulator
Samples Documentation
Guides Community
Packaging and Verification Tools
Windows Phone
device
Packaging &
myapp.xap Herram. Verificación
Windows Phone
Emulator
110. PROGRAMACIÓN EN WINDOWS PHONE 7
CON SILVERLIGHT
MODELO DE LAS APLICACIONES
• Paquetes XAP
• Formato ZIP
• Ensamblados y recursos
• Toda aplicación obtiene un ID único
• Usado para licenciamiento y actualización
• Toda aplicación se firma con certificados de
seguridad
• Firmado por Microsoft al publicar en el Market Place
• Modo demo – Modo Compra
111. PROCESO DE DESPLIEGUE
Develop Submit Certify
& Debug & Validate & Sign
Windows Phone
Application Marketplace
Deployment Service
¿Qué el Windows Phone 7?EsdiferenteEs un SistemaOperativoMóvil. Sucesor de Windows MobileMientrasque Windows Mobile fueenfocado en la empresaahoraes el foco la empresa.DiseñoInteligente:Anticiparlasopcionesque el usuarioquieretenersegún la funcionalidad. Metro es el lenguaje de diseño, no es c# esalrededor de ser un lenguaje de expresiones. App Bar lugardonde se van a concentrar los comandos mas usados y se puede expander como un menúparapoderproveer la informaciónútilnecesaria
Hubs. Experiencias6 Hubs. People, relevant social contents, windows live , facebook,.. Update status Office, Microsoft Office a la plataforma Pictures Music + Videos Marketplace Games