Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arquitectura de sistemas
E! '5 de (e"rero de 20'0) durante e! *o"i!e Wor!d Congress ce!e"rado en #arce!ona) *icroso+t present a! mundo su nuevo sistema operativo para smartp,ones- Windows .,one /& 0u desarro!!o comenz en 2008 tras !a reorganizaci n de! equipo de Windows *o"i!e 1 !a cance!aci n de! pro1ecto 2.,oton3) !a versi n de! sistema en !a que *icroso+t tra"a4a"a desde 2005 con pocos resu!tados& 6rigina!mente se p!ante su sa!ida a! mercado en 2007) pero una serie de retrasos o"!igaron a preparar una versi n de transici n de Windows *o"i!e 8W* 6&59 1 retrasar e! !anzamiento de Windows .,one / ,asta 6ctu"re de 20'0 en Europa) :oviem"re de 20'0 en U0A 1 20'' para Asia& Una de sus m$s ac!amadas novedades es !a inter+ace de usuario) denominada 2*etro3) "asada en unos simp!es pero e+ectivos mosaicos din$micos que muestran in+ormaci n ;ti! a! usuario& <am"i=n se estrena un nuevo concepto !!amado >U#) un !ugar donde centra!izar acciones 1 agrupar ap!icaciones por !a actividad a !a que se destinan) as?) podemos encontrar e! >U# de @m$genes) Aune) 6++ice o B"oC Dive) cada uno de !os cua!es nos dar$ acceso a tareas espec?+icas como m;sica) documentos o 4uegos& Un aEo despu=s de su presentaci n) de nuevo en e! marco de! *o"i!e Wor!d Congress) Windows .,one /) con apenas unos meses de vida) presenta importantes novedades) a su primera actua!izaci n en *arzo de 20'') que inc!u1e me4oras en e! rendimiento genera! as? como !a inc!usi n de copiar 1 pegar) se une una nueva actua!izaci n) !!amada 2*ango3 que inc!uir$ e! motor de @nternet ECp!orer 7) con su soporte para ><*D5) *u!titarea en ap!icaciones de terceros e integraci n con B"oC F60 1 Ginect& En *a1o de 20'' *icroso+t a puesto a disposici n de !os desarro!!adores !a primera versi n "eta de !as nuevas ,erramientas de desarro!!o de !a versi n 2*ango3 de Windows .,one&
Modelo de Hardware
>asta !a !!egada de Windows .,one a! mercado pod?amos encontrar 2 mode!os) o p!anteamientos) distintos a nive! de ,ardware en !os principa!es competidores de! segmento de !os smartp,ones Modelo Iphone: (=rreo contro! so"re e! ,ardware) siendo App!e !a encargada de diseEar tanto e! sistema i60 como e! dispositivo donde se e4ecuta& Como principa!
venta4a de este mode!o encontramos !a adaptaci n tota! de! sistema operativo a! dispositivo) puesto que am"os ,an sido conce"idos como partes de un todo 1 podemos estar seguros de o+recer !a misma eCperiencia de uso para todos !os consumidores& Como principa!es desventa4as tenemos e! coste de adquisici n) de"ido norma!mente a que adquirimos un dispositivo de gama a!ta) que no todo e! mundo puede o quiere permitirse) 1 !a nu!a variedad de dispositivos en e! mercado) so!o eCiste uno 1 no tenemos opciones de e!ecci n& Modelo Windows Mobile / Android: Como +a"ricantes de so+tware) primero *icroso+t con Windows *o"i!e 1 a,ora Hoog!e con Android) desarro!!an e! sistema operativo que cua!quier +a"ricante puede !icenciar e inc!uir en su dispositivo) sin unos requerimientos m?nimos de ,ardware ni !?mites en !a persona!izaci n de !a inter+ace de usuario& 0u principa! venta4a es !a cantidad) gracias a este mode!o e! mercado puede ser inundado con cientos de mode!os distintos 1 e! usuario tiene !i"ertad para e!egir entre termina!es de gama "a4a) media o a!ta& 0in em"argo este mode!o su+re de dos grandes pro"!emas) m$s que desventa4as) e! primero es !a a"isma! di+erencia de ,ardware entre un termina! de gama "a4a 1 uno de gama a!ta) !o que incide directamente en !a eCperiencia de usuario) siendo a!gunos termina!es imposi"!es de usar o no pudiendo actua!izar!os m$s a!!$ de una cierta versi n de! sistema& E! segundo gran pro"!ema es que) como desarro!!adores no podemos asegurar !a compati"i!idad de nuestra ap!icaci n con todos !os mode!os eCistentes 1 en a!gunos casos) de"emos crear distintas versiones para varios termina!es para poder asegurarnos una "ase de usuarios grande) !o que redunda directamente en !os costes de desarro!!o 1 actua!izaci n de !os productos que rea!izamos& IJu= mode!o sigue Windows .,oneK :inguno de !os dos) o m$s "ien podr?amos decir que !os dos) en *icroso+t 1a ten?an !a eCperiencia de Windows *o"i!e 1 !a +ragmentaci n e inconsistencia de! sistema a trav=s de distintos dispositivos) pero no quer?an atarse a un so!o dispositivo) as? encontraron e! camino intermedio Modelo Windows Phone: Como +a"ricante de! sistema) *icroso+t requiere que todo te!=+ono que desee e4ecutar Windows .,one disponga de unas caracter?sticas m?nimas) para asegurar !a consistencia de todos !os usuarios de! sistema) a partir de estas caracter?sticas !os +a"ricantes de so+tware son !i"res de amp!iar!as en a!gunos casos 1 est$n o"!igados a cump!ir!as con eCactitud en otros& En este mode!o) conseguimos aunar !as venta4as de! mode!o @.,one) todos !os usuarios o"tienen !a misma eCperiencia de uso 1 !os desarro!!adores sa"emos que nuestra ap!icaci n +uncionar$ de +orma id=ntica en todos !os dispositivos Windows .,one /) 1 !as de! mode!o Windows *o"i!e L Android) no estamos encerrados en un so!o ,ardware) eCisten distintos dispositivos de varios +a"ricantes) todos con unas caracter?sticas m?nimas comunes pero con su+icientes di+erencias como para sentir que podemos escoger e! termina! que m$s se a4uste a nosotros& Con este mode!o en mente) *icroso+t creo unas especi+icaciones m?nimas inicia!es) !!amadas C,assis ') por !as que todo +a"ricante que desease crear termina!es para e! nuevo sistema de"e guiarse 8(igura '&'9&
Ma se ,a anunciado que en e! +uturo aparecer$n !as especi+icaciones C,assis 2 1 C,assis F) que soportar$n otros tipos de te!=+onos 1 mantendr$n una re!aci n de unidad con e! C,assis ') compartiendo un m?nimo denominador com;n que permita o"tener !a misma eCperiencia de usuario independientemente de! dispositivo ,ardware que uti!icemos&
Modelo de Software
Windows .,one est$ "asado en Windows CE 6&0 NF) un sistema muc,o m$s moderno 1 avanzado que e! uti!izado en !os Windows *o"i!e 6&B 8Windows CE 5&29& Windows CE 6&0 supuso un rediseEo tota! de! sistema con respecto a su anterior versi n) por i!ustrar!o de una +orma simp!e- Windows CE 5&2 soporta"a F2 procesos en su Gerne!) mientras que Windows CE 6&0 soporta F2&/68& A,ora) !a 0,e!! 1 !a p!ata+orma de ap!icaciones residen en memoria de usuario mientras que e! Gerne!) !os drivers) e! sistema de arc,ivos) networOing) e! sistema de rendering 1 gr$+icos 1 e! sistema de actua!izaciones residen en e! espacio de Gerne!& Estamos ,a"!ando de un sistema de F2#its) con !o que so!o puede mane4ar 5H" de memoria- 2H" para procesos 1 2H" para e! Oerne!& En !a versi n NF de Windows CE 6&0 se aEadi soporte para 0i!ver!ig,t *o"i!e) @nternet ECp!orer Em"edded 1 otras tecno!og?as& Nesu!ta interesante resa!tar que esta versi n soporta (!as, Dite de +orma nativa en e! sistema) aunque esta tecno!og?a no se encuentre disponi"!e en Windows .,one /& 0o"re toda !a in+raestructura provista por Windows CE 6&0 NF se !evanta e! mode!o de so+tware de Windows .,one / 8(igura '&29) a! igua! que con e! ,ardware) *icroso+t ,a creado un mode!o conciso) pensado para +aci!itar e! uso de! dispositivo 1 aportar co,esi n a !a inter+ace de usuario&
Modelo de Aplicacin
En Windows .,one !as ap!icaciones se desp!iegan en +orma de paquete BA.) "$sicamente es un arc,ivo comprimido dentro de! cua! podemos encontrar !os ensam"!ados 1 recursos origina!es de nuestra ap!icaci n& Da ;nica +orma de insta!ar una ap!icaci n en Windows .,one es mediante !a tienda o+icia! de *icroso+t) E! *arOetp!ace) en !a cua! de"emos registrarnos como desarro!!adores para poder vender nuestras ap!icaciones& .ara garantizar !a seguridad de! sistema 1 evitar !a pirater?a) e! ma!ware o virus) a cada ap!icaci n se !e asigna un @% ;nico 1 un certi+icado de seguridad emitido cuando nuestra ap!icaci n es apro"ada en e! *arOetp!ace de Windows .,one& Este certi+icado puede insta!arse en modo demo) por !o que so!o con compro"ar e! modo de este certi+icado desde nuestra ap!icaci n podremos sa"er si nos encontramos en modo de prue"a o modo comp!eto 1 restringir o cam"iar !a +orma en que nuestra ap!icaci n se comporta) evitando e! desarro!!o de versiones 2!ite3 como en otras p!ata+ormas&
Modelo de UI
E! mode!o de inter+ace de usuario de Windows .,one se compone de e!ementos) p$ginas 1 sesiones& Un e!emento es todo contro! que se muestra a! usuario) una p$gina es una agrupaci n ! gica de e!ementos 1 una sesi n es e! con4unto de interacciones que rea!iza un usuario so"re nuestra ap!icaci n e inc!uso puede invo!ucrar a otras ap!icaciones& .or e4emp!o) podemos rea!izar una ap!icaci n que necesite de! usuario una +oto) tenemos un "ot n 8e!emento9 en nuestra p$gina que muestra e! >U# de im$genes 1 una vez que e! usuario ,a se!eccionado una) vue!ve a nuestra ap!icaci n 1 se muestra !a imagen escogida& Este con4unto de acciones se eng!o"a dentro de una sesi n&
(ace"ooO o #ing& En !a versi n actua! de! Oit de desarro!!o no eCisten A.@s que permitan a nuestras ap!icaciones acceder a estos servicios directamente) pero se espera que aparezcan en pr Cimas actua!izaciones& Necientemente *icroso+t ,a !i"erado e! Windows .,one C!oud 0ervices 0%G) un Oit de desarro!!o que dotar$ de servicios en !a nu"e eCc!usivos para Windows .,one /) como reconocimiento 6CN) Voz a teCto 1 una serie de apis para intercomunicar dispositivos sin necesidad de tener una ip +i4a en e!!os&
Application runtime
>asta a,ora ,emos tenido una visi n genera! de !os mode!os de ,ardware 1 so+tware en !os que se "asa Windows .,one) en esta secci n eCaminaremos !a parte que m$s nos invo!ucra- e! App!ication Nuntime) donde 1 como se e4ecutar$n nuestras ap!icaciones) !as !imitaciones que encontraremos 1 !os +rameworOs que tenemos a nuestro a!cance para desarro!!ar& A continuaci n podemos ver un esquema de c mo est$ estructurado e! App!ication Nuntime de Windows .,one 8(igura '&F9
En Windows .,one podemos encontrar dos +rameworOs c!aramente di+erenciados0i!ver!ig,t para Windows .,one 1 B:A para Windows .,one& &il'erligh! for Windows Phone es un +rameworO "asado en 0i!ver!ig,t que nos permitir$ crear ap!icaciones mu!timedia ricas que se e4ecuten de +orma nativa en Windows .,one) con una inter+ace creada en BA*D& ()A for Windows Phone a su vez se "asa en B:A para Windows) se trata de una so!uci n *u!tiscreen 8B"oC) Windows) Windows .,one9 2% 1 F% para crear 4uegos con ca!idad pro+esiona! en nuestro dispositivo& Estos +rameworOs se e4ecutan so"re un sand"oC de &:E< que !es +aci!ita e! acceso a! ,ardware) sensores) a!macenamiento) !oca!izaci n) etcP Esto quiere decir que nuestras ap!icaciones nunca tendr$n acceso nativo a! sistema 1 siempre se e4ecutar$n
ais!adas de! sistema 1 entre e!!as mismas) no pudiendo compartir espacio de a!macenamiento ni ning;n otro tipo de in+ormaci n a no ser que usemos servicios eCternos en !a nu"e para e!!o& Con !a nueva versi n de !as ,erramientas de desarro!!o para *ango 8Windows .,one /&59 se a"re !a posi"i!idad de tener ap!icaciones miCtas) que usen 0i!ver!ig,t para !a inter+ace de usuario 1 B:A para gr$+icos F%) creando una eCperiencia de usuario m$s rica 1 comp!eta&
Descargando el SD
.ara comenzar a desarro!!ar ap!icaciones en Windows .,one necesitaremos descargar desde !a we" de *icroso+t e! Git de %esarro!!o de 0o+tware 80%G por sus sig!as en ing!es 0o+tware %eve!opment Git9 que inc!u1e todas !as ,erramientas que podemos necesitar para crear una ap!icaci n para Windows .,one *icroso+t Visua! 0tudio 20'0 para Windows .,one *icroso+t ECpression #!end para Windows .,one Emu!ador de Windows .,one App!ication %ep!o1ment Windows .,one %eve!oper Negistration .odemos descargar e! 0%G de desarro!!o de Windows .,one / desde !a siguiente UNDh!!p://crea!e.%sdn.co%/en#us/ho%e/ge!!ing*s!ar!ed donde podremos encontrar) adem$s de !as ,erramientas) !as ;!timas actua!izaciones de! 0%G e instrucciones so"re su insta!aci n 8(igura '&59&
En e! momento de escri"ir este !i"ro se encontra"a disponi"!e dos 0%G distintos) e! esta"!e de !a versi n /&0 1 !a primera "eta de !a versi n /&') usaremos esta ;!tima versi n en todo e! !i"ro pues nos permite desarro!!ar para Windows .,one /&0 1 *ango& Una vez que ,a1amos descargado !as ,erramientas) e! proceso de insta!aci n es mu1 senci!!o) aunque puede !!evar un tiempo considera"!e en +unci n de !a ca!idad de nuestra coneCi n a @nternet) e! insta!ador se compone so!o de un !anzador que ocupa a!go menos de '*" 1 descarga todos !os componentes que necesite durante !a insta!aci n) necesitando en tota! a!rededor de 2F0*" 8(igura '&59
Una vez terminada !a insta!aci n de"emos descargarnos !as ;!timas actua!izaciones de !as ,erramientas de desarro!!o 8en e! momento de escri"ir este !i"ro !a actua!izaci n de EneroL20''9 que adem$s de corregir "ugs aEaden !as siguientes ,erramientas WPConnec!: Windows Phone Connec! nos permitir$ depurar ap!icaciones en un dispositivo +?sico sin tener e! so+tware Aune de sincronizaci n activado) anteriormente)
a! intentar depurar ap!icaciones que ,iciesen uso de !as A.@s de sensores teniendo Aune iniciado 8indispensa"!e para !a depuraci n en dispositivos9 se produc?a una eCcepci n de seguridad) por !o que con esta ,erramienta podremos e4ecutar 1 depurar este tipo de ap!icaciones& Cap-e!ec!: Capabili!0 -e!ec!ion 1ool nos permitir$ detectar !as capacidades especia!es de! te!=+ono que requiere nuestra ap!icaci n 8como coneCi n a datos o !oca!izaci n9 1 reemp!azar !as creadas por de+ecto) todo e!!o sin tener que editar manua!mente !os arc,ivos de con+iguraci n&
%esde esta ventana principa! podremos crear un nuevo pro1ecto de 0i!ver!ig,t para Windows .,one / o B:A 5&0 para Windows .,one /) am"os usando como !engua4e CQ 8+igura '&89) pu!sando so"re e! !inO 2:ew .ro4ect3 o en e! men; (i!e R :ew R .ro4ect&
Nota: En el momento de escribir este libro el soporte para Visual Basic.NET se encuentra todava en desarrollo y no admite todas las caractersticas de Windows Phone. Por todo esto, este libro desarrollar todos los e!emplos en "#.
Ma que este !i"ro est$ dedicado a 0i!ver!ig,t) nos centraremos en !os di+erentes pro1ectos que podemos crear con esta tecno!og?a) de4ando a! !ector que investigue !os pro1ectos de B:A si as? !o desea& %isponemos de 5 tipos de pro1ectos di+erentes en 0i!ver!ig,t para Windows .,one Windows .,one App!ication Windows .,one %ata"ound App!ication Windows .,one C!ass Di"rar1 Windows .,one .anorama App!ication Windows .,one .ivot App!ication Windows Phone "- 7raphics Applica!ion 8 Windows Phone Audio Pla0bac9 Agen! 8 Windows Phone Audio &!rea%ing Agen! 8 Windows Phone 1as9 &cheduler Agen! 8
*Estos proyectos solo son compatibles con dispositivos que ejecuten la nueva versin Mango del sistema operativo
Nota: $ntes de e!ecutar, debemos cerciorarnos de tener conectado nuestro tel%&ono de desarrollo y 'une o WP"onnect iniciados, o seleccionar (ue se e!ecute el emulador de Windows phone en el combo (ue tenemos disponible a tal e&ecto.
Dos pro1ectos a !os que tenemos acceso son !os mismos que en Visua! 0tudio 20'0) no so!o se !!aman de !a misma +orma) Visua! 0tudio 20'0 1 ECpression #!end 5 comparten e! mismo +ormato de pro1ecto) por !o que podremos crear un pro1ecto en Visua! 0tudio 20'0 1 a"rir!o con ECpression #!end 5 1 viceversa) tra"a4ando en am"os entornos so"re e! mismo pro1ecto sin ning;n pro"!ema& %e ,ec,o) a! tener !os dos insta!ados en e! mismo sistema) se detectar$n mutuamente) desde ECpression #!end a! ,acer c!icO derec,o so"re un arc,ivo BA*D) C0 o V# tendremos una opci n en e! men; conteCtua! 2Edit in Visua! 0tudio3 8Editar en Visua! 0tudio9 que autom$ticamente nos a"rir$ e! pro1ecto en Visua! 0tudio !isto para editar e! arc,ivo se!eccionado) una vez ,ec,os cam"ios) so!o con guardar 1 vo!ver a ECpression #!end !os cam"ios se cargar$n autom$ticamente) de !a misma +orma) si se!eccionamos un arc,ivo BA*D en Visua! 0tudio tendremos !a opci n en e! men; conteCtua! 26pen in ECpression #!end3 8A"rir en ECpression #!end9 que se comportar$ igua!) podremos rea!izar cam"ios 1 a! vo!ver a Visua! 0tudio este !os detectar$ 1 !os tendremos disponi"!es&
Nota: Para poder invocar a Visual )tudio desde Blend y viceversa, debemos e!ecutar las aplicaciones con permisos elevados *+un as $dministrator , E!ecutar como $dministrador-, de lo contrario recibiremos un error indic ndonos (ue necesitamos elevar los permisos.
Esta integraci n 0ide "1 0ide de Visua! 0tudio 1 ECpression #!end nos a1udar$ a rea!izar ap!icaciones visua!mente impactantes de una +orma natura! 1 simp!e) integrando !o me4or de una ,erramienta dedicada a! desarro!!o 8Visua! 0tudio9 con otra dedicada a! diseEo 8ECpression #!end9&
.odremos !anzar e! emu!ador desde @nicio R .rogramas R Windows .,one %eve!oper <oo!s R Emu!ador de Windows .,one& <am"i=n podemos indicar!e a Visua! 0tudio que deseamos usar e! emu!ador para e4ecutar nuestra ap!icaci n) desde e! com"o de target de 0i!ver!ig,t que encontraremos en !a "arra standard de ,erramientas 8(igura '&'29-
Aunque nunca reemp!azar$ a prue"as en un dispositivo rea!) e! emu!ador de Windows .,one nos va a permitir de +orma senci!!a pro"ar inc!uso ap!icaciones que dependan de !a !oca!izaci n o que usen !os sensores) como e! ace!er metro de! te!=+ono& En !a "arra de "otones de! emu!ador) e! ;!timo de e!!os 8RR9 8(igura '&'F9 nos permite acceder a !a panta!!a de ,erramientas adiciona!es-
En estas ,erramientas tendremos acceso a un simu!ador de H.0 que nos permitir$ crear rutas 1 puntos que se enviar$n a nuestro emu!ador como datos H.0 rea!es para que nuestra ap!icaci n pueda usar!os 8(igura '&'59-
<am"i=n tenemos una ,erramienta que nos permitir$ emu!ar e! comportamiento de! ace!er metro en nuestra ap!icaci n) con un mode!o F% de! te!=+ono que podremos girar como deseemos 8(igura '&'59-
0eria!izaci n B*D <am"i=n eCisten di+erencias en cuanto a !os contro!es soportados en 0i!ver!ig,t para Windows .,one) eCactamente) !os siguientes contro!es no est$n soportados-
6pen(i!e%ia!og 0ave(i!e%ia!og Ca!endar %atagrid %ate.icOer (rame Hrid0p!itter Da"e! .age 0cro!!#ar <a"Contro! <reeView <ampoco tenemos soporte para de!egados as?ncronos) por !o que no tendremos acceso a !os m=todos #egin@nvoOe 1 End@nvoOe) como e4emp!o este c digo no est$ soportado en 0i!ver!ig,t para Windows .,oneAsyncCallback callback = new AsyncCallback(result); callback.BeginInvoke();
<am"i=n tenemos que tener en cuenta que 0i!ver!ig,t para Windows .,one usa e! parser BA*D de 0i!ver!ig,t F) no e! de 0i!ver!ig,t 5) por !o que !a siguiente eCpresi n) que es v$!ida en 0i!ver!ig,t 5 no !o es en 0i!ver!ig,t para Windows .,one<Button>Hola</Button>
Nota: En la actuali.aci/n a Windows Phone 0an1o ya se incluye el parser de )ilveli1ht 2 en )ilverli1ht para Windows Phone, por lo (ue las anteriores e3presiones son ambas v lidas en esta nueva versi/n.
0a!vo estas di+erencias) nuestro c digo 0i!ver!ig,t F ser$ casi comp!etamente compati"!e con Windows .,one&