Windows Phone - Sesión 1 - SenaGeeks
description
Transcript of Windows Phone - Sesión 1 - SenaGeeks
CURSO
DESARROLLO DE APLICACIONES CON WINDOWS PHONE 7
COMUNIDAD AVANET(@AVANET)
INSTRUCTOR
SOREY GARCÍA(@SOREYGARCIA)
El material de apoyo usado fue aportado por el MVP Cesar Fong y es material del MIX 2011
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
TEMAS (Nivel 1)
SEMANA 1 (Nivelación)Entendiendo el desarrollo con .NETConociendo Windows Phone 7Conociendo el APPHUB
SEMANA 2 (Nivelación)Introducción básica a C# con WP7 Introducción básica a Silverlight para WP7
SEMANA 3Navegación y ControlesLaunchers y ChoosersPivot y Panorama
SEMANA 4 Almacenamiento localBases de datos locales
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
¡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.
UN PAR DE CONSEJOS ANTES DE EMPEZAR…
Antes de intentar aprender algo ten presente…
lo complejo, alguna vez… fue simple,entiende lo primero lo simple.
El problema está en la técnica,
no en la herramienta
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
¿Listos?
¿Qué es la
orientación a objetos?
La orientación a objetos es un
paradigma de programación
Si bien esta definición es correcta, el
problema está, en que tanto lo comprendemos…
Intentemos algo simple…
La orientación a objetos es
una forma de ver las situaciones y de analizar
el entorno…
…es una forma de entender un problema
identificando las entidades principales que se encuentran en el
El propósito de la programación orientada a objetos consiste en
proporcionar una solución informática identificando
los conceptos relevantes presentes en el problema
conceptos relevantes = entidades
Identificar los conceptos relevantes
o las entidades involucradas en un problema significa…
abstraer los detalles y particularidades y emitir un
concepto genérico
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
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.
El lenguaje de programación es
la herramienta para resolver el problema
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
Y aunque es claro que existe más de una herramienta para
resolver un problema
Es seguro que también hay
formas más fáciles de hacerlo…
Veamos algunos
conceptos clave…
¿Qué es un Objeto?
Cualquier Cosa
Un Objeto es…
Cualquier Cosa…de la que puedas emitir un concepto.
Cualquier Cosa,
todo es un objeto.
Es decir…
Veamos,
Este es un objeto
Es un automóvil de plástico, rojo
con 4 llantas y 2 puertas
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
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
A ese concepto conocido que representa una agrupación de objetos
…lo llamamos Clase
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
La clase es una…
…los objetos son todos los que podamos
crear mentalmente a partir de dicha clase o concepto
¿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
Así entonces…
entidad =
concepto relevante =
clase
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.
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.
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
Con respecto a la comunicación entre objetos tenemos más
principiosalta cohesión y el bajo
acoplamiento
Cuando decimos que un objeto tiene una
alta cohesión hablamos de que sus características y
comportamientos están estrechamente relacionadosLa relación que tienen esta determinada por el
contexto del problema a resolver
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
… La modularidad y la reusabilidad
Qué son?
Los principios que dirigen la orientación a objetos son…
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
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.
¡UN CONSEJO!
No inventarse la rueda no significa, que no mejores
la rueda.
Por último, veamos algunas características de la
Programación Orientada a Objetos
Encapsulamiento
Herencia
Polimorfismo
Ahora empecemos a entender que es eso de
Desarrollo con .NET
¿Recuerdan esto?
“No se invente la rueda....”
¿Qué es un Framework?
Los edificios de una ciudad son todos los tipos de software que podemos construir
Veámoslo así…
Suponga que usted necesita construir un edificio…
Ahora imagine que a usted le tocara
construir cada una de las partes…
¿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…
Un framework es, básicamente, un conjunto de clases que interactúan en
forma cooperativa para dar solución a una determinada necesidad.
¿Qué es un framework?
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
Ahora un poco menos conceptual...
Las características principales de un framework son:
Estar enfocado en un tema específico
y el ser altamente reutilizable.
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.
¿Qué es Visual Studio .NET?
Es entorno de desarrollo (IDE), la herramienta sobre la cual los programadores desarrollan el software
Línea de Tiempo
2005
2007
2008
Beta
2008
.NET Framework 3.0
.NET Framework 3.5
.NET Framework 2.0
2010.NET Framework 4
2010
¿Qué es .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
.NET Framework
¿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
¿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
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.
Línea de Tiempo .NET FrameworkVisual 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 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.0F#
Microsoft .NET Framework 2.0
Biblioteca de Clases Base
Common Language Specification
Common Language Runtime
ADO.NET: Datos y XML
VB C++ C#V
isu
al S
tud
io .N
ET
ASP.NET: Servicios Weby Web Forms
J# …
WindowsForms
Windows 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
¿Qué contienen las demás versiones?
ADO.NET LINQ
Add-in Framework
WindowsForms
WF & WCF
Enhancements
Additional
Enhancements
MVC
Dynamic Data
Entity Framework
Data Services
Ruby …
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
¿Como trabaja el CLR?
Código Fuente
Cualquier lenguaje .NET
Compilador
Assembly (MSIL)
Bibliotecao Ejecutable
Tiempos: Compilación y Ejecución
Compilación
Antes de la instalación o cuando se ejecuta por primera vez
Ejecución
JIT Compiler
Código Nativo
MSILCódigo
Metadata
CódigoFuente
CompiladorLenguaje
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
Estructura de un proyecto .NET Solución
Proyectos (Assemblies - Componentes)Namespaces (Agrupación lógica) Clases
Archivos de configuraciónRecursos adicionales
Estructura de un 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
Ahora sí, a lo que vinimos
¿Qué es Windows Phone?
El pasado: Windows Mobile
El presente: Windows Phone 7 (Metro)
El presente: Windows Phone 7
¿POR QUÉ DESARROLLAR WP7?
El mercado emergente
Silverlight o XNA – Ya eres un desarrollador de WP
C# o VB.NET (Silverlight)
ETRO
METRO LENGUAJE DE DISEÑO MODERNO Y LIMPIO. RÁPIDO Y EN MOVIMIENTO.
ES ACERCA DE CONTENIDO Y TIPOGRAFÍA Y ES AUTÉNTICO.
PRINCIPIOS DE METRO
Limpio, ligero, abierto y rápidoCelebrar la tipografíaVivo, en movimientoContenido, no cromoAuténticamente digital
ETRO
Las aplicaciones que desarrollemos deben estar alineadas
ETRO
Además deben verse bien con los temas más comunes del móvil
HUBSCentralizarán distintas aplicaciones y archivos en torno a un tema o funcionalidad.
Marketplace Juegos Personas Fotos Música Office
HUBS VS. SINGLE-PAGE APPS
80
0 o
r 48
0
480 or 320
PlataformaConsistente
Windows Phone
Hardware
Elementos Hardware Comunes
Enfocado en Calidad
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
Standardized Hardware Foundation
Capacitive touch4 or more contact points
SensorsA-GPS, Accelerometer, Compass, Light, Proximity
Camera5 mega pixels or more, flash required, camera button required
MultimediaCommon detailed specs, Codec acceleration
Memory256MB RAM or more, 8GB Flash or more
GPUDirectX 9 acceleration
CPUARMv7 Cortex/Scorpion or better
800
WV
GA
/ 4
80 H
VG
A
480 WVGA / 320 HVGA
Hardware buttons | Start, Search, Back
• App Deployment & Updates• Notificaciones• Locación• Xbox LIVE
CAPACIDADES COMUNESInput
• Touch (4 o más puntos de contacto)• Hardware buttons
Media
• Digital media capture & playback• Acceso a librería de media
Datos
• Isolated Storage• LINQ (Objetos y XML)
.NET
• Superset of Silverlight 3.0• Windows Communication Foundation
• SOAP y REST services
Phone Access
• Acceso integrado al phone UI• Sensores• Picker para contactos y fotos
Integrado con Cloud Services
PROGRAMACIÓN EN WINDOWS PHONE 7APPLICATION RUNTIME
WINDOWS PHONE
.NET FRAMEWORK SANDBOX
SENSORS MEDIA STORAGE LOCATION
XBOX 360WINDOWS 7
.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
ISOLATE STORAGETodas 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.
KernelHardware BSP
App Model UI Model Cloud Integration
Applications
App managementLicensingChamber isolationSoftware updates
Shell frame Session managerDirect3DCompositor
Xbox LIVEBingLocationPush notificationsWindows Live ID
Your App UI and logic
A-GPS Accelerometer Compass Light ProximityMedia Wi-Fi Radio Graphics
SecurityNetworkingStorage
Frameworks
Silverlight XNAHTML/
JavaScriptCLR
Hardware Foundation
ARQUITECTURA BSP = Board Support Package
Windows Phone 7 Frameworks Details
Common Base Class Library
Collections ComponentModel Configuration
DiagnosticsReflection IO
Security Threading
Runtime Resources Globalization TextLocation Net
ServiceModel Linq
Application Object
Silverlight Presentation and Media
XNA Frameworks for Games
Windows Phone Frameworks
NavigationShapes Markup Media
Controls Drawing IsolatedStorage
AudioMedia GraphicsInput
Drawing GamerServices
Content
PhoneApplicationPage
PushNotification
WebBrowserControl
SensorsPhoneApplicationFra
me
CameraDevice
IntegrationLaunchers &
ChoosersWindows Phone
Controls
OBJETIVOS DE LA PLATAFORMA
Ayudar a los usuarios a personalizar los equipos
Ayudar a los desarrolladores a ser rentables
Habilitar experiencias en la nube
PLATAFORMA DE APLICACIÓN
CLOUD
SCREEN
Cloud Services
Runtime – On “Screen”
Código en el cliente
Código en el servidor
Tools & Support
Developer Portal Services
Herramientas para diseño y
desarrollo
Herramientas usadas para publicar y
vender
PLATAFORMA DE APLICACIÓN
CLOUD
SCREEN
Phone Emulator
Samples Documentation
Guides Community
Packaging and Verification Tools
Notifications
Location Identity Feeds
MapsSocial
App Deployment Registration
Validation
Certification
Publishing
Marketplace
MO and CC Billing
Business Intelligence
Update Management
Tools
Portal ServicesCloud Services
Sensors Media Data
Xbox LIVE Notifications
.NET Framework managed code sandbox
Location
Phone
Runtime – On “Screen”
DOS TIPOS DE APLICACIONES
Framework para juegos de alta performance
Rápida creación de juegos 2D y 3D multiscreen
Contenidos enriquecidos Maduro, robusto, tecnología
ampliamente adoptada
enXbox 360, Windows, y Zune
Nuevo XAML/event-driven application UI framework
Rápida creación de aplicaciones visuales
Controles basados en Metro HTML/JavaScript 500,000 desarrolladores
trabajando en Windows y web
CLOUD SERVICES
Se hace fácil con las APIs que tu conoces; Windows Communication Foundation SOAP. REST. LINQ.
Ellos
Construyes; Consumes; Se hace fácil con los servicios de Cloud Computing como Windows Azure
Tuyo
NotificacionesLocaciónXbox LIVEApp Deployment & Marketplace
Nuestro (MS)
MODELO DE APLICACIONApplicationUniquely identifiable, licensable and serviceable software product packaged as a XAP
Application DeploymentSteps include Ingestion, Certification and Signing
Application licenseCrypto-verifiable object issued to grant rights to
an application
Windows Phone
Marketplace
Windows Phone
Marketplace
¿Qué haremos luego de aprender Windows Phone 7?
¡Publicaremos!
APP HUB / MARKETPLACE
AppHub
• Registrar con el AppHub
(99US$)
• Descargar Herramientas
• Construir tus juegos /
aplicaciones
• Test / Debug
• Submit para Certificación
• Certificado y Firmado
Marketplace
• Publicación en Marketplace
• Comprar
• Actualizaciones
MARKET PLACEBú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
http://ir.pe/WP7DT http://ir.pe/WP7TK http://ir.pe/wp7VB
HERRAMIENTAS WINDOWS PHONE
Packaging & Herram. Verificaciónmyapp.xap
Windows Phone device
Windows PhoneEmulator
Phone EmulatorSamples DocumentationGuides Community
Packaging and Verification Tools
Tools
PROGRAMACIÓN EN WINDOWS PHONE 7CON SILVERLIGHT
• 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
MODELO DE LAS APLICACIONES
PROCESO DE DESPLIEGUE
Develop & Debug
Submit& Validate
Certify & Sign
Windows Phone Application Deployment Service
Marketplace
LOS ESPERAMOS LA PRÓXIMA SESIÓN