Revista DotNetMania Num 98

You might also like

You are on page 1of 52
Cees Come Pel or Cn een eee er De a a tee Pee A ee ee eed Cea oa | céofianza. UM ee loo ol le li acolo) Pe tcaee ee aee ee Oe Meee eee Seno ee uae eee ees ce eu Ee ce ase ae eae LSC 5 Porta’ CoCo) Peas Partner Editorial Bienvenido al numero 98 de dNM, correspondiente a diciembre de 2012 finales del mes de octubre, cuando nuestro ejemplar anterior ya estaba en imprenta, Se produi el lanzamiento oficial de Windows Phone 8 por parte de Microsoft, y para que puedas comenzar a sacar partido inmediatamente a tadas las novedades que esta nueva version pone a disposicién de usuarios y desarralladores, este mes describimos amplia- mente tanto las Caracteristicas generates de los teléfonos que ya han salido al mercado Y del sistema operativo en si, en la seccion Actualidad, como todas las novedades que presenta el SDK del nuevo sistema operativo, que vio la luz simulténearnente, a través de un completisimo articulo de Josué Julian Yeray Ferreiro, que ocupa la partada (y doce paginas} del ejemplar de este mes. A pesar de la baja cuota de mercado de que aun dis- pone, las noticias que hemos podido leer recientemiente con respecto a la aceptacion que esta recibiendo Windows Phone 8 y los teléfonos que lo incarporan son muy alen tadoras, Con la llegada de noviembre, no decayé el ritmo de noticias y eventos, sino todo lo contrario, y ain se anunciaron varias otras novedades; de todo ello te informamos en detalle en las secciones carrespondientes Y eso que aqui nos centramos estrictamente en las noticias técnicas; porque se produjeron también otros sucesos que han dado y se guirén dando mucho que hablar, como la sustitucién de Steven Sinofsky al frente de la division de Windows de Microsoft por un equipo fornado por dos mujeres, Julie Larson- Green y Tami Reller, 3 quienes desde aqui deseamos toda la suerte del mundo [el fone roa de la portada es nuestio particular homenaie a elias. Pero dentro atin te offecemos mucho més, que esperemos sea de tu agrade. En par ticular, este mes damos inicio a una serie de cuatro articulos dedicados a las précticas re comendadas a la hora de implementar algo tan importante para la casi (otalidad de nuesiras aplicaciones como es la capa de acceso a datos, a cargo de dos especialisias de reconacide prestigio en esos temas que retoman este mes a nuestro medio, Enrique Catala y Entique Puig, de Solid Solo me queda, estimado lector, desearte unas felices Navidades y un feliz y prospero aio 2013, leno de nuevos retos y éxitos profesionales; y al mismo tiempo, agradiecerte tu fidelidad a nuestro humilde medio, que es sin lugar a dudas lo que nos lleva a seguir aqui mes tras mes. iNos vemos en 2013} Vl Paco Marin Editor de aM Qe: 100 Emeric Ente elas 30 de octubre y 2 de noviembre. en Recmond, Washington, tuvo lugar conferencia Buld 2012, este a centrada akededor del desarola para le diferente que Microsoftha sacado a esta a punt e desarrollo dispon) ies para prod bien reprecentad ia nube de esta nuev 1628 eae wee e tecnologias de d Ina gran cantidad de iesvelo inversione: rovittos @ Por Josue Yeray Julian Ferreico fe un cambio a3 y emuladores, iy cambios en las @istentes, od stces, dando un ee ees tor aiiseaciny tani al ureter Ecc ssercinesypblildsd Pedocén netalia LuisMaet Bie: a Feira Licks ble ‘Aden clabren en ste nero Tes yeni Patvacnadore que sportn contenido 2 ana dM ometsines hp imsnnpaaet Gy reno tcebookcom/natalines Gd neg fwerevimec.com/nettia aa (Gi enetaines sbsast —-M3.075-2004 TE (34)91886 7477 @ sericcres 3 fee an Ca Por Fernenco Es a yue Puig Novselles ie Befurs y Enric Por enrique Cal 49 oes Pa ON! El pasado 29 de octubre {cuando ya nuestro ejernplar ante Hor estaba en impenta}. Microsoft present oficialmente Win- dows Phone Ja version mas reciente delsistenia operative parateléfonos movies de a empresa, Windows Phone 8 ofe ce una experiencia de utlizacién verdaderamente personal, ‘conectando al usuario con las personas y cosas que mas le imporan, Como parte del anuncio, Microsoft desvelé nuevas car teristicas del producto, asi como numerasos detalles rela luc con aque Visual Studio mues valapaghi ene destader Tale i cas plans en especial a de Windows También tenemos novedadesencuan- Phone Data-Bound App, que ahora Co alostpos de proyecos que pode- ademas deiear dato de ejemplo nos mescrewconelSDKdeWindows Pro- ceaunaestucurabesadaenelparon Shee meey ed Tpe Aeheaesieecrey SESS Figure 7, Resutsdos de monitorizadin de apkesciin eo ne 8.A.los tipos de proyectos yacono-_ MVVM |implementado can muy poca = Cidos de la version 71 se han sumado _elegancia,en mi modesta opinién, pero algunos nuevos: es un avance}. rae ae Algunas otras plantillas solo seran_ rae a + Windows Phone HTMLS App, que —_validas para aplicaciones que tengan Ciptodsplay =) nos permitird crear aplicaciones basa- como destino la version 7X del siste- Zao a das en HTMLS alojadas en un con- ma operativa, como puede sera plan {ol de navegador (web browser).No tila Windows Phone XAML and XNA. estamos ante una solucién nativa App. XNAhasido eliminado en la ver- Adicionalmente, se ha mejorado y coma la que tenemos enlas aplica-_si6n 80 del sistema, y esta plantilla ampliado la herramienta de andiisis de cones Windows Store de Windows —_solonos serviré para terminales con la aplicacién, que ahora incluye un moda 8, sino ms bien ante una forma de —_versién 7X. Si queremos desarrallar cde monitorizacion que nos da informa- crear aplicaciones Windows Phone una aplicacién que haga uso de gréfi- ion precisa sobre el comportamiento _cuyo contenido esté definido princ- _cos.en 30 para Windows Phone 8. la de la misma (figura 7): datos descarga-_palmente en HTML unica opciénrecae sobre la plantila de dos y subidos consumo de bateria,maxi- + Windows Phone XAMLandDirect3D —Direct3D. ma memoria consumida, cansuma App. Con esta plantila de proyecto, Algo que nataremos en todos los medio de memoria, tiempo de inicio, _tencremosaccesoacédiganativade proyectos destinados a Windows Pho- entre otras indicadores, Direct30 mediante interoperabilidad. ne B es que se incluye por defecto un. rs ® archivo de recursos para que podamios ‘empezar a localizar nuestras aplicacio- nes en varios idiomas. Uno de los grandes cambios en Win: dows Phone 8, y quizas el mas polemi co, se localiza en la parte relacionada con las emuladores Para Windows Pho: ine 7X teniamos dos emuladores, cuya unica difer memoria RAM que requeria cada unc de ellos, De esta forma, podiamas emu lar dispositivos normales 0 equipados con baja memoria (256M) En esta nue- va versién de! SDK contamos con cua: ia era la cantidad de 10 emuladores distintos (abla I + En primer lugar,nos encontramios con elemulador WGA de S12 Mb de RAM y 480x800 pixeles de resolucién Basi ificaciones de memoria y resolucion que cualquier dispositive Windows rene, tiene las mismas es Phone 7X pasandoa ser en este caso celemuladar para dispositives de baja memoria + Acontinuacién, tenemos el emulador WGA normal, que a diferencia del anterior incluye 1024 Mb de memoria RAM, y podila emular dispositiv ‘coma el Nokia Lumia 820. + Entercer lugar enconkramos el emul emuladores que conservala mismarels- cidn de aspecto que los anterior ultimo, tenemos el emulador HD 720P, con una resolucién de 720x1280 pixeles. Es e! Unico de los ‘cuatio emuladares que cambia su ela cién de aspecto, pasando de 15 a 916. Lime cambio [el dela relacion de aspecto) es importante Podemnos ver una muestra de los tres em la figura 8. Si nos fijamos en la figura, vveremos que tanto el emulador WGA, (480x800 como el WXGA (768x1280) mmuestran exactamente la misma inf rmacién en pantalla mientras que el emu- lador 720? muestra un poco mas de nformacién vertical podemos 020" del tile de fo importance adaresen axzzp © tener esto en cuenta la hora de desa rrollar una aplicacién Windows Phone 8.A\ cambiar larelacién de aspecto, las imagenes, sobre todo las que se colo quen a pantalla completa, se deformar s det con qué resolucién estamos ejecutén Es importante que intent donos y cambiemos las imagenes en consonancia. Para saber esto, padernos examinar la propier nstancla de Hest que podemos encontraren Application Current. Host. Esta propiedad puede tener tes valo res 100, 150 y 160. Un factor de esca lado de 100 indica que la resolucién de 480x800 .El factor 150 indica quela resolucion es de 720x|280; mientras ue el factor 160 indica que la resolu cidn es 768x1280 ScaleFactor de dor WXGA con una resolucién de 762N1280 pixeles Lointeresantedeesie eae Memoria ere WVGASI2MB.—512MB 480x800 915 WGA lo2aMe 480x800 915 WXGA, lo2aMa, 7768x1280 915 720 1o2aMie 72081284 916 hetps/ iw geeks.ns/blogs/yeray ON 8 de sus versiones Pero si queremios eje- public enum Resolutions { WGA, WGA, #0720 }; Suet lasemubaderes.e Wincowa no ne 8 necesitaremos al menos un Win- pele state cles ties eon @ POSER OCH ERSESES SE private statle bool 1siMea() porque los nuevos emuladores se eje- { cautan sobre HypetV (son maquinas vir- 5 lr lois aren tos cate Seaefacan we 8; tales) Adem ve es necedioremos ue nuestio procesador admiza instuc- private static bool 1sGA() ciones SLAT, cuyo soporte completo se © eeurnsptcat on. caren. tst canter. Sealetactor incluye en os procesadores Phenom de } AMD y los 3,15, 7 0 superiores de Intel Sitenemos un procesador anterior los indicados fos emuladores no funcionarén, return Appl ication. Current. Host Content. ScaleFactor == 158; yy nuestra nica opcion sera probar utii- y ando un dispositive fisico, public static Resolutions GetCurrentResolution() Enbereies citer arb) temos acceso.anuews atgjos detedlado, 4€ (TsivX()) quenos permit probarmas siuacinnes salu ‘ case (rs) enelos Podermas eos en|ataba2. Cees Esta es ova de las areas que ha sulrido edo 1, Detecciin de resolucien tun cambio muy necesario, En Windows, Phone 8 tenemos un nuevo contral de private static bool 15728°() Podemos crear un helper en nues. two cédigo que nos ayudea obrener qué ior resolucién usa el dispositive que nos sid ejecutando Esto solo tenemos que A antes comprobarlo una vez al inicio: los ais. Fi [presionada) ‘Aplicaciones suspendidas positivos no pueden cambiar de reso- F2 Pantalla de inicio. lucién arbitrariamente. Se puede ver un 5 Bing Search siempe coe oe H. se = cae ‘omo poderios observa también en lafigua enesta ocasién notenemosun ES Sub Gear. ‘emulador con el sistema operative “capa- ie popetii ncefiel pantalet <0" sdlocon tere Expire, Ahoratene- mmosel sistema operat completa ypode- mos configura cuentas yjugarcon todas las posibidades de sistema eal Teble 2. Atajos de teciede del emulador ‘Algo que tenemos que destacar Es importante destacar en este punto que los requisites deHyper\, SLAT y del emulador y que ha generado bastante Windows 8 Profesional son unicamente para.el emulador. El SDK coma tal polémica desde llanzamiento del SDK I. funcionard en ualauiersisterna equipado con Windows® siempre ycusn- es su curva de entrada. Los requisitos deecs eed iminimas para instalar el SDK son pose- er unWindows 8 de64 bits en cualquiera @» mapas que sustituyeal controldeBing Maps, que todavia esta disponible, aun ‘que solo por motivos de compatiblidad alpottar aplicaciones Siempre quenos ssea posible, deberemos usar el nuevo controle mapas de Windaws Phone 8, Entre otras mejoras, como el hecho de ser totalmente vectorial per imitr usar mapas sin conexion directa fa aplicacién, este con ral usa datos de NAVTEQ facilitados por Nokia, Su uso es igual de sencillo, ‘© aun mas, que el antiguo control Ging Maps. Simplemente deberemos aftadir ensam. al proyecto una referencia Figure 9. Cental de mapas con eaiteios en 30 lado Microsoft. Phone.Naps y agregar el espacio de nombres Microsoft Pho ne.Maps Controls al XAMIL dela pagina donde queramos colocar el mapa, y 2 continuacién afadir un element con las opciones deseadas (Istada 2} Antes de poder ejecutar ia aplica cidn, en el editor de manifiesto debe mos incluir [a capacidad 10_CAP_MAP.El resultado del cédigo del listado 2 lo podéis ver en la figura 9. Un mapa en 9 carretera, can el 200m que ‘Grid x:Wane="LayoutRoot” Background="Transparent"> « Centers"43. 26408, -2.92643" ori Figure 10, Resufada de ie ratacin del maps indicado y con jedificios en 3D! Estos edificios en 30 se obtienen al habiltar la propiedad LandnarksEnabled y cuan joel zoom es igual a17 superior. Adi Cionalmente,pademosrotar el mapa en tues dimensiones, usando las propieda jes Heading y Pitch que el conitol incor ora, tal y coma se muestra en el ista do 3. Esto nos afrece un resultado espectacular (figura IO), que simplemente estaba fuera de nuestra alcance con el antiguo control de mapas de Bing, Cabe destacar ademas que en las figuras 9 y 10 no estamos viendo una Ciudad de Estados Unidos, que suelen tener mayor informacién disponible. Estos mapas son del centia de Bilbao, yen ellos tenerios inforrnacidn de calles, restaurantes, transporte publico, edi ON @ cios en 3D... Ahora podemos crear apii- caciones que hagan un verdadero uso de los mapas de la plataforma En combinacion con los nuevos mapas, también tenemos un cambio muy importante en la API de geo-ocalzacion En Windows Phone 7 siqueriamos ea- lizar un sequimiento (racing) constan- te de la posicién del usuario, tenlamos que pedir autovizacién al sistema para que nuestra aplicacién siguiese activa incluso con la pantalla de bloqueo. Esto funcionaba en el 80% de los casos. Mas an, si por etror o necesidad, el usuario cambiaba a otra aplicacién, dejsbamos de ecibirdatos del GPS pues,en el mejor de las casos, nuestra aplicacion pasaba ‘a modo “durmiente" (dormant) Las tare as en background na eran una opcisn, porque su intervalo de ejecucién era demasiado alto. En Windows Phone 8 podernos indi car quedeseamos sequirrecbiendonai ficaciones del GPS aunque nuestra api ‘cacion no se encuentre en primer plano. Elctdigo para recbirnotificaciones cuan- do elusuatio cambiesu posiciénes muy parecido al de Windows Phone 7X {lis tado.4}.Con este cédigo,cadavez queel Usuario camibie de posicisn en msde 20 metros, se lanzaré el evento Position (Changed En nuestra mariejador recibire mos la posicién geagréfca, incluyendo lattud,longitud,alttud y si esta disponi- ble, la direccién (ciudad, calle, nirmero}, ‘Antesde ejecutar debemos asequramnos de afadirla capacidad 1D_CAP_LOCATION a nuestro manifest. Geolocator locator = new Geclocator() locator.Desiredtccuracy = Position's locator.WovenentThreshald = 20; Para que la posicién siga lleganido- nos aunque el usuario camble de apli cacién, debemos editar el manifesto. Buscaremos el nodo Default Task y lo completaremos como se puede ver en ellistado S.Con este XML, nuestra apl- cacion seguid ejecuténdose aunqueno lesté en primer plano Es importante que tengamos en cuenta que no es solo el evento Positionchanged lo que sequid ejecutancose, ser todallaaplicacién Lo conveniente serla poder saber cuando hemos pasado al background para cor- tartotioslos procesosnno necesarios para el seguimiento de pacicién: timers, ani aciones, sevicios,etc, y saber cuando ‘volves a estar en primer plano para activar de nueva todos estos process, Para esto tenemos en la clase App un evento lamado RunningInBackground, en el que podremos cancelar los procesos y registrar en una variable que estamos fen segundo plano, Cuando la aplicacién, vyuelva a primer plano, recibiremos el evento Activated y podremas compro- baresa variable privada para volver a act var todo lo necesario. Windows Phone 8 viene cargado de nuevas funcionalidades que incremen- tan en gran medida la capacidad de comunicacién de nuestras aplicaciones con/a inclusién de una API para el uso de Bluetooth, soportando escenarios de trabajo App to App o Appto Device, asi ‘como de una API para NFC con sopor te para conexiin a dispositives, aqui que incrementan en gran medida la capacidad de comunica- Windows Phone 8 viene cargado de nuevas funcionalidades cién de nuestras aplicaciones DefaultTask Nane="_default* NavigationPage="hainPape.xenl”> ackgroundéxecution> ion nutra de datos ala pantalla de blo- eye Gres ae ria ie lac Tomes re rentes:establecer la imagen de fondo, ican colocar el icono de nuestra aplicacién Eheilisiaeiuaeane en la pantalla de bloqueo, anadir un ‘asLarge> contador al icono y establecer un tex: « tenia pantalla Tanto el texto como el contador se «Extension ExtensionNane="Lockscreen Notification Iconcount™ ‘ConsuerID="{2210FF24-0415. 4496 8006-28FF#122084F)* cobtendrénideltile principal dernuesta ap cacién En el caso del icono, solo tendre: mos queear unaimagen PNG de 24x24 TasklD="_default” /> ixeles que se lame LockIcon.png, est@ «Extension Extensionkane="Lockscreen Notification Textrield”™ imagen debe contener solo pixeles bian (ConsuerID="(2210F2¢-ANIS- ai B0e6-28FF122084F)* cos y transparencias. Para que en la TaskiD=" default" /> pantalla de bloqueo se muesre la infor- macion de nuestra aplicacién, el usu icteric Veale eS ea teen|a configuracion del sistema y para aparecer en la lista de aplicaciones soportadas, tendremos que moditicar fl cextension ExtensionNane="LackScreen_ackground” uestto afchivo WédppMané fest xml. 2 Consumer ID="{LLIDFF24-A5-4496-5096-28FF8122084F)" mano, afadiendo una seccién Exten- Searle sions bajo la seccién Tokens y afa- diendo el icono al elemento Device- hth oN zi) nee November 6 Tuesday November 6 private asyne vold Setvallpaper() { Urs mageund; nuesive eptcacen InageUri = new Uri('ns-appx:///Darthvader. png", Kind, RelativeOrAbsolute); try { bool isProvider = if (IisProvider) { var op = avale | isProvider = op = } if ({sProvider) indows.Phone.systen.UserProfile. ) ) Cateh (Systen.Sxception ex) ( } } gobox.Show(ex. Tostring())s -1sProvidedByCunrenttppLication; Requestaccessasyne(); uestesult Granted een, Setnageld(ImageUri); gen de no lo somos, lamamos hemos definidola ex ‘en_Background, esta llamada producira ‘error de acceso denegado Saher efi rectamente, sen usuario un mensaje indicando quella ap cacion desea cambiar la imagen, y si el usuario acepta, se establecerd nuestra aplicacién coma proveedora y se ¢: atdla imagen de la pantalla de blaqueo eee ea eee) © protocol Windows Phone 8 nos permite deciarar siones de archives que nuestra n puede abrir (istado 10). Podemos defin ciferentes imagenes que se usaran enbHAppHanif las archivos de ese tipo, el pal que se nos enviaré cuando nos active desde un archivo, la ay el nombre. jensién concre- iar nuestra aplicacién con un protoco ‘cualquier aplicacian haga uso de una JRI con un protocolo al que nos haya mas asociado, se lanzaré nuestra apl cacién para ge: 1).Siunusua cacion escuchando al pr au cacién, mientras que sitiene més de una, tendré que ar en cada ocasiar Ee rece emasehan de esta forma, cuando ;ocolo indica nuestra apl o,selanzara dire -ager manualmente cual En esta nueva version del: ahadido seislanzadares (Launchers) un nuevo selector (Chooser) a la caleccién, sn Windows Phone 7X, que sigue estando totalmente disponible existente Enel Mundo tecnolégico existen muchos caminos. Blackslot te muestra E] MAS FACIl de recorrer. ‘Wate itera: Le le< elma) EERO 72 8 + Para empezar, tenemos nuevos lan Alla mar al metodo Show, se mastrara (exteasion. la ctaen|a vista de creacién dela api madifcar los datos, quardar la cta 0 genes (listado 13}, NavurdFragrent="encodedL aunchueiats . TaskID=" default” /> En misincera opinion, una de las gran «extensions» cdesmejoras en Windows Phone 8,quizis junto con los mapas y la geo-localiza- cidn en segundo plano, es la inclusion de diferentes API de recanocimiento y Logos? zadores de mapas A los ya conocidos private void Addippointnent() BinglapsTask oBinglapsbirections- ff Task se han afadido MapsTask Maps Savetppointnent Task savetppntnnt = new SavesppointnenTask(); DirectionsTask MapDowloaderTask y savelppointnent Subject = "The Final day oF earth; HapupdaterTask. En el caso de Maps eae Us ea eae ana savehppointnent.Details = "Oops"; Task y Minette ioe ask il es ce saveappointment .IsAllDayEvent = true; ‘exactamente el mismo que el de los savetppointnentReninder = fen. Onebays antquos lanzadores deBing siendola savetppointnent StartTine = neu D2Tin=(2@12, 12, 21)5 nica diferencia elhecho de que hacen saveAppointnent ,EndTine = new Deter ine(2@12, 12, 22); uso de fos nuevos mapas de Windows Phone 8 Por su parte, HapDownloaderTask y MapUpdaterTask permiten que, alla ‘mar a su metodo Show, se muestie la aplcacion de configuracién de mapas savetppolatnent Shox(); para descargar un mapa o actualizar uno ya descargado,respectivamente. SharsiediaTask shareMedia = new SharwtediaTosi()s + Ademas,nos encontramos con un ff shareledia. FilePath « this. selectedPhatoPath; nuevo lanzador llamado Savetppoint- ff staretedia.show(); inentTask, que nas permite crearuna cita de calendario y mostrarsela al Usuario para que la guarde [stad 12) azz» @ sintesis de woz. Enconcreco,tenemasties _simbolizaré @ nuestra aplicacion. Esto mos dirigimos. En e! nodo ListenFor areas diferentes detrabajoconlavozen es opcional,ysuele usarse paraasignar _podemos encestar un texto entre cor Windows Phone 8:comandos,conver- ala misma aplicacion diferentes nom- _chetes, lo que indicaré que es opcional sion de voz atexto y de texto a voz bres, dependiendo del idioma. A conti- En e| listado 14, para el comand news Lo primero que debernos recordar nuacién definimos comandas.Laspar- se reconoceria la frase “open dotnet- al empezar un proyecto can soporte tes mas importantes de los comandos mania and open news" y “datnetmania para voz es afiadir la capacidad perti- sonelnodoListenFor,queindicaeltex- open news" por igual nente al manifiesto. Enconcreto,nece- to exacto que debe esperar el recono- Una vez que hemos definido nues- sitarernos ID_CAP_SPEECH RECOGNITION cedor de voz, y el nodo Navigate, que ros comandos, solo debemos req)s- Siademés estamos trabajando con voz _indicalapginade destino ala que debe- _rarlos conel sistema utlizando el méto. a texto, también sera necesario 10_CAP_HICROPHONE Comandos de voz Una de las grandes mejoras en Windows Phone 8, junto con Los comands de voz hacen post. '0SMapas ylageo-localizacién en segundo plano, es lainclu- ble que los usuarios de nuestras apli- _sién de diferentes API de reconocimiento y sintesis de voz caciones ejecuten acciones mediante ordenes verbales. Estas se definen ‘cacién, por ejemplo en el método Ini ‘tial izeLanguage de Ia clase App. Con «Listenfors[and] open neus«/Listenfor> esto, nuesiros comandos estardn lists Sola necesitamos presionarel botén Ii ee pinesets ets Tee 2 cio durante unos segundos y dictar la orden que hayamos definide para que sea ejecurada « open articlesc/Example> «Listenfors[and] open articles Voz a texto Lasequnda area ena que podemos ‘ r.tanguage Fiest(); recetithUl. Recognizer. Setecognizen(recognizer); SpeeciecognitionJTResu it recoResult = avait recobithUT. RecognizekithUTAsync(); vossageton Show(recoResult.RecognitionResult Text); Es increible que, con solo tres line {as de texto, tengamos reconocimien (0 de voz en nuestra aplicacidn, Por defecto, el reconocedor usado trabaja en inglés por loquesilehablamos en otra idioma, el resultadono se ajustara alarealidad, Para evitar esta situacién, podemos buscar un reconocedaren el idioma que deseemos usando la cla se Instal ledspeechRecognizers y su propiedad ALL (listado 17), De esta for- ma, podremos cambiar el idioma del reconocedor en funcién de! idioma del usuario y offecer siempre resultados realistas. Speechsynthesizer synth speechsynthes: synth = new spec Var spanishVoice = Installedioices. All.there(iv => iv. Language = synth SetVoice(spanishvoice); avait synth. SpeakTextAsync( txtText Text); Texta a voz Textasyne de esta clase para reprodu cir un texta listado 18}. Como puede ver el lector, dos lineas de codigo es todo Ia que necesitamos para inte- Laterceray atima de las areas don- de podemos usar el sistema de voz de nev Speechs ‘wait synth, SpeakTextAsyne( txtText. Text); tests! rar esta caracteristica en nuestra aplicacin Aligual que en el reconocimiento Ge voz, el sintetizador usado por defecto es el inglés. Tenemos la opcién de cambiarlo usando la clase Instal ledvoices y la propiedad all de la misma (listado 19), De esta Forma, podremos variar la voz a usar depen- Giendo del idiama de la aplicacién 0 del sistema, si nuestra aplicacién no esta localizada, Alolarga deste atticulo, hemos hecho un repaso concienzuda de las principa les novedades que tendran a su dispo. sicion los desarrolladores que utlicen e1SDK de Windows Phone 8 para desa- nollar aplicaciones para la mas recien te versién del sistema operative para moviles de Microsoft. thesizer()s thesizerQs Firsts [1] Windows Phone Developer Center. En http://dev.windowsphone con La mejor manera de subi lows Azure 5E Wine . 7 ¥ aventiarenacimiento vewwraventia.com ea! Team Foundation Service, tu herramienta ALM en la nube En fa BUILD Conference del aro pasado, Microsoft presento, y puso a cisposicion de algunos ‘afortunados, la union de dos de sus productos estrelia: Team Foundation Server (TFS) y Windows ‘Azure. Este nueva producto pasaria a conocerse coma Team Foundation Server an Azure 0, simplemente, TFS Preview. Ahora, un afta después, y volviendo 3 aprovechar el mismo evento, Microsoft present le versién definitive, con el nombxe final de Team Foundation Service. ‘Team Foundation Service es un nuevo servicio ‘de Microsoft en el que se nos proporciona la herra- mienta de gestion de ciclo de! vida de apiicacio- ‘nes TFS bajo la modalidad de SaaS Software as a Service), como muestra a Figura | Esto quiere decir que, para poder beneficiarnas dellas venta jas de usar esta herramienta, no tendremos que pagar por diferentes licencias, ni montar nuesta propia pequefia grania de servidores 0 pasar por luna serie de cediosos procesos de instalacién de esta gran herramienta de gestion del ciclo de vida de las aplicaciones. Preview vs. RTM ‘Aparte de los usuaries invitados hace un af, durante este verano se abr el acceso a TFS Pre- view sinnecesidad de una invitacion previa. Aque- los que ya conocieran el servicio y también los 7 ——— Bastaré can darnos de Dessrlaixepecaiaibeniemoages fA enunapaginaweb, MisotenPasonaConing, ytendremos a nuestra alcance los beneficios que estén uséndolo en este mamento, lo prime- ro que tendrdn que tener en cuenta es que ha cambiado la direccién de acceso al mismo. En lugar de usar wm. tfspreview.con, ahora debe- mos acceder ala pagina principal en la direccion ts. visualstudio.com Asi mismo, si antes teniamos nuesta sitio de TFSeen una cireccion tipo X.tfspre- view.com, debemos saber que ahora lo encontraremos en X.visualstudio,con En cualquier c280, hay que sefialar que las drecciones antiguas se consenvaran unos meses para dar un margen a que los usuarios puedan cambiar sus con figuraciones La mayor ventaja de que el servicio se encuentre en procuccién es que pasa a tener soporte a larga plazo Los datos que aimacenemas en el mismo estan seguros, y el personal de Miciosoft ha sido formado para poder prestar ayuda alos clientes que lo precisen Es decir, que se haya publicado la version RTM significa que el sevicio esté 100% listo para su uso en entomos de produccién, Pero altima consecuencia de esta lberacién no hard feliz a todo el mun: do; y es que Team Foundation Service dejard de ser completamente gratuito, Labuena noticia al respecto esque, por ahora solo serendira que pagar cuando elservicio sea utlizado por equipas de ms de 5 componentes. Ademis, los suscriptores de MSDN conlicencias Pre- miu, Utimate 0 TestPro podran dis- frutar de producto completo sin limites Team Foundation Service permanecers ratvito para equipos de hasta 5 miem- bros con todaslas caracteristicas actua- les disponibies. Untema a tratar aparte es la ejecu: cidn de process de build, todavia en version preview, Actualmente encon- traremos este servicio disponible para todos los usuarios sin ningin tipo de limite; pero, de cara al futuro, se espera ‘que solo est disponible una cantidad liad de horas de proceso al mes para estas actividades. Evidentemente, las ‘uentas de suscriptores MSDN tendrén 2 su disposicion un mayor numero de horas que las de los usuarios en moda- lidad gratuita. Que se pretenda poner Un limite 0 un precio a esta caractersti- aes consecuencia directa del gasto ‘que puede suponer una elevada canti- dad de horas de proceso, por lo que podemos imaginar que serd una accion ‘mas temprana que tardla, antes de que pueda ser demasiado elevado el gasto, Por Ultimo, las personas que no tengan su dispasicién una suscripcién de MSDN, pero quieran disfrurar de este servicio sin limites, no tienen por qué preocuparse. Se espera que el afio que viene aparezca Lina modalidad de pao, de la que alin no tenemos detalles, Groce ane ‘Al estar hospedado el servicio en Win: dows Azure, podremos aprovecharnos de las ventajas que nos oftece esta pla- ‘aforma. Ello nos garantizaré una alta disponibilidad de los dates, su segui dade integridad, ademas de las copias de seguridad periouicas, de las que no tencremos que preocuparnos. El esca lado, cuando se nas “quede pequena" la configuracién inicial de TFS, no sera un problema nunca mas. Inicialmente, el uso de Team Foun- dation Service implicaré un menor gas: rsa reeie bo {o, ademas de un menor riesgo, al no tener que comprar e instalar hardware ylicencias de sisternas operativos. Y eso, sin contar con el software adicional que podamosnecesitar, Ademas, las actua- lizaciones seran gratuits einmediatas, sin tener que preacuparnos del mante nimiento nila integracion. De esta forma, la empresa se podta ccenirar en la creacién del software y la metodologia; na tendremos que inver tirtiempo alguna en lasherramientas y entornos, Gece Team Foundiation Service, al igual que Team Foundation Server 2012, tiene ‘como arma fundamental pata poder cenfrentarse ala competencia un solido tridente, formado por + Gesti6n del equipo y su trabajo + Control de codigo fuente + Automatizacion de bulls, pruebas y desplieques Gestian del trabajo El campo en el que encontraremos mas mejoras es en la gestidn del taba- eee — — 98, oNM ° jo.en equipo, sobre todo cuando api-- vision global al Product Owner yel _iteracién actualy gestionar los post- quemas metodologias Sgiles yen espe- Scrum Masterdelestadodelasreque- it virtuales, para marcar el trabajo cialScum Seharedisenado todoel por rimientos como en progieso o terminado. Des- tal web [figura 2), que ahora es compa- + Sprint actual, Para que el equipo —_de luego, una forma mucho mas tible con los navegadores mas moder- también saque partido de la nueva _ecolégica, aunque menos persona- nos, sacando el mayor partido posible —_plataforma,se pone asudisposicién —_lizable y vistosa de las uitimas tecnolagias web,como un fask boava (figura 4) donde se + Gestién de los elementos de trabajo. HIMLS. Pueden gestionar las tareas dela Una nueva herramienta para crear y gestionar, desde el portal web, con- ssultas sabre todos los elementos de trabajo como rareas, requerimientos, Alestar Team Foundation Service hospedado en Windows bugs mpedimentos. Estas cansuitas Azure, podremos aprovecharnos de las ventajas que nos pueden anclarse al shboord painc- pal ahaciéndolas en lista de faver- ofrece esta plataforma tos del equipo Una vez hemos creado un pro- yecta de equip, en ta nueva pina He euplee mandos nedrmenns visualzaruna vision general del esta- do del proyecto, inctuyendo una gra- fica del burndown, que nos acom- pafaré en gran parte de is vistas, ‘Ademas, podremos afaira los ele- mentos favoritos consultas de work [Sota sate items aimacenadas,quesenosmos- |S" taran de Forma numerica Para gestionareluabao,enconaa- temos tes agrupaciones cn una mul- tud de opciones nuevas y erent «que nos permirén una gran variedad de actividades Figure 3 ny eer + Gestion del backlog. Se trata de un conjunto de vistas quenospermitin aE organizar los requerimientos e ir Seen ten asignandolos en cada iteracion armas weep anne ‘Adernas, nos seriré tambien como Senate herramienta para organiza el plan de So ee un spine. Como heramientas desta cotangent cadas, encontraremas las diferentes 2 mitten ta a es gfaficas de velocidad del equipo y la de trabajo acumulado, junco con un | pig bactlog board (figura 3), que dard una @» ‘Actualmence podremos gestionar todo lo anterior usando cualquiera de las tres plantllas de procesos dispant bles: Scrum, Agile o CMMI, Aunque las herramientas estén basadas en meto- dologlas agiles, no es necesario apli- caresias metodologias en el dia a dia para sacar partido a las herramientas, y son diiles y faciles de manejar en ‘cualquier 4mbito, ‘Aparte de ver pantallas muy intuit vvas, podremos utilizar operaciones de og § crop para arrasirar diferentes ele- mentas de pantalla, organizando y prio- ‘izando el trabajo. Control de codigo tuente Dentro del control de cbdigo fuen- te, padremas manejar cualquier len- ‘guaje de programacion: desde C# a C+, pasando por Java 0 Python, Gra- clas a la extension Team Explorer (igure 5), disponible paralos IDE mas usados |concretamente, Visual Stu: io y Eclipse}, podremos tener un con- trol total, tanto anline camo en modo local, del codigo fuente de nuestros proyectos. 8G B Setter) = ed Orman Desde el portal web también ten: ‘dremios acceso a una vision de todos los archwos aimacenados en el control del cédigo fuente, ademas de poder obtener informes suplementarios, como unlistado de changesers y otto de shel- vesets guia 6) My recent changes 50 [ip frente trate 8p ersncoticom “8 eases ‘A toda lo anterior deberemos ata- dir dos nuevas funcionaldades para ver- siones de Visual Studio Premium 0 superiores: + La posialidad de lanzar un workflow de revision de céuigo, donde el resto del equipo nos podra dar feedback en tiempo real. + La nueva vista My Work dentro de ‘Team Explorer nos permitratener en una sola pantalla la informacion de nuestro trabajo actual, las revisiones de cédigo,los shetvesers ywarleitems que tenemos asignados. tamente desde el portal web (figura 7, ‘obien desde Team Explore. Podremos beneficiarnos de una maquina en la rnube para realizar estas operaciones de forma automatica (al realizar un check- ‘no todas las naches, por ejemplo} 0 bajo dernanda Dentro de estos procesos, podre- mos incluir acciones como que se evalden automaticamente pruebas Unitarias, 0 incluso realizar desplie- ‘gue continuo en servicios de Windows paue Por atimo, gracias a unas plantilas predefnidas,podemos integraras buds para que ulilicen herramientas de ter- ‘ceros,coma el compilador de Java, Apa- ‘che Maven 0 Ant para proceser nues tio cédigo fuente de otras plataformas ‘que no sean NET. Automatizacion de builds, pruebas y despliegues La gestion de builds y el estucio de sus resultados se pueden realizar direc- 98, oNM e e Se espera que, con el tiempo, todas las caracteristicas que hoy podemos encontrar en TFS 2012 estén virtualizadas y disponibles también en Team Foundation Service. Hasta entonces, es importante evaluar cuidadosamente nuestros requerimientos antes de decidimos a utilizar el servicio en lanube ‘Actualmente Microsoft esta gestionando Team Faun- dation Server y Team Foundation Service como dos proyectos diferentes que, con el tiempo, deberian onverger en un mismo praducto.Es por esta razén ue, al mismo tiempo que ctamos las caracterst- as que Team Foundation Service ofrece, no pode- ‘mas obviar sus limitaciones con respecto la version on-premises: + Laque consideremos mas importante es el hecho de que no pocremos crear plantillas de procesos propias; tendremos que usar alguna de las que vienen configuradas por defecto: Scrum, Agile 0 CMMI Esta carencia con respecto al TFS tradi- cional hard que algunas empresas, antes que adaptar sus procesos, no opten directamente por esta opcién, ‘Otro problema que podemos encontrar a ahora de migrar 0 decidimos acerca del uso de esta placafor- aes que no se puede integrar con otras servicios empresariales, como pueden ser SharePoint, Pro: ject Server o incluso System Center. Dentro de estos servicios, ampaco se puede integrar con servicios de Federacidn, razon porla cual para poder usar este producto es imprescindible disponer de una cuen ta de Microsoft Account (anteriormente conocida como Windows Live ID} Laima delas carencias que pueden hacer pocoatrac- tivaesta version de Team Foundation Service es el is tema de inforrnes. Aunque se han aadido muchas plantilas por defecto [que son muy tiles} nose sopor- tantodasia funciones de generar informes que encon- {ramos en el producta on-premises. Pero, como hemos dicho anteriommente, la idea es ‘que ambos productos converjan en uno soto, par !o que se espera que, con el tiempo, todas las carac- teristicas que hoy podemos encontrar en TFS 2012, estén virtualizadas y disponibles dentro del seivicio enia nube Hasta entonces,es importante medir cui- dadosamente los requerimientos que tenemos antes de decidirnos a utiizario, Después de un tiempo utilizando la nueva version de Team Foundation Service, podemos decir que estamos muy satisfechas can la hertamienta. Apar- te de las gtandes mejaras con respecto a la ver- sién anterior, nos ha facilitade mucho la creacién y configuracién del entorno de trabajo. Simple- ‘mente entrando en una pagina web, déndose de alta y ahadiendo a los componentes del equipo, ya teniamos lista la herramienta de ALM; después, con unas pequefias canfiguraciones mas, ya conts- bamos con un sistema de continuous integration and delivery en Windows Azure. Y eso, sin contar con lo que nos ha facilitado la creacién de dife- rentes sprints y a gestion de requerimientos ytare- as. Ademas, hemos probado satisfactoriamente el servicio en otros entomos, como MacOS, usando Eclipse como IDE y Apache Maven para la inte- gracién continua Comohemos comentado antes fos mayores pio- blemas que pademos verle por ahora a Team Foun- dation Service son Ia impasibilidad de crear una plan- tila de proceso propia y de usarlos usuarios del Acti- ve Directory corporativa, Pero si somos capaces de adaptamns a los estandares y usamos servicios como Office 365, esta no tendria por qué constituir un problema. Loque si tecomendamos sin duda alguna a todo el mundo es que,al menos, prueben este servicio. w Ree ee ae oe ee Tee ee ee rn ee ee ere et eens ere ee eet ‘evalucien. En Raona sequiras ee one enn ee ee) eee ee a) epee) 4 oe ae). ary Modis Seep raona Pe earn Buenas practicas de codificacion fara capas de acceso a datos de aplicaciones [I) En esta serie de articulos, vamos a hablar sobre los diferentes caminos que podemos tomar @ la hora de programar nuestras capas de acceso a datas, y sobre las practicas mas canvenientes a utitzar al seguir cade uno de ellos. Hemos cividido estos caminos en tres grandes blaques, que obviamente na son excluyentes y si camplementarios, realizanda la siguiente distincior: por tipologia de acceso, por patranes de bajo nivel y por modelo de desarrollo, Ue eet) En este punto nos centraremos en las dos gran- des posibilidades a la hora de afrontar e! desa. ttollo de Ia solucién a un problema en base de datos, desde el punta de vista de latipolagia de ‘acceso, Tendremnos dos escenarios posibies: + Crear la solucion a partir de una o varias con- ssultas que resuelvan nuesto problema, + Crearla solucién apattirde uno o varios cur- ‘sores que resuelvan nuestro problema Soluciones basadas en conjuntos El motor relacional ests optimizacio pararesol- ‘ver operaciones con conjuntos. A diferencia de los lenguajes tadicionales, TSQLes un lengua- je de especificacin no deciarativa,y por tanto, nosotros especificamos qué queremos obtener, perono cémo hacerlo, Esta afrmacion de forma intinseca nos est diciendo que seremos capa- ‘es de optimizer nuestos recursos i somos capa- ervique Puig Nouseles ie Caza es Nerren Sea ES MCT MAP202 EmigvePugesOaa ator Enaneeren Sale MCITP deSQU Sener yA? 2012 cesde expresarcomectamente qué eso que que- remos pedi, éPor qué no deberiamos de ser capaces de expresarlo que queremiasa SQL Server? Bueno, aqui entra en juego un paco también nuestra pro- pia habildad a la hora de pensar soluciones en Forma de conjuntos. Tradicionalmente, nuestra forma de pensar es iterativ, lo cual produce que nos sea més facil encontrar soluciones a base de expresar ideas camo lohariamos nosotros a mano. Esto es algo que aunque no queramos, o sole- mos hacer inconscientemente, y es una de las razones por las que no todas las veces somos cepaces de encontrar soluciones a nuestros pio- blemas con una o varias consults. Por ejemplo, pensemos en el siguiente pro- blema Tenemos una tabla de cuentas bancarias muy simple [figura ly queremos saber el acu- rmulado que tiene cada cuenta en cada transac- idn. Para ello, quetemos obtener la Colum acu rmulado"igura 2} con la suma acumulada de cada valor val por cadaactid (se einicia, como vernas, por cada acti). El problema viene alpensar iterativamente, ya ue corremos el riesgo de plantear una solucion pensando en recorrer fila a fila e ir sumando los resultados, para luego acabar devolviéndolos. Esto se traduciria en la progremacion del cursor ue se presenta en el stad |. DECLARE Gactid INT = -1 select actid, DECLARE Gold_actid MAT = -1 tran DECLARE Gtranid INT = 9 val DECLARE Gacunulaco BIGINT = @ Frou dbo. Accounts DECLARE val IMT = @ order by actid, tranid sO) Maeage DECLARE GtccountsResult AS TABLE actid INT Nor MULL, eta WT Mr My i: er a ee) tse la ss DECLARE cursor8a00 CURSOR READ_ONLY FAST_FORWARD FORWLRD_ONLY FOR 2 1 200 SELECT actid, tranid, val FROM Accounts ORDER BY actid ASC, tranid ASC 2 2 2 (pen cunsorBB00 = Perfonn the first fetch FETCH NEXT FAOM cursors800 INTO Gactid, @tranid, @val MILE @BFETCH STATUS = @ ESN TF (Gold actid «> @acti¢) BES SELECT Gacumlado = val, Gold actid = @actid; 0 ELSE BES SET Bacumilado += Qval; ND INSERT INTO @AccountsResult(actid, tranid, val, acumuLado) VALUES(Gactid, @tranid, val, Gacunuado); = This is executed as long as the previous fetch succeeds. FETCH NEXT FROM cursor880D INTO @actid, @tranid, val 80) acumuladas en una Unica instuccion, (LOSE cursorBa09 Permitiendo al motor de SQL Server DEALLOCATE cursor9800 mostrar todo su potencial ala hora de generar planes de ejecucién, La solu: cin anterior, expresada en forma de conjuntos, quedaria como se muestra enel listado 2. Esta variante, aparte de sser muchisimo mas elegante y Facil de entender y mantener que las 47 lineas de cédigo de nuestio cursor, esmas ef SELECT actid, tranid, val, SM (val) OVER (PARTITION BY actid ORDER BY tranid) acumilaéo cermeer in aderidemegiiue encom FROM dba. Accounts paracin con dicho cursor. SELECT * FROM @tccountsResult > Resultato esperado @ Puedes hacer la prueba de rendimiento ta mismo, insertando en la tabla, por cRealmente lasolucién aportadano mos cuenta que esta solucién pued= puede mejorarse? A poco que conaz- _optimizarse. Y es que tenemos la cléu- ‘camos el lenguaje T-SQL y nos sente-_sula OVER, con la que podemos precisa- mos a pensar un poco mas,nos dare-_ mente realizar ese tipa de operaciones ejemplo, 10 particiones con 10.000 filas cada una, Nii 6 Soluciones basedas Los cursores T-SQL suelen tomarse ‘como una solucién cuando la senten- cia que setiene que tealizares compleja de redactar. Esto es bastante comun, desgraciadamente, en muchos desa- rrollos donde ia persona encargada de codifcar piensa de forma iterativa pro- ducto de su més que probable rol de desartollador de aplicaciones dentro de la empresa (no es un desarrolador de base de datos “puro") El problema es que el motor rela- ional no esté optimizado para ejecutar codigo de tipo cursor. La razén es.que ‘SQL Server esta orientado al procesa- ienta de conjuntos, pero los cursores T-SQL estén pensados ustamente ala contrario, estan orientados al process- rmienta fila a fila; adems, ello obliga al gestora usar mésrecursos durante mas tiempo. Sin embargo, quitar un cursor no significa sustituirlo por una instruc- in WHILE: el objetivo es trabajar con Conjuntos de registro, no con ells indi viduaimente (sea cual sea el modo coma se consigue esto}. co Hay veces que se san cursores por- que la sentencia {normalmente una actualizacién en a que hay que combi- nar varias tablasparafilvaros datos) es compleja,y resulta mas sencillo para el programacior pensarlo fia af; 0 bien porque son consultas recursivas y el desarrolador no conocelos CTE (Com- hay que resolver es procedural(el ejem pio tipico es mandar un correc elect rico cada uno de los clientes que cum- plen una condicion}.o bien en los casos en los que el cursor tiene una comple- Jidad menor que la solucién basada en conjuntos (entendiendo complejidad como la minima cantided de recursos, Elmotorretacional no esté optimizado para ejecutar cédigo de tipo cursor, debido a que SQL es un lenguaje orientado al procesamiento de conjuntos ‘mon Table Expressions). En cualquiera de los casos, es recomendable volver a analizar la consulta para tedactarla en na unica sentencia La razon de ser tan categoricos en el rechazo a los cursores es porque muchas veces se aplica el patron lla- ‘mado “marillo de oro" una vez int set f-¥ sp carsoropen Gb aut, selet Saleen, Orderbate a5 uerjadpentatic HM Sales Salesdrdereader Server, sustituyendo variables escale Saal = Valor del campo Signature de 1a fila 3 declare Gp intset @pi-declare Ob intset @3-# declare Qt intsot Got-# resp" Se eee et eee: sTime: % de tiempo de ejecucién, res- select Gxt, 3, Got, Os pectoatoda a mca nalzada Been oe eer a ae Reads Keene conitaess ee We ect eae in pea isatetuenit anal Ee eee sites de escrtasceeconsuta, ‘ap endian) n Gt) sepia dale mies analzaa ahr oar verunsecrudeeonsuiaecsee Pas corsceumen wuts rca anemia snl grit eae Wace ee ae on eee declare (5 int set Oy5=# sp_cursoropen @pl output, ‘select SalesOrderID, eee ee ie eee Pa unanaisisdeatado ce coot | Se'esdaeiea i Gra) go T-SQL ejecutado en cada caso, ellis: ete eee ese select i, 63, Oot, eS tado 5 presenta los valores completos = Valor del compo Signature de 13 fila 7 ‘de los campos Signature'para caca.una select SalesOnlerID, OrderUate FROM Sales.SalesOrderteader Ge las opciones. there year(Ordertste) in (F, #) order by SalestrdertD Sianalizamostos costes obtenidos, vveremos (con valor numéricos reales) como la misma ejecucién.siselanza en mado conjunto, ealiza 706 lecturas, frente alas537539680 lecturasquese — dejaal motorrelacionalhacersutraba- _itmos);infenta que tu codigo siga ese reaizan porejemplo,alejecutar enmodo jo. T-SQLes un lenguaje de especifica- principio también, evitando el uso de de cursor estético. Este tipo de situa- ciénina declarativo (no hacemos algo- cursores en la medida delo posible. ciones son las que tenemos que tender a evita, siendo una muestra clara defo inefcientes que son, por regla general los cursores, [EI] Informacion sobre cursores en fos Libros en pantalla de SQL Servet 2012 La conclusion que podemos extta- "tnttp://technet. microsoft, con/es-es/ Library /ast80169.05px) er de este experimento es muy clara @» HTMLS5, CSS3 y JavaScript Leu SEEM Tur ToMi ete ea Ped CMe oI} Peel cane) Peta ese ae) Pee ae OMCs) Tete lt eos e SELL oP.) Pec aeons) |. Introduccion + HTMLS: La nueva propuesta + Los objetvos del estandar enla practica * El suerio de una Web Semantica + Los test + Las aplicaciones web y el nuevo modelo de aplicaciones en Windows8 + El nuevo modelo de aplicaciones Windows 8 * Hablando sobre el estandar: la opi- ign de un protagonista + Entrevista con Paul Cotton 2. Herramientas y depuracion + Las herrarientas de los navegadores + Herramientas y depuracién + FireBug para FireFox * B soporte de HTMLS enVisual Studio 3. HTMLS:nuevas etiquetas + Sintaxis general + HTMLS: Los nuevos elementos + Las ruevas etiquetas, por categorias + Mutmedia: Bementos

You might also like