Jorge Serrano - MVP Visual Developer - Visual Basic

El próximo día 26 de Enero de 2012 de 19:00 a 21:00, nuestro amigo Luis Ruiz Pavón, tendrá el honor de dirigir el primer Dojo en MADNUG (Grupo de Usuarios de Madrid – Spain).

Luis ya tiene experiencias en esto de los “Dojos”, experiencia que seguro que nos viene bien a los que nos reunamos en el evento, compartiendo y aprendiendo de todos.

Lo único que deberás llevar, es un portátil y Visual Studio para poder participar en el Dojo, aunque como habrá equipos, es posible que si no lo tienes, puedas utilizar uno de los ordenadores que compartiremos los que lo llevemos.

Luis es consciente de que es nuestro primer Coding-Dojo para muchos de nosotros, así que empezará con una kata muy sencillita (FizzBuzz) que será utilizada como toma de contacto.

Posteriormente se realizarán posiblemente algunas actividades adicionales que a buen seguro surgirán de dicha cata.

Esperamos que las catas traigan por lo tanto, debates, discusiones y conversaciones muy interesantes.

No dejes de ir porque es una excelente oportunidad para “toquetear” código y aprender,… sobre todo aprender y pasar un rato muy divertido.

El evento tendrá lugar en las oficinas de Microsoft en La Finca.

Podrás registrarte en este enlace.

Puedes acceder a la información oficial del evento en este otro enlace.

Publicado por Jorge Serrano | con no comments
Archivado en:

Microsoft ha publicado una actualización de StyleCop, la herramienta que permite analizar el código C# de nuestros proyectos y que se integra dentro del IDE de Visual Studio 2010 y de MSBuild.

La última actualización de Enero, la v4.7.5.0 no era compatible con ReSharper. En esta nueva versión, se han resuelto los problemas de compatibilidad con ReSharper y ahora es compatible con R# 5.1( 5.1.3000.12), R# 6.0 (6.0.2202.688) and R# 6.1.1 (6.1.38.146). Sin embargo, OJO, ya que NO es compatible con la versión R# 6.1 RTM.

El paquete de instalación requiere que cerremos todas las instancias de Visual Studio 2010, y se encarga de desinstalar la versión previa de StyleCop e instalar la nueva.

Referencias:

Acceso a la página web del proyecto de StyleCop.

Acceso directo a la página de descarga de StyleCop.

Introducción

Por fin llegó la ansiada y esperada actualización del firmware del Nokia Lumia 800,… ese que dicen resuelve el problema de la batería por el cuál, no se terminaba de aprovechar toda su capacidad.

Respecto a la actualización, indicar que se puede llevar a cabo de dos formas, una a través de Zune (la tradicional y siempre más segura), y otra a través de Nokia Care Suite, la aplicación de Nokia que nos permite llevar a cabo tareas adicionales. Aplicación por cierto, que requiere algo de búsqueda ya que no se encuentra tan fácilmente. Como no deseo que perdáis mucho tiempo buscando esta información, os indico un enlace de un tutorial que de seguirlo, os recomiendo leer un par de veces antes de empezar con el lío, más que nada para que no haya disgustos (la información la encontrarás en este enlace).

Preparación

Lo primero, indicar los datos preliminares con los que iniciaba el proceso y qué método he seguido y porqué.

Contaba con un Nokia Lumia 800 libre con versión 7.10.7440.16.

Me enteré que hay dos versiones de firmware, una 1600.2483.8107.11500 que es la que se instala a través de Zune, y otra 1600.2483.8107.11501 que es la que se instala a través de Nokia Care Suite.

En mi caso elegí esta segunda opción, primero porque esa supuesta versión superior me ha hecho pensar mal, y me he decantado por ella pese a que gente de Nokia ha indicado que es la misma versión… pero si es la misma,… ¿porqué no llamarla igual?. Así que por un lado, he pensado que no quería arriesgarme y he actualizado el firmware a través de Nokia Care Suite. Por otro lado, he pensado que así ya de paso, aprendía una cosa nueva… arriesgada, pero al fin y al cabo, nadie ha aprendido las cosas sin pegarse con ellas antes.

La actualización

Como mi operador es Telefónica, he decidido descargar el firmware de Telefónica. Lo malo, es que ahora al iniciar el teléfono me aparece una imagen con el logo de Telefónica… algo que no me emociona particularmente, sobre todo porque mi terminal era libre.

La actualización del firmware a través de Nokia Care Suite lleva unos minutos… entre 5 y 10, y el terminal se reinicia no menos de 3 ó 4 veces.

Al final del proceso se hace un reset del terminal, por lo que TODOS los datos del teléfono se borrarán dejándolo en estado fábrica.

Los cambios que aprecio

El primero y más destacable es que además de asegurar que tengo el firmware 1600.2483.8107.11501, la versión de Windows Phone 7 ha pasado de 7.10.7440.16 a 7.10.8107.79.

En principio, he creído que al actualizar el firmware con el software de Nokia para Telefónica, éste habría actualizado mi terminal y lo habría bloqueado, así que me he asegurado y he iniciado una llamada con mi teléfono poniendo como número ##782#, de manera que el móvil me ha asegurado que mi terminal estaba desbloqueado. En el pasado recuerdo haber hecho lo mismo con un Windows Mobile y no había tenido problemas, pero esta vez tenía mis dudas. El caso es que intentaré hacer la prueba de fuego poniendo en el terminal la SIM de otro operador y ver qué ocurre.

La primera sensación no obstante ha sido con la pantalla, la cuál veía más oscura. El quiz de este asunto según he podido investigar, tiene que ver con el brillo de la pantalla, que por defecto ha cambiado, así que si queremos dejarlo como estaba antes de esta actualización, toca irse a Configuración > Brillo y cambiar allí los ajustes. Obviamente esto ha sido cambiado por Nokia porque de esta manera consumirá menos batería (una pequeña trampilla por parte de Nokia).

También he observado la cantidad de guarrería que me ha instalado el firmware de Telefónica. Me he tirado un ratillo quitando cosas que sinceramente no es que las vea poco útiles, es que incluso molestan… pero esto es ya una apreciación personal y cada uno tendrá sus preferencias y gustos.

Las demás aplicaciones de Nokia funcionan perfectamente (me encanta Nokia Conducir y Nokia Mapas).

Aquí, llegamos al punto más importante… el de la batería.

Accederemos a la herramienta de diagnóstico del Nokia Lumia 800 haciendo una llamada al número ##634#.

Antes de esta actualización, esta herramienta mostraba una información que teníamos que aceptar antes de acceder al menú de opciones. Ahora mismo, eso no aparece,… al menos a mí.

La opción Battery Status por otra parte, ya no me muestra una capacidad de 1518 mAh (Full Charge Capacity). Sin embargo, ahora sí muestra mucha más carga en la opción Remaining Charge Capacity, llegando casi a los 1439 mAh que es la capacidad máxima que me muestra ahora esta utilidad. Es decir, mi móvil ha bajado su capacidad máxima de 1518 mAh a 1439 mAh, muy posiblemente porque los valores que obteníamos antes no eran los correctos. Por su parte, el valor de carga ya no es 65535, sino el valor porcentual ponderado… que a la hora de escribir esta entrada era de 88%.

Sobre el resto de características poco que comentar. He visto que se ha agregado una utilidad de nombre Configuración de la red, y que el efecto de movimiento de imagen al dejar pulsado el dedo sobre la pantalla sigue sin resolverse (ver este video para entender bien de lo que hablo). Aunque esto último, mucho me temo que es un problema de Windows Phone… aunque parece ser que en otros terminales no ocurre.

Respecto al resto de características, hay usuarios que se quejan en Internet de la cámara y de otras cosas. No diré yo que es mentira, pero sí comentaré que a veces nos parecen ver fantasmas donde no los hay. Sin decir que las cosas que estoy leyendo por Internet sean verdad o mentira, permitidme que cubra una pequeña sombra de duda y que invite a tomar un tiempo apreciable para comprobar si esta actualización del firmware resuelve los problemas detectados o no, y si estropea cosas que antes funcionaban o no. Seamos cautos por lo tanto.

Publicado por Jorge Serrano | con no comments
Archivado en:

Vamos con una segunda retahíla de enlaces relacionados con Windows Phone 7.5 (Mango).

En este caso y después de haber hecho la parte I vamos a ser un poco más "locales" y regodearnos principalmente en los enlaces que se han publicado hasta la fecha en Geeks y que me gustaría destacar.

Espero que os guste la selección (bastante amplia por cierto).

Un saludo.

 

Alberto Díaz

César Fong

César Reneses

David Arbolafia

Eduardo Ortega

El Bruno

Javier Cantón

Jorge Serrano

José Antonio Gallego

José Manuel Alarcón

Josue Yeray

Juan Carlos González

Luis Guerrero

Mario Cortés

Rafael Serna

Raúl Mayo

Rommy Duarte

Cursos, videos y formación

Libros

Aplicaciones y herramientas

Otros

Publicado por Jorge Serrano | con no comments
Archivado en:

PlayStation Vita

No lo he comentado antes porque no me ha parecido una novedad especial... de hecho, me están sorprendiendo las pocas novedades reales que se están presentando en el CES 2012.

Sony ha aprovechado el CES 2012 no para presentar una novedad, sino para mostrar algo que ya sabemos todos aparecerá el próximo mes de Febrero en casi todos los paises del mundo a excepción de Japón donde ya se está vendiendo. Hablo de su consola/móvil PlayStation Vita.

De la mano Kazuo Hirai, Sony mostró algunas de las características del dispositivo que entre otras cosas integrará el contenido de videos de Netflix.

Sus funciones 3G y la posibilidad de poder jugar con ella, son las características más sobresalientes de esta nueva consola de PlayStation, que a mí personalmente no me termina de convencer.

no obstante, en Japón y según datos de Sony, se han vendido 500000 unidades de la PlayStation Vita en apenas 3 semanas.


¿Xbox 720 y PlayStation 4?

Mucho ruido y pocas nueces,... pero el ruido no viene ni de Microsoft ni de Sony.

El primer día del CES 2012 se esperaba que Microsoft anunciara una próxima versión de su consola Xbox 360. Algunos incluso la han llamado Xbox 720, pero lo cierto es que aún no se sabe nada al respecto.

Por su parte, de Sony se esperaba que presentara o adelantara algo respecto a su futurible nueva versión de PlayStation, lo que algunos han denominado como PlayStation 4, pero... tampoco... sin noticias oficiales en el horizonte.

Así que respecto a esto... lo que decía al principio,... mucho ruido y pocas nueces.

Nintendo por su parte, ultima la salida de su nuevo Wii U que presumiblemente hará aparición en Abril de 2012.

De todos los modos, sobre Microsoft y Sony, me da la sensación de que están jugando al perro y al gato. Veremos que su sucede en próximas fechas.

 

Acer y la nube

Si Apple lanzó en los últimos meses su iniciativa iCloud que realmente no es tan nube y sí nubarrones, Acer por su parte, hace público en el CES 2012 su apuesta por la nube.

¡Todo el mundo está en la nube señores! (que cada uno se tome la frase como quiera).

De esta manera, Acer ha dado a conocer AcerCloud, nombre original que esconde la apuesta de Acer por el almacenamiento de archivos y ficheros en la nube.

Esta iniciativa comenzará a dar servicio en el segundo trimestre de 2012 según espera hacer la propia Acer.

Lo que está claro es que todas las ideas que están apareciendo en el mercado sobre Cloud son muy similares. Ya aparecerán los talibanes de siempre diciendo que unos copiaron a los otros… pero sin entrar a valorar en AcerCloud, que no es el caso, veo en el mercado falta de ideas.

 

Y con esto… el CES 2012 se va diluyendo como un azucarillo en un vaso de agua caliente. Ojalá alguna empresa nos haya dejado alguna perla de interés para los últimos días del evento,… pero me temo que todo tiene pinta de acabarse así, como la apuesta de Microsoft al CES, que ha estado presente durante los últimos 15 años y que dejará de apoyar a partir de ahora para alinear sus productos y línea de productos de forma independiente,… algo que hacen otros como por ejemplo Apple,… porque… ¿qué sentido tiene alinearse al CES?,… lo lógico es que cada empresa haga sus movimientos libremente sin pensar en el CES. Les ha costado 15 años darse cuenta, pero es lógico.

Publicado por Jorge Serrano | 2 comment(s)
Archivado en:

Nuevos portátiles para Windows

Aunque lo vendan como gran novedad, no es tal... de hecho, Apple ya sacó sus portátiles ultra-planos hace un par de años, y ahora el resto de fabricantes han decidido intentar cubrir ese mercado que cada vez tiene más demandantes, de hecho, prácticamente todos tarde o temprano terminaremos jubilando nuestros portátiles actuales para hacernos con un portátil o dispositivo lo más plano posible.

En el CES (Consumer Electronics Show) de Las Vegas, varios han sido los fabricantes en anunciar dispositivos ultra-planos (ultrabooks los llaman ahora) y dotados de Windows.

Empresas como ACER, Asus, Samsung o Sony son algunas de las compañías que han apostado por esta línea de productos y que sacarán a la luz sus nuevos modelos durante este año 2012.

Estos nuevos modelos de portátiles se engalanarán con características propias de este tipo de dispositivos, como procesadores de bajo consumo y alto rendimiento, discos duros sólidos, pantallas incluso con capacidades multitáctil, baterías de larga duración, peso reducido de entre poco más de 1 Kg y 1.5 Kg, y un tamaño de pantalla que normalmente no bajará de las 13.3 pulgadas.

La guerra de marcas está ahora mismo abierta, de hecho, algunos de estos fabricantes ya tiene en el mercado sus nuevos portátiles... veremos hasta donde llegan, o hasta donde nos quieren llevar.

Tanto es así, que en las últimas horas, DELL de la mano de Jeff Clarke ha mostrado la última de sus piezas, el modelo XPS 13 pulgadas de aluminio con fibra de carbono… (más información aquí).

El video Remix de Microsoft en el CES

El primer día, Microsoft presentó un video muy simpático a modo Remix en el que recogían los momentos estelares de Microsoft en el CES, durante los últimos 15 años para ser más precisos.

Los que no pudieron verlo, ya sea porque no estuvieron en el CES el primer día o bien porque directamente se lo perdieron, pueden verlo tranquilamente desde casa.

 

 

Reacciones sobre Windows Phone 7

Las reacciones sobre Windows Phone 7 no dejan de sonar. Es importante para Microsoft, aprovechar el CES para hacer mucho ruido.

HTC presentó ayer su nuevo dispositivo (HTC Titan II), pero parece que ha pasado un poco a segundo plano, porque Nokia parece llevarse todas las atenciones y cariños de Microsoft después de presentar su nuevo dispositivo, el Nokia Lumia 900.

Tanto es así, que incluso ayer circulaba el rumor de que Microsoft y Nokia han aprovechado el CES 2012 para hacer reuniones y relaciones más estrechas,… tan estrechas, que esas reuniones según se rumoreaba en Internet, tendrían su principal foco en la adquisición de Nokia por parte de Microsoft, lo cual no deja de ser un rumor. El tiempo lo dirá, pero no parecería del todo descabellado y dadas las atenciones y mimos de Microsoft hacia Nokia, todo podría ser.

Lo cierto es que mucha gente habla del nuevo dispositivo de Nokia, y pocos del de HTC. La fuerza del marketing supongo…

 

Y más cosas…

Lógicamente, en un show como el CES, se presentan muchas cosas.

Algunas de las que más me han llamado la atención, son las siguientes:

Televisores

En televisores, LG ha presentado una pantalla con pantalla OLED de 55 pulgadas y otro LCD de 84 pulgadas y 3D Ultra HD por supuesto, con una resolución de 3840x2160 píxeles… ahí es nada. Yo no tengo ni una casa tan grande para meterla en el salón y tanto dinero para comprarla, pero me parece una maravilla… Si estuviera forrado posiblemente me la compraba. Recordad que la resolución Ultra HD es aproximadamente 4 veces superior a la Full HD 1080p.

Podéis acceder a más información al respecto en este enlace.

Domótica

Sin dejar de hablar de LG, tampoco me disgusta la iniciativa Smart THINQ y HeMs. Siempre me ha gustado la domótica y cuando estudiaba en la Universidad pensaba en ella seriamente. Una muestra de ello es lo que LG nos comenta en esta nota oficial.

TV e Internet

Y para finalizar y ya que hablamos indirectamente de ello… una de TV, donde Google TV asoma para competir con Apple TV, pero al que le ha salido también un competidor sorpresa… Ubuntu TV.

El caso es que de Google TV no se sabe mucho o casi nada. Sí se sabe que están con ello, pero… ¿hasta donde llegarán realmente?. Si quieres saber algo más sobre Ubuntu TV, te invito a acceder a este enlace donde hablan de ello (para evitar repetir cosas más que nada). Lo único que diré es que según parece, Ubuntu TV no llegará hasta finales del 2012, así que toca esperar si no nos gusta las alternativas que hay en el mercado.

¿Y Microsoft?… pues ahí está con su Microsoft Mediaroom… y veremos hasta donde va a poder o querer llegar también, ya que yo la veo sumida en un mar de dudas… que si Xbox, que si Live, que si Mediaroom… tiempo al tiempo para saber realmente hacia donde van a dirigir sus esfuerzos.

Los que me conocen ya saben lo que suelo opinar… cuanta más oferta, mejor. La competencia en el mercado siempre que sea leal, es buena.

 

Referencias

Enlace al video de Microsoft Pongo Remix en el CES 2012

Publicado por Jorge Serrano | con no comments
Archivado en:

Introducción

Mucho se esperaba del Keynote de Steve Ballmer en Las Vegas, pero la realidad es que casi nos podríamos haber ahorrado el Keynote y haber visto únicamente los últimos minutos de la misma, sobre todo con el resumen final de Steve cuando ha mencionado eso de que en el 2012 tendremos mucho ¡Metro, Metro, Metro!, y por supuesto, ¡Windows, Windows, Windows!.

Esta afirmación va por el lado de que ha habido muchas corrientes en Internet al respecto del próximo sitema operativo de Microsoft, Windows 8, que aparecerá en este año 2012 y por el que mucha gente ha empezado a hacer de pitonisa indicando que era el fin de Windows tal cuál lo conocemos, que Silverlight se moría, que todo iba a ser HTML5, y no sé cuantas cosas más,... todas respetables desde el punto de vista de que todo es posible, pero sin peso ni fundamento alguno que lo sostenga con una base firme.

Es por ello creo yo, que Steve ha decidido zanjar el asunto finalizando su sesión con un resumen,... y es que hay que decir hola a Metro, pero no hay que decir adios a Windows, porque ambos, coexistirán en el ecosistema de Windows 8 y posiblemente futuras versiones de Windows (tiempo al tiempo).

Lo que está claro es que empieza con más fuerza aún una nueva era de Metro, donde las tabletas y los dispositivos móviles, seguro que algo tendrán que decir, sobre todo en este año 2012 y en el próximo 2013 (siempre y cuando no se acabe el mundo claro).


Algunas cifras para abrir boca

De todos es sabido a que los norteamericanos les encantan las cifras. Muchas veces creen querer decir algo al mercado con ellas, y no les falta razón, así que vamos a enumerar algunos del os números que han hecho públicos (supongo que las partidas que arrojan números negativos no están incluidas aquí :-P):

Xbox 360 es la reina en consolas vendidas, con más de 66 millones de consolas vendidas en todo el mundo,... ahí es nada. Por su parte, Xbox Live es la red social de entretenimiento más grande con cerca de 40 millones de miembros. Por su parte, Kinect ha excedido todas las previsiones que tenía puestas Microsoft en este sensor (esto era algo ya sabido, pero no está mal tener las cifras). En concreto, se han vendido 18 millones de sensores Kinect en todo el mundo... Wow!

Windows Phone tiene ya 50000 aplicaciones y juegos publicados en su marketplace, con una media de 300 aplicaciones y juegos por día.

Windows 7 ha sido el sistema operativo de Microsoft más rápidamente vendido, con más de 500 millones de licencias vendidas (imaginaros las cifras a las que hubiera llegado si no hubiera licencias piratas por ahí).

Bing ha doblado el mercado inicial que tenía desde su lanzamiento (personalmente, pese a ser unos buenos resultados, no creo que sean los resultados que desearía tener realmente Microsoft).

Office 2010 es al igual que Windows 7, el paquete de ofimática de Microsoft más rápidamente vendido. Como novedad, Microsoft lanzó Office 365 en el año 2011 y está siendo utilizado por más de 80 millones de personas en todo el mundo. 0_o!

Respecto a relaciones empresariales y asociaciones comerciales, Microsoft adquirió Skype en el año 2011. Skype posee una base de 200 millones de personas que consumen miles de miles de minutos en conversaciones de video y voz.
Adicionalmente, Ford ha vendido más de 4 millones de vehículos con Ford Sync y planea llegar hasta los 9 millones de vehículos en los próximos 3 años.

Y por supuesto... la estrecha relación entre Microsoft y Nokia para impulsar el mercado de la telefonía móvil y de las tabletas...


Novedades

Para este primer día, las novedades han sido rácanas o tacañas. Es obvio que quieren darnos las novedades a cuenta gotas, porque si las dan todas el primer día... ¿que dejan para el resto?.

Un par de novedades relacionadas con la telefonía móvil para abrir boca:

Por un lado y en este orden, HTC ha publicado su nuevo dispositivo móvil con Windows Phone, hablamos del HTC Titan II.
Se trata del primer dispositivo con 4G LTE.

Por otro lado, Nokia ha presentado como ya se rumoreaba en estas dos últimas semanas, el Nokia Lumia 900.
Teléfono muy parecido al Nokia Lumia 800, quizás aparentemente un poco más grande, con soporte 4G LTE también, y con cámara frontal... algo que en breve será una seña de identidad de todos los dispositivos móviles con Windows Phone,... sino al tiempo.

Para completar el abanico de novedades sobresalientes... ¡una de Kinect por favor!.
Y es que a partir del 1 de Febrero de 2012 podremos disponer de un Kinect mejorado y para Windows.
El precio recomendado eso sí, bastante más elevado que el que estábamos acostumbrados a ver. :-(

Y esto es todo para el primer día... no está mal ¿verdad?.


Referencias

Microsoft 2012 CES Keynote Recap

Nokia CEO Stephen Elop interview at CES 2012

Publicado por Jorge Serrano | 2 comment(s)
Archivado en:

A continuación me gustaría reflejar aquí el primer conjunto de enlaces sobre Windows Phone 7 que encuentro interesantes o recomendables.

Es una pequeña lista muy personal, y supongo que cada uno agregaría su granito de arena, así que si quieres, en los comentarios, puedes agregar aquel o aquellos enlaces que no he incluido y que también consideras de interés general.

Un saludo.

Nokia

Blogs MSDN

WP7dev


Tutoriales y demás


Controles de usuario


Proyectos en Codeplex

 

Otros


Recursos

Y más…

Publicado por Jorge Serrano | 1 comment(s)
Archivado en:

Introducción

La presente entrada trata de poner algo de orden en el versionado de .NET y los diferentes o principales Service Packs que Microsoft ha ido publicando y alineando, dejando de lado los KB que haya podido publicar entre RTM y Service Pack o entre un Service Pack y otro.

Los que ya llevamos unos años trabajando con .NET ordenamos en mejor o peor medida el versionado de .NET, sin embargo, me he encontrado que hay mucha gente que se despista un poco y a veces pregunta en qué fecha salió tal versión o que compatibilidad tiene cual versión, que versión de .NET salió en tal o cual sistema operativo, etc.

Aquí, en una pequeña imagen, espero reunir todos estos detalles para poner como digo, un poco de orden y concierto en la ensalada de .NET Framework, que en este año 2012 hará su décimo aniversario en versión RTM (ahí es nada, como pasa el tiempo).

Camino previo

Microsoft .NET Framework comenzó su andadura a través de versiones beta.

Los que tuvimos la suerte de tener entre nuestras manos una versión beta (Noviembre de 2000), podemos apreciar (de una forma más crítica quizás) todo el recorrido y avance de este producto y sus diferentes versiones, y hemos podido comprobar cómo poco a poco ha ido asentándose en el mercado, un mercado por otro lado cada vez más exigente y en continuo crecimiento aún.

La vitola de Microsoft por el famoso infierno de las dll’s no era muy positivo para el gigante norteamericano, pero Microsoft ha sabido recorrer ese camino del cambio de imagen y adaptarse a la exigencia del mercado, dotando a .NET Framework con el paso de los años, de más y más características sin perder la robustez y fiabilidad de un producto ampliamente usado en el mercado.

También en ese camino, ha habido fracasos o abandonos de tecnologías que algunos hemos probado en versiones beta y que luego nunca más se supo ya que no fueron incorporadas a las versiones RTM, algunas acertadamente, y otras de forma sorprendente para la comunidad.

El caso es que .NET Framework es hoy día un entorno de desarrollo moderno y adaptado a los tiempos, en continua evolución y constante soporte, y con un prometedor futuro pese a que lleva ya en el mercado casi 10 años como versión RTM.

Versionado de .NET

A continuación, expongo una imagen que define el versionado de .NET a lo largo de estos últimos años.

Recordad que en este año 2012, .NET Framework estará de cumpleaños… ¡no todas las veces se cumplen 10 años!.

Espero que la siguiente imagen le aclare a más de uno el estado de situación del cual puede partir a la hora de desarrollar un producto o conocer qué versiones hay delante o detrás.

He decidido hacerlo en una imagen, porque creo que una imagen vale más que mil palabras y quedará todo mucho más claro.

Nótese también que he agregado al final una versión preliminar que Microsoft ha hecho pública recientemente, la versión 4.5 Developer Preview. También cabe destacar que Microsoft ha publicado recientemente una actualización de esta Developer Preview, pero no tengo datos para indicar qué versión es.

Introducción

A continuación voy a exponer algunas diferencias que he encontrado entre dos de los dispositivos móviles con Windows Phone 7.5 (Mango) que podemos encontrar en el mercado.

El motivo principal de comparar estos dos dispositivos y no otros es porque son los que tengo en propiedad y me resulta más fácil su comparación. Además de esto, el Windows Phone 7 LG Optimus 7 ha sido un dispositivo bastante aceptado por el mercado en cuanto a su precio y sus posibilidades.

Con todo y con esto, he decidido realizar comparaciones en diferentes apartados, partiendo de las características de los fabricantes y otros datos que he podido extraer de forma personal, y tratando siempre de ser lo más neutral posible.

Los apartados o grupos comparativos que he utilizado son los siguientes:
- Sistema
- Telecomunicaciones
- Pantalla
- Cámara
- Sonido
- Otras características, dónde destacaré otros aspectos no visibles a simple vista y el espinoso tema de la duración de la batería.
- Calidad/Precio

También debo recordar que entre ambos productos hay una distancia de 1 año, es decir, que el LG Optimus 7 es un producto maduro en comparación con el Nokia Lumia 800, y que la tecnología aplicada en el Nokia Lumia 800 por su parte, podría ser sensiblemente mejor a la incorporada en el LG Optimus 7, pero esto siempre desde un punto de vista teórico, porque nos faltarían muchos detalles que no conoceremos del porqué se ha creado un dispositivo con determinados aspectos de calidad con respecto a otros aspectos. El caso es que como pasa casi siempre, las comparaciones son o pueden ser odiosas. Tómese esta evaluación por lo tanto, con mucha cautela.

Valoraciones: En cada apartado, he hecho una valoración de cada terminal, siendo sus notas de 0 a 10, aunque para un 10 es un terminal perfecto, y éste no existe, así que el 10 es un valor casi de adorno al igual que un 0.


Sistema

Respecto al sistema, pocas diferencias destacables a simple vista.
El tiempo que tarda un LG Optimus 7 y un Nokia Lumia 800 tanto en arrancar como en apagar son muy similares.
Algo mejor en el caso del Nokia Lumia 800 muy posiblemente a causa de su mejor procesador y a un hardware que incorpore alguna mejora técnica, pero a simple vista bastante parejos ambos. El LG Optimus 7 dispone de un procesados Qualcomm Snapdragon QSD8650 a 1 GHz.

Aún y así, estamos hablando de que Windows Phone es el smartphone del mercado que arranca en menos tiempo (comparación con iPhone y Android).

Ver video demostrativo del tiempo de arranque entre iPhone, Android y Windows Phone.

Aún y así, el procesador siempre es un aspecto a tener en cuenta, así como esos 512 Mb extras que poseen ambos terminales móviles.

Por lo demás, todo prácticamente igual.

Cabe destacar un aspecto sobre el LG Optimus 7 y es que dispone de giroscopio, no así el Nokia Lumia 800. No es vital, pero bueno, es un extra (salvo que la información que disponga no sea la correcta) que no está de más tenerlo.

LG Optimus 7: 9.

Nokia Lumia 800: 9,5. 


Telecomunicaciones

Aquí empezamos a ver algunas diferencias que pueden resultar interesantes.
Las frecuencias GSM por decirlo de alguna forma, son las que son. Nada destacable.
En cuanto a las mejoras de la red GSM y como portador de datos, el LG Optimus 7 está basado en HSDPA, mientras que en el caso del Nokia Lumia 800 está basado en WCDMA. Esto es en teoría de acuerdo a las especificaciones del fabricante.

Si quieres saber más detalles sobre sus diferencias (HSDPA vs WCDMA), te invito a visitar este enlace.

En teoría, es mejor HSDPA que WCDMA, pero como siempre, cada una tiene sus ventajas e inconvenientes.
Sin embargo, Nokia Lumia 800 está basado en HSDPA Cat 10 que le permite alcanzar 14.4 Mbps como máximo, variando de acuerdo a la capacidad de la red. Según otras informaciones, LG Optimus 7 está basado también en la especificación Cat 10.

El resumen es que a priori, parece mejor el LG Optimus 7, pero ojo… “parece”, porque la realidad de acuerdo a mis pruebas es justo la inversa.

El resto de servicios, mail, sms, etc., no tiene apenas aspectos que hagan destacable un terminal sobre el otro.

Así que, después de estar trasteando con los dos terminales para comprobar su funcionamiento en cuanto a telecomunicaciones, puedo afirmar que mi sensación personal es que la red WiFi se conecta y detecta antes con el Nokia Lumia 800 que con el LG Optimus 7.

Sobre la conectividad y velocidad de proceso, también noto más ágil al Nokia Lumia 800, y es que creo que su procesador de 1.4 GHz ayuda sobremanera a que esto sea así.

En el caso del Bluetooth, ambos me parecen extraordinarios en la forma en la que gestionan las conexiones Bluetooth.

LG Optimus 7: 8.

Nokia Lumia 800: 9.


Pantalla

Aquí sí debo hacer un alto en el camino.

Si bien el tamaño es ínfimamente superior en el caso del LG, sí es cierto que el AMOLED que lleva el Nokia Lumia 800 es una diferencia insultante respecto al LG.

Cuando tienes el LG, te acostumbras a sus colores, pero cuando tienes el Nokia delante y los comparas, te das cuenta de la enorme diferencia entre ambos. S ilos juntas, las comparaciones se ven a simple vista.

Más información sobre qué es AMOLED aquí.

Respecto a otros detalles como ClearBlack o Vidrio curvo, no he podido obtener detalles de su existencia en el LG Optimus 7, por lo que creo que realmente es que no existe en dicho terminal, no así en el Nokia Lumia 800.

Respecto a los colores, la información que he obtenido en LG me indica que tiene 262000 colores, mientras que en el caso del Nokia Lumia 800 destacan los 16 millones de colores.

Todos estos detalles dan un ganador claro.

LG Optimus 7: 7.

Nokia Lumia 800: 9,5.


Cámara

Aquí también hay mejoras y diferencias sustanciales entre el Nokia Lumia 800 y el LG Optimus 7.

Los 5 Mpx del LG por los 8 Mpx del Nokia no tienen porqué ser importantes ya que los que tenemos algo de idea de fotografía, sabemos perfectamente que los Mpx es el chocolate del loro para el neófito que piensa que cuantos más "megapíxeles" mejor es la cámara fotográfica, algo rotundamente falso, pero por otro lado, la óptica Carl Zeiss que incorpora por ejemplo el Nokia Lumia 800 sí es un aspecto a tener en cuenta por lo menos a priori, sobre todo por la excelente reputación de Carl Zeiss que está fuera de toda duda.

El LG por su lado apenas aporta información sobre su óptica, así que pienso que si eso es así, es porque realmente no es de una calidad comparable a la que lleva el Nokia Lumia 800, pero sería necesario como siempre hacer alguna prueba.

De todos los modos, recordemos que un móvil NO es una cámara de fotos o una cámara de video, así que las fotografías que se hacen con uno u otro terminal tampoco son para tirar cohetes. La tecnología avanza muy rápido y es posible que en un futuro cercano estemos mejor en este aspecto, pero hoy por hoy, es lo que hay.

Sobre el Zoom, los dos trabajan con zoom digital si bien, en el caso del LG se desconoce sus aumentos reales, mientras que en el Nokia Lumia 800 es de x3. También cabe destacar que la pérdida de calidad cuando se hace zoom digital es notable (algo directamente relacionado con cualquier dispositivo que se encarga de hacer zoom digital).

Unas pequeñas muestras de ejemplo de fotografías sacadas con el LG Optimus 7 y con el Nokia Lumia 800.

LG Optimus 7

Sección de recorte de la imagen anterior:

Archivo original aquí.

Nokia Lumia 800

Sección de recorte de la imagen anterior:

Archivo original aquí.

Como podemos apreciar, los colores del Nokia Lumia 800 son más nítidos, así como el contraste, que es mejor también. Es preciso destacar igualmente que el Nokia Lumia 800 posee un mayor angular que el LG Optimus 7 (apreciable comparando ambas fotografías).

De todos los modos, estas fotografías pese a estar hechas a la misma hora, están hechas con los datos de fábrica o por defecto, datos que pueden ser modificados en la configuración del móvil para mejorar la calidad fotográfica.

Respecto al video, el Nokia Lumia 800 graba videos a 1280x720 píxeles y 30fps. En el caso del LG, la información que tengo dice que es a 720 píxeles y 24fps.

El resto de detalles son muy similares.

LG Optimus 7: 8.

Nokia Lumia 800: 9,5.


Sonido

Nada que destacar aquí.

Ambos dispositivos tienen una calidad aceptable tanto de escucha como de funcionamiento.

Personalmente, me ha parecido que el Nokia Lumia 800 tiene un sonido un poco más limpio, pero ambos tienes una calidad muy pareja.

La radio, música, grabación y reproducción,... todo ok en ambos.

LG Optimus 7: 8,5.

Nokia Lumia 800: 8,5.


Otras características

En peso, ambos dispositivos poseen un peso similar, unos pocos menos gramos para el Nokia Lumia 800, pero muy similares ambos.

En tamaño, el Nokia Lumia 800 es también un poco más pequeño en longitud, aunque en grosor y anchura es un poco más grande, pero ambos son casi idénticos.
Sin embargo, personalmente me gusta más la estética del Nokia, más cuadradote que el LG que está más abombado y la botonadura para retroceder, ir a la página principal del móvil y buscar, está integrada debajo del terminal en el caso del Nokia Lumia 800 y por fuera en el caso del LG Optimus 7.

Este último aspecto es importante en cuanto al desgaste. Los botones externos del LG no me gustan tanto porque al final, con el tiempo, las teclas se terminarán desgastando. Me parece más inteligente la idea de Nokia de integrar esos botones debajo del cristal de la pantalla, lo cuál además de evitar el desgaste, contribuye en la estética del terminal.

El tema de la batería lo dejo para más adelante, ya que es un tema aparte.

En tiempo de espera y según los datos de los fabricantes, el LG supera al Nokia, sin embargo, me llama la atención que en tiempo de uso, es el Nokia el que según estos datos administra mejor la batería aguantando más que el LG además de que no me terminan de cuadrar los datos. En el caso de Nokia, me cuadrarían más los datos invertidos (los de espera por los de uso), así que tomad estos datos como datos informativos, porque como digo... no me cuadran del todo.

De todos los modos, estos datos se verían alterados con el tema de la duración de la batería que dejo para el final y que requeriría un punto y aparte, así que en la valoración de este apartado, voy a valorar todo menos la batería que va en una valoración extra.

Sobre la SIM, tanto el LG como el Nokia no aceptan dual SIM, y en el caso del LG monta una SIM estándar, mientras que en el Nokia una micro SIM.
Esto no tiene mayor particularidad que en mi caso, he tenido que acercarme a una tienda Movistar y cambiar el SIM estándar por una micro SIM, pagando 7€. La versión del micro SIM es la 2.0.

Sobre la fecha de salida de ambos productos difiere 1 año. En el caso del LG, Octubre 2010, y en el caso del Nokia, Octubre 2011.

Valoración de todos los aspectos menos calidad/precio (que va en un apartado adicional):

LG Optimus 7: 8.

Nokia Lumia 800: 8,5.


Durabilidad y batería

De todos es conocido que no es la primera vez que Nokia tiene un problema con la batería de sus móviles.
En el caso del Nokia Lumia 800, este problema es sin embargo y bajo mi punto de vista, muy grave e inaceptable.

Para saber si nuestro Nokia Lumia 800 tiene problemas de batería, basta con llamar al ##634#.

Automáticamente aparecerá una pantalla donde deberemos aceptar los acuerdos de Nokia y accederemos a una pantalla de diagnóstico que se anclará también en todos los programas del terminal.

Allí, en el diagnóstico de batería deberemos fijarnos en la capacidad restante de carga.
En mi caso, con una carga completa, me pone como carga disponible 1500 mAh, y como carga 900 mAh (¡casi la mitad!), cuando en realidad su capacidad de carga debería ser completa. He vuelto a realizar otras dos cargas más y he llegado a tener 1214 mAh aproximadamente,… lejos aún de esos 1500 mAh que debería tener o al menos debería estar muy próximo.

En otro orden de cosas y respecto al Nokia Lumia 800, se indica siempre el mismo valor de carga, 65535%. Valor este por otro lado, que me recuerda a un Int16 sin signo (2 bytes que oscila entre 0 y 65535).

En el caso del LG Optimus 7, la batería dura muchísimo. Comparar el LG con el Nokia es un insulto para este último. Cabe destacar que Nokia ha reconocido un problema con el Firmware que gestiona la carga de la batería en el dispositivo y que ha indicado que hay un bug en el mismo. También se ha comentado en diferentes redes sociales y páginas Web, que Nokia planea sacar un nuevo Firmware para este dispositivo que resuelve estos problemas. Presumiblemente, este nuevo Firmware aparecería el 19 de Enero de 2012 (antes del mes de Febrero para no pillarnos los dedos).

LG Optimus 7: 9,5.

Nokia Lumia 800: 7,5.

 

Calidad/Precio

Finalmente me gustaría hacer también una valoración global de calidad/precio.

Esta valoración no es un resumen de las valoraciones anteriores, sino un valor independiente que puede resultar muy útil de cara a aquellos usuarios que no tienen grandes pretensiones con el dispositivo móvil y que puede utilizarlo sacrificando algunas de las características de un dispositivo móvil más caro y mejor.

Respecto al precio, el LG Optimus 7 E900 tiene un precio aproximado entre 240€ y 430€, mientras que el Nokia Lumia 800 tiene un precio de 500€.

Por lo que de acuerdo a estos detalles y juntando de forma global las prestaciones de ambos dispositivo sin tener en cuenta más aspectos, da los siguientes valores.

LG Optimus 7: 9.

Nokia Lumia 800: 8.

Resumen

La pantalla del Nokia es impresionante con respecto a la del LG. Colores más nítidos, menos reflejo,...

La velocidad con la que conectamos a la red WiFi y con la que descargamos cualquier cosa, creo a mi parecer que es una ventaja para el Nokia Lumia 800.

Evidentemente, la cámara y su óptica, es sensiblemente superior a la del LG.

El procesador del Nokia es más potente que el que monta LG y eso se nota a la hora de navegar por Internet y realizar otro tipo de tareas con el móvil.

La batería del LG es para mi gusto excelente, y le da un buen baño a la de Nokia (a esperar de la actualización del Firmware del Nokia que presumiblemente resolvería los problemas actuales con la batería).

En precio, el LG está bastante por debajo con respecto al Nokia. Esto hace que en calidad/precio sea una excelente alternativa. Aunque si quieres algunas de las prestaciones que tiene el Nokia y sobre las que supera con amplitud al LG, te toca rascarte el bolsillo (nadie da duros a pesetas).

En otras características, ambos terminales empatan o se parecen tanto que apenas hay diferencias que hagan que un terminal destaque sobre el otro.

Con todo y con esto, obtenemos la siguiente nota global o resumen de valoración:

Nota final: (Indudablemente, el Nokia Lumia 800 hubiera sido prácticamente perfecto si la duración de la batería hubiera sido otra. Es normal que por culpa de esta penalización, el valor diferencial entre ambos dispositivos se vea reducido enormemente).

 

Referencias

Especificaciones del Nokia Lumia 800.

Especificaciones del LG Optimus 7.

Foro de discusión sobre teléfonos Nokia basados en Windows Phone.

Trucos de Nokia para ahorrar batería en Nokia Lumia 800 (válidos para cualquier dispositivo móvil con Windows Phone).

Publicado por Jorge Serrano | 8 comment(s)

Introducción

Cuando empezamos a utilizar Windows Phone 7, una de las cosas que nos pide el terminal es indicar nuestra cuenta de Windows Live para entre otros servicios, conectarse al marketplace de Microsoft.

Todo funciona correctamente y todo parece normal hasta que un buen día, por cuestiones varias, nos vemos comprometidos a cambiar esa cuenta de Windows Live por otra.

Para poner un ejemplo de esto, imaginemos que hemos creado una nueva cuenta de Windows Live y que deseamos utilizarla en nuestro terminal en lugar de la que teníamos.

Solución

La solución directa no existe. Es más, en este caso, debemos resetear los datos de fábrica del terminal. Microsoft no proporciona ningún mecanismo que facilite esta acción.

Cierto es que tiene su sentido, porque en el terminal dejaremos rastros del anterior usuario (personalizaciones, mensajes sms, mensajes whatsapp, imágenes en los álbumes de imágenes, caché del explorador Web, aplicaciones instaladas, etc).

Sin embargo, imaginemos que no nos importan esos detalles, y queremos hacer el cambio de una cuenta de Windows Live por otra… ¿podríamos hacerlo fácilmente?. Como ya he adelantado, no… sólo reseteando los valores de fábrica y perdiendo por lo tanto, toda la información que teníamos guardada en el terminal.

Sin embargo, existe una manera muy delicada de llevar a cabo esto. Accediendo al registro del terminal.

No voy a entrar en detalles de como acceder a la aplicación MFG de LG Optimus 7 o cómo hacerlo en otros terminales.

Supongamos que ese paso ya lo hemos resuelto.

Accederemos entonces al editor de registro del terminal y estando allí tenemos que hacer los siguientes pasos.

Paso 1

Nos posicionaremos en la siguiente rama: HKCU\Software\Microsoft\ActiveSync\Partners\{B2830118-7BC6-4A74-8C9A-3D8B9CEF88E0}

Dentro de esta rama, encontraremos dos valores que si miramos su contenido, veremos que contiene nuestra cuenta de Windows Live actual.

Email y User.

Cambiaremos para ambos su cuenta de Windows Live a la que queramos indicar ahora.

Paso 2

Nos posicionaremos a continuación en la siguiente rama: HKCU\Software\Microsoft\IdentityCRL\Environment\Production

Aquí nos fijaremos en la etiqueta con valor DefaultID.

Una vez más, repetiremos la acción y cambiaremos el valor de esta etiqueta a la de nuestra cuenta de Windows Live.

Paso 3

Reiniciaremos nuestro terminal, y ahora podremos indicar en nuestra cuenta de Windows Live, la contraseña correcta para poder sincronizar los datos de nuestro terminal con los de nuestra nueva cuenta de Windows Live.

Un truco extra añadido

Este truco no tiene una relación directa con lo mencionado anteriormente, pero a veces puede resultar útil.

Si queremos cambiar el nombre de nuestra cuenta de correo, basta que vayamos a configuración > correo y cuentas, hacemos clic sobre la cuenta de correo y en la pantalla que aparece, cambiamos el valor de Nombre de cuenta por el que queramos utilizar.

Claro está, que aquí es donde también, deberemos cambiar la contraseña de nuestra cuenta de Windows Live que acabamos de agregar al terminal para sincronizar los datos de forma correcta.

Publicado por Jorge Serrano | 1 comment(s)
Archivado en:

Introducción

no me gustaría despedir el año sin escribir una entrada.

En este caso, os pongo en antecedentes del motivo de esta entrada.

En mi Windows Phone 7 he agregado una cuenta de GMail.

Personalmente, me encanta la forma de gestionar contactos de GMail, no así la de Hotmail. Supongo que habrá gente que opine al contrario, pero ese es mi caso.

Otra circunstancia es que tengo dos cuentas de correo, una de GMail y otra de Hotmail, y ambas las consulto con frecuencia.

El problema real es que metí primero la cuenta de GMail, sincronicé todo y perfecto.

Más tarde metí la cuenta de Hotmail en mi Windows Phone 7 también, y sincronicé la información.

El resultado es que en mi Windows Phone tengo dos losetas una para el correo de GMail y otra para el de Hotmail, pero en contactos, tengo un popurrí de contactos… los de GMail que tengo muy bien ordenaditos, y los de Hotmail que están como Hotmail quiere… ya que no le hago mucho caso y cada vez que respondo a una persona me inserta el contacto para no perder su dirección de correo.

Ahora la pregunta… ¿cómo hacer para que sólo se sincronice lo que yo quiero?.

Sincronizando lo que quiero

Si en Windows Phone 7 nos vamos a configuración > correo y cuentas, accederemos a las dos cuentas (la de GMail y la de Hotmail).

Si dejamos el dedo pulsado sobre la cuenta de GMail, observaremos que podemos eliminarla. Si hacemos lo mismo sobre la Hotmail (Windows Live),… no. :(

Por otro lado, si hacemos un solo clic sobre la cuenta de GMail, observaremos que nos permite decidir sobre qué contenido queremos sincronizar (correo, contactos y calendario). Si hacemos lo mismo sobre la cuenta de Windows Live, observaremos que sólo nos permite decidir sobre la sincronización del correo, es decir, la sincronización de los contactos y calendario es sí o sí.

¿Cómo resolver nuestro problema (sincronizar todo en la cuenta de GMail y sólo el correo en la de Hotmail)?.

Para sincronizar sólo el correo de la cuenta de Hotmail sin sincronizar el resto de información (calendario y contactos), debemos hacer lo siguiente:

En Windows Phone 7 debemos ir a configuración y situarnos en el pivot aplicaciones.

Ahí, debemos hacer clic sobre contactos y pulsar el botón filtrar mi lista de contactos.

Aparecerán las dos cuentas, y en mi caso, he quitado la selección sobre la cuenta de Hotmail para dejar únicamente la de GMail como sincronización de contactos activa.

De esta manera, los contactos quedarán filtrados y sólo se mostrarán los de GMail que son los que en mi caso me interesa.

Espero que ayude a alguien este pequeño “truco”.

Publicado por Jorge Serrano | 1 comment(s)
Archivado en:

Introducción

La presente entrada la quiero dedicar al marketplace y concretamente a las aplicaciones de Windows Phone 7, y por extensión, hacer una referencia al concurso/sorteo que Microsoft España ha puesto en marcha para regalar 5 móviles Nokia Lumia cada semana hasta la última semana de Enero.

Quede claro y por delante, que mencionar el concurso de Microsoft España no es criticarlo, porque en realidad la causa/efecto del mismo y la cual es el motivo real de esta entrada, no debe achacarse al mismo. Es importante que tengamos claras estas cosas para evitar malos entendidos. El motivo de esta entrada son las aplicaciones para Windows Phone que aparecen en el marketplace.


Sorteo de Microsoft

Empiezo hablando del sorteo porque es necesario puntualizar algunas cosas, sobre todo para los que no lo conozcan o residan fuera de España y no puedan participar en él.

El sorteo tiene unas bases claramente expuestas, razonablemente según unos, criticables según otros, pero no se obliga a nadie a participar en el sorteo y las normas son las mismas para todos.

Pese a todo esto, y como pasa por ejemplo en la máxima competición de Fórmula 1, sobre las normas escritas siempre hay picarescas que algunos equipos utilizan para conseguir su objetivo, que en este caso es un móvil de última generación, un Nokia Lumia 800.

En el caso de la Fórmula 1, existe una comisión de arbitraje que vela por el buen uso de las normas y trata de evitar abusos o excesos, algo que en este concurso, salvo que yo lo desconozca, no se hace.

Pero repito, todo esto es respetable, nos guste o no. Las normas son las que son... para todos, luego cada uno es libre de rodear las normas de una u otra forma, o de afrontarlas de frente sin desvíos.

Mi opinión no es criticar el sorteo, sino a colación del sorteo, criticar algo que ha ocurrido y que empaña al propio concurso (sin quererlo) y al marketplace, así como a la calidad de las aplicaciones que a ella se suben.

¿De quien es la culpa?. Me anticipio en mis conclusiones y digo lo que pienso... no es culpa de Microsoft, sino NUESTRA, de los DESARROLLADORES. Voy a exponer esto con más profundidad.


Proliferación del mismo perro con diferente collar

Tal y como dice el refranero, podemos vestir a la mona de seda, que mona se queda... o bien, podríamos vestir al perro con diferente collar, que el perro es el mismo.

Lo mismo ocurre con muchas de las aplicaciones del marketplace.

Nadie tiene derecho a criticar una aplicación publicada en el marketplace aunque exista una similar ya previamente. Es decir, si existe un conversor de Euros a Dólares Norteamericanos por ejemplo, nadie nos impide que nosotros desarrollemos nuestro propio conversor. Hasta aquí correcto.

Ahora bien, si existe un concurso que me da un Nokia Lumia 800, para conseguirlo puedo hacer varias cosas que ya han sido ampliamente debatidas en Twitter especialmente durante parte del mes de noviembre y sobre todo durante todo el mes de diciembre, y es que para conseguir el premio, puedo publicar todas las aplicaciones que pueda para tener más opciones sin importarme para ello la CALIDAD. Es algo lícito ¿verdad?. Además, cumplimos con las normas del concurso, así que ¿estamos haciendo algo mal?. No... bueno... no del todo, y empezamos a entrar en aguas turbulentas... me explicaré más adelante.


Entrando en materia...

Quizás yo fuera de los que menos debería hablar de este tema porque en dicho concurso he tenido la gran suerte de ganar un Nokia Lumia 800, pero para ello he tratado de ser lo más original posible y me he puesto a crear aplicaciones de diferente tipos, intentando al máximo no repetir la estructura de las aplicaciones (y tentado me he encontrado de hacerlo después de ver algunas cosas que personalmente no me han gustado).

El objetivo personal que perseguía era doble... por un lado, al hacer aplicaciones diferentes aprender todo lo posible, que es y era mi primer y fundamental objetivo,... y a medida que aprendía, ir haciendo mejores aplicaciones (o eso trataba de hacer también). Por esa razón, nadie encontrará ninguna aplicación repetida. Si además de esto, la motivación la encuentro en la posibilidad de ganar un teléfono móvil de última generación, pues mejor aún.

Todo esto no ha evitado que algunas de mis aplicaciones, después de haber finalizado algunas más, las vea como una auténtica basura, pero esto es otro asunto y tiempo tengo por delante para mejorarlas, algo que intentaré hacer también.

El caso es que una vez que he cumplido mi objetivo, es cierto que me he relajado. Es más, tratando de ser honesto, una vez que he ganado un Nokia Lumia 800, he decidido seguir publicando aplicaciones pero no presentarlas al concurso. Esto es algo personal que no pido que haga el resto de personas que ganen, pero intento seguir la máxima de no hagas lo que no te gustaría que te hicieran y haz lo que te gustaría que otros hicieran. Aunque sea complicado, ponerse en la situación de otros ayuda a entender mejor esto.

El problema es que el concurso/sorteo ha seguido avanzando y el último sorteo de hoy ha sido la gota que ha colmado el vaso por un aspecto que se sale un poco de madre (si el autor de esas aplicaciones lee esto, de todo se aprende y que disfrute de su móvil, pero eso no le evita este tironcillo de orejas virtual).


Calidad vs cantidad

En los sorteos se han presentado excelentes aplicaciones y varias aplicaciones desarrolladas por la misma persona que van desde lectores de noticias RSS de múltiples fuentes diversas (tantas aplicaciones como fuentes), hasta la misma aplicación en diferentes idiomas (una por idioma, presentando cada aplicación como aplicación independiente).

La base de la aplicación es la misma y lo único que cambia son dos detalles que apenas consume tiempo de desarrollo. En un día podríamos incluso hacer con facilidad, haciendo el pino mientras programamos y sin casi esfuerzo seis aplicaciones de este tipo. Multiplica y te saldrá la cantidad de aplicaciones que podemos llegar a presentar en una semana en el concurso.

Esto en opinión de muchos, a pesar de la picaresca que representa en el citado concurso, genera un problema adicional en el marketplace de aplicaciones para Windows Phone.

En este punto, está claro que premia la cantidad que la calidad. Además, resulta al menos mosqueante que los desarrolladores que se lo trabajan haciendo aplicaciones de más calidad, se sientan molestos y perjudicados ante este comportamiento. Todos debemos entender también que las normas son iguales y las mismas para todos, pero aún y así, los desarrolladores honestos se ven injustamente perjudicados, haciéndose la misma pregunta... ¿soy tonto?.

El riesgo de todo esto es que la gente tarde o temprano haga lo mismo. Esto conlleva a que algunos desarrolladores bajen los brazos, se desanimen y no hagan más aplicaciones, y que en el marketplace aparezcan aplicaciones que apenas desborden un mínimo de calidad o un mínimo esfuerzo de programación.

Quiero entender que Microsoft busque "competir" con los otros marketplaces (Android, Apple, etc) para ver quien tiene más aplicaciones, pero en mi opinión se está manejando la situación desde un punto de vista erróneo. Y éste es un tema de Microsoft Corporation, donde los perjudicados realmente seremos los propios usuarios, ya que el marketplace corre el riesgo de parecerse a esas mega tiendas de los chinos donde uno entra y encuentra millones de cosas en sus estanterías, todas apiladas y muchas de ellas inservibles pero que a lo mejor un día nos llevamos a casa vaya usted a saber porqué razón.

Está muy bien entrar en un chino y tener mil y una opción de elección, pero... muchas veces esa elección es sobre elementos basura... así que... ¿que buscamos realmente los usuarios?. ¿Cantidad o calidad?.

Me da la sensación (y esto es algo personal que creo comparte mucha gente), que Microsoft está ahora mismo buscando cantidad, mientras que somos muchos los profesionales y usuarios que buscamos calidad.

¿De quién es la culpa?. Pues aunque le duela a alguno, no es culpa de Microsoft, y siento decirlo así.
Algo de culpa sí tiene realmente Microsoft, pero sobre todo es culpa de los desarrolladores, que NO SOMOS HONESTOS.

Me duele criticar indirectamente a colegas que han presentado sus aplicaciones en el marketplace (incluso a mí mismo indirectamente), pero ES ASÍ.


¿Que puede hacer Microsoft?.

Microsoft no está exenta aún y así de su parte de culpa.

Microsoft por su parte podría tener más en cuenta la publicación de aplicaciones en el marketplace.

Microsoft anunció hace algunos meses que evitaría la publicación de lectores RSS indiscriminados o aplicaciones prácticamente iguales que se diferenciaran en pocas cosas. Haría ingeniería inversa para evitar esta picaresca. ¿Sabéis cuantos lectores RSS hay en el marketplace?. ¡Os asustaríais!.

El caso es que pensé que Microsoft iba a controlar este tema, pero después de unos meses he visto que no lo han hecho, o al menos no lo han hecho bien. Es más, diría que lo dijeron para amedrentar a los desarrolladores y evitar que hicieran esto y evitar así que aparecieran sólo lectores RSS en el marketplace, pero nada...

Por otro lado, Microsoft podría examinar también comportamientos de abuso indeseables.
Una buena muestra es la iniciativa de nuestro amigo Josué Yeray (y que personalmente apoyo) para que Microsoft tenga en cuenta estos detalles y trate de evitar algunas situaciones ¿extrañas?.

Por lo tanto, está bien que critiquemos a Microsoft, pero seamos honestos también con nosotros mismos.

Si queremos que el marketplace tenga una determinada calidad, nosotros también tenemos algo que decir al respecto, y si es criticar a un desarrollador o empresa en concreto por haber publicado una patata de aplicación o haberse saltado las normas que consideramos normales de calidad, también lo podemos hacer. Se puede votar una aplicación e indicar motivos o comentarios. Hagámoslo.

El prestigio de todos está en juego, no lo olvidemos.


Referencias

Marketplace ¿calidad o cantidad?

Publicado por Jorge Serrano | 21 comment(s)
Archivado en:

(Actualización: 29/12/2012) :: Aunque parecía evidente... por si acaso...

...Fin actualización

Parece ser que Sony está ultimando su próxima PlayStation 4, y por lo tanto, Microsoft que había planeado la salida de Xbox 720 para principios de 2013, estaría ahora planeando no sólo la inminente salida en 2012 de su consola Xbox 720, sino también para 2012 una versión portátil de su Xbox 720.

Diferentes fuentes que no puedo revelar, habrían comentado que esa nueva consola usaría por debajo Windows Phone 8 como sistema operativo, pudiendo incluso utilizarla como teléfono.

Una imagen del prototipo sería la que se indica a continuación:

Sus características más destacables serían:

  • Posibilidad de integrar cámara Kinnect Portable.
  • 2 Gb Ram
  • Ranura microSD
  • Disco sólido de 128 Gb, 64 Gb y 32 Gb (según diferentes versiones).
  • Conector Hdmi y miniUSB

Más información:

Blog de Josue Yeray sobre esta misma noticia

Blog de Lluis Franco sobre una noticia muy similar de novedades de la Xbox 720

Noticias del lanzamiento de Xbox 720

Otra noticia más al respecto de Xbox 720

Publicado por Jorge Serrano | 1 comment(s)
Archivado en:

Introducción

En Navidades he tenido la oportunidad de (como casi toda la gente) reunirme con amigos y familiares.

Un tema recurrente en reuniones navideñas que se precien es hablar de tecnología (esto era hasta hace poco, algo así como ser astronauta), aunque los comensales no tengan muchos conocimientos técnicos.

Indudablemente, esas conversaciones fluctuan desde camiones de bomberos con luces y sonidos, muñecas que lloran cuando les quitar el chupete, a consolas, ordenadores portátiles... y como no, el tema estrella desde hace un par de años a esta parte... las tabletas y los móviles.

Teniendo en cuenta que no todo el mundo tiene tabletas pero sí móviles, cada vez que se saca a colación el tema de los móviles, casi todo el mundo desenfunda rápidamente de sus cartucheras sus móviles para demostrar lo maravillosos que son y las fabulosas prestaciones que tienen.

En un ambiente de lo más distendido, siempre redundan las mismas frases cuando de comparar los dispositivos se trata... frases del tipo "es que yo no quiero gran cosa y por eso me he comprado (mirándolo con desprecio) 'esto'", o bien aquella otra de "para lo que lo quiero... tengo suficiente", o bien esa otra de "tan sólo lo quiero para llamar y punto y a mí tanta cosa de esas como que no las entiendo". Admito que yo me he encontrado reflejado en el pasado con algunas de estas frases.

Sin embargo, todo cambia y la gente utiliza cada vez más una tarifa de voz y datos, y da igual que tengamos WiFi, quiero estar conectado en todo momento y punto.

Y aquí entra en escena los últimos dispositivos móviles del mercado que incorporan interesantes características que nos posibilita mil y una cosas.

Android vs Windows Phone

Entre todos los smartphones del mercado, quiero enfrentar a dos, Android y Windows Phone, y no por nada en particular, simplemente porque los he usado como dispositivo durante los últimos años (echando a un lado Windows Mobile el cual utilicé durante bastante tiempo también).

El motivo de este enfrentamiento es que he sido usuario de Android hasta hace apenas unos meses, y de ahí salté no sin regañadientes a Windows Phone, y ahora que miro atrás... ni de broma vuelvo a Android... (nunca digas de este agua no beberé pero ahora mismo NO GRACIAS).

El hecho por el cual me costó pasar a Windows Phone es porque las teselas o losetas de la página inicial me parecían una guarrería y porque me había acostumbrado al final a Android. Reconozco que me costó un poco, pero una vez acostumbrado al Android… ¿porqué cambiar?. Pero lo hice, y no me arrepiento, sino… todo lo contrario.

El caso es que una de las pruebas más directas que se me ocurrió realizar entre mis familiares y amigos es la de realizar las siguientes preguntas a un usuario de Android:

¿Te ha costado mucho esfuerzo utilizar Android?.
La respuesta es clara y directa... "Un poco al principio, pero ahora ya lo tengo casi dominado.", o bien… "más o menos".

Mmmm... ¿la usabilidad de un Android en un usuario medio no es buena?.
Como persona técnica que me considero, no había caído en analizar más allá de lo normal este asunto... y es que un error común entre los que estamos más acostumbrados a la tecnología es que nos cuesta ponernos en la piel y en la situación del usuario normal no técnico.

Seguimos...

Una vez respondida esta pregunta, le damos un Windows Phone a esa persona y le decimos que haga cualquier cosa con él:
Entrar en contactos, hacer una llamada, etc., lo que sea, sin explicarle nada más.
Si observamos, veremos que sus reacciones son prácticamente directas, en apenas segundos se ha comprendido bien el funcionamiento del dispositivo y se ha llevado a cabo la operación de forma satisfactoria.

¿Porqué?.

En este punto, se cruzan dos aspectos.

La experiencia de usuario o UX por un lado, y la intuitividad por el otro.

Ambos puntos son cruciales y se cruzan.
Apple en este campo ha demostrado estar a un nivel muy alto.
Microsoft por su parte ha aprendido mucho del pasado al respecto y al igual que se le critica en diferentes campos, en otros hay que reconocerle sus logros también.
Google en mi opinión, debe aprender aún bastante ya que pese a tratar de imitar al mercado, no termina de ponerse a la altura de las circunstancias.

Acerca de la intuitividad, la mejor forma de ver esto es dejando el dispositivo a gente con y sin experiencia y examinar sus comportamientos. Yo he hecho la prueba con Android y Windows Phone, y el segundo gana por goleada al primero, así que o he tenido mucha suerte con mis pruebas o los resultados son los que son.

Sobre usabilidad, es quizás también otro de los puntos fuertes de Windows Phone. Una prueba que he hecho yo sobre este campo es dejar un Windows Phone a gente que tiene un iPhone, y ahí se ve q no les "choca" para nada el comportamiento y funcionamiento de uno respecto al otro.
Obviamente, hay diferencias, pero un usuario que pasa de iPhone a Windows Phone no se encuentra tan perdido como muchos a lo mejor creerían.

No obstante, en los aspectos referentes a la experiencia de usuario, es necesario precisar que hay posibilidad de que un fabricante saque al mercado un producto que dañe la experiencia de usuario. Una buena experiencia de usuario está sostenida por diferentes aspectos o puntos a cumplir como calidad de la voz, duración de batería, rendimiento en la ejecución de aplicaciones, etc. Recordemos que Nokia Lumia 800 por ejemplo, tiene numerables críticas al respecto. Apple en este campo, resuelve el problema vendiendo ella los mismos terminales, lo cuál asegura este punto… es asegurar el tiro,… algo que Android no puede asegurar, y Microsoft prácticamente sí a excepción de algunas connotaciones como la comentada con el Nokia Lumia 800 y que es responsabilidad del fabricante.

Sobre recomendaciones de usabilidad y experiencia de usuario, existe pese a todo, una que es bajo mi punto de vista vital, y es que una acción se deba poder llevar a cabo en 3 clics como máximo. 4 ó más clics redundaría en una mala experiencia de usuario.

Un ejemplo de esto:

Activación de una red WiFi.

iPhone: 3 clics.
Android: 3-4 clics.
Windows Phone: 3 clics.

Podría enumerar más ejemplos, pero destaco este por ser una acción de frecuente uso en un smartphone.

Sí he notado también que Android no hace fácil el acceso a diferentes partes del móvil (esto sí me chocó cuando usé un Android por primera vez). Cuando era usuario de Android, hasta me pareció normal con el paso del tiempo y lo terminaba aceptando con resignación pese a mi molestia de tener que hacer clics innecesarios,... pero una vez que uno ha usado un iPhone o un Windows Phone, se da cuenta de que esa no es la experiencia de usuario que demanda en este tipo de dispositivos y ve esto no sólo innecesario, sino incluso irritable.

He podido comprobar como esos usuarios se lían en todo lo referente a configuración con un Android (activación de datos, red WiFi, bluetooth, etc) y en los pasos que debe hacer. No así como un Windows Phone.

Tanto es así, que mi hermana por ejemplo, la cuál no es nada nada técnica, ha adquirido recientemente un Android de última generación. Yo la sugerí pasar a un iPhone o un Windows Phone, pero la típica oferta de las operadoras hizo que se pasara a ese tipo de dispositivo. En un par de semanas que lleva, me ha dicho ya en varias ocasiones que no se aclara. Aproveché entonces a mostrar mi Windows Phone… el resto de la historia os la podéis imaginar con lo que os he comentado en esta entrada. La resumiré como que me ha pedido que si me deshago de mi Windows Phone, que no me olvide de ella… con eso digo todo.

A pesar de estar escribiendo estas líneas, os sugiero que cada uno de vosotros probéis lo que comento aquí y reflejeis en esta entrada vuestras conclusiones. Os invito a que vosotros mismos veáis esas diferencias y las pongáis en común. Quizás haya más de un usuario que está dudando hacia donde dar su próximo paso y gracias a esta entrada se convenza de qué smartphone adquirir.

Referencias

The User Experience of Smart Phones: A Consumption Values Approach

SmartPhones Software Interface

Usability and User Experience Testing/Analysis

Publicado por Jorge Serrano | 1 comment(s)

Introducción

¡Que nadie se asuste!. La presente entrada pese a su título negativo, es una reflexión en alto de lo que veo que está sucediendo con Windows Phone 7 su penetración en un mercado,... algo saturado, y es que... ¿alguien tenía y tiene aún dudas de que Microsoft llegó tarde (bastante tarde) al mercado con Windows
Phone?.

Evidentemente se durmió en los laureles, se detuvo en la cuneta pensando en que podían vivir de las rentas (algo similar a la fábula de la hormiga y la cigarra) y se sorprendió cuando la competencia les pasaba como auténticos fórmulas 1. Intentó rápidamente reaccionar pero su dispositivo estaba obsoleto y muy alejado de la competencia... se habían relajado demasiado.

El caso es que cuando se quiso poner nuevamente en marcha, observó que no sólo no se acercaba a los competidores, sino que además la distancia se incrementaba cada vez más. De ser una empresa con un producto estable en el mercado, pasó a ser un segundón... o mejor dicho... mucho peor, el último de la clase.


La respuesta por parte de Microsoft

Y Microsoft respondió tan rápido como pudo con Windows Phone a finales del año 2010. No entraré en detalles de qué le pasó al equipo de Windows Mobile 6.5, pero hubo muchos rumores en la red de que Microsoft cortó cabezas... si fué así, no me soprendería ni lo más absoluto, es más, lo vería incluso como extraño que no se hubieran dado cuenta antes, y es que estamos acostumbrados a que Microsoft sea más proactiva que reactiva, algo que en este caso no sucedió.

Sin embargo, Windows Phone llega tarde, la distancia con sus competidores es aún muy grande. Por suerte (y esta es una opinión muy personal), su dispositivo Windows Phone representa ser en mi modesta opinión tan bueno o más como el iPhone (el número 1 después de desbancar a Windows Mobile y antes de la llegada del nuevo Windows Phone).

Tanto es así, que Microsoft según diferentes rumores,... mira ya al futuro con un nuevo sistema operativo, Windows Phone 8, que presumiblemente vería la luz en verano del 2012.

 

El apoyo de Nokia

Sin embargo, para ganar terreno, Microsoft se ha unido a Nokia,... o quizás deberíamos también decir que Nokia para recuperar algo de empuje que ha perdido en los últimos años con otros tipos de dispositivos, se ha visto obligada y de buen grado, a unirse y aliarse con Microsoft.

Analizándolo fríamente es claramente una apuesta de beneficio mutuo,... una especie de joint venture donde hay un claro win-win.

No obstante, Nokia también se encuentra al igual que Microsoft, en una pendiente cuesta arriba bastante inclinada. Deben hacer frente a la pérdida de terreno en el mercado de dispositivos móviles aumentando los caballos de potencia de la maquinaria. Y pese a estar haciéndolo bien, no es nada fácil, ya que el terreno perdido es bastante grande.

De hecho, la propaganda que Nokia ha estado haciendo durante los últimos meses en todo el mundo, es sin duda brutal. Prueba ello de la imperiosa necesidad de recortar distancias con la competencia.

 

El resto de competidores

¿Y sobre el resto de competidores?.

El resto de competidores han hecho lo que hizo Microsoft hace años cuando sacó Windows SmartPhone... sacar una amplia ventaja y vivir de las rentas. Pero ojo, han aprendido muy bien la lección en casa ajena (Microsoft) y continúan mejorando sus sistemas operativos.

Apple por su parte, sigue mejorando su iOS. La versión 5 parece ya estar estable pese a los problemas iniciales, y se rumorea que están dando pasos importantes de cara a una nueva versión de iOS, sin embargo, de momento no se sabe nada realmente.

Google por su parte, luchas aparte sobre patentes con Oracle sobre Java, etc., se supone que sigue desarrollando su plataforma. Muchos rumores acerca de si dejará Java de lado o no, y otras cuestiones que no vienen al caso. Lo cierto es que después del sonado lanzamiento de Android Honeycomb el problema de la fragmentación es quizás el punto más punzante de la plataforma. En vista de todos, se presenta Android Ice Cream Sandwich que sería la evolución de Android, con un plato fuerte que sería la unificación de Android para cualquier dispositivo (tabletas, teléfonos, netbooks, etc).

Symbian se inició con un modelo lo más parecido a una cooperativa. Un gran número de fabricantes que se ponen de acuerdo para impulsar una plataforma móvil. El objetivo fundamental, era el de hacerse un hueco en el mercado móvil. Tras varias idas y venidas fundamentalmente entre Nokia y Motorola, Accenture se hace al frente de Symbian, asegurándose un soporte hasta el año 2016.
El futuro de Symbian en estos momentos una vez que Nokia se ha implicado fuertemente en Windows Phone está por ver.

RIM (BlackBerry) tiene una cuota de mercado interesante. Se trata de dispositivos móviles que realmente no disponen de actualizaciones sobresalientes, pero que tiene una demanda sobre todo en el sector empresa que cubre perfectamente.
Recientemente, el servicio de BlackBerry estuvo sin funcionamiento a lo largo de varios días en diferentes partes del mundo. Los rumores apuntaban a una multa o compensación millonaria por parte de RIM.
Sobre las mejoras del sistema operativo de BlackBerry (actualmente en su versión 7.0), poco se sabe. Es para los usuarios una especie de caja negra. La realidad es que es un dispositivo móvil que cubre un conjunto de necesidades muy concretas.

Penetración en el mercado, datos de 2011

De acuerdo a los estudios de mercado, en Marzo de 2011, conScore MobiLens elaboró los siguientes resultados de acuerdo al mercado Europeo:

Aquí se puede observar como el recién estrenado Windows Phone, apenas llegaba al 7.6% frente al 9.1% de RIM, el 16.3% de Google, el 20.3% de Apple y el 43.3% de Symbian.
No obstante, la aceptación de Windows Phone en el mercado europeo ha sido bastante destacable, sobre todo comparándolo con la aceptación en el mercado estadounidense.

Atendiendo a los estudios realizados por la misma empresa para Agosto de 2011 a nivel europeo, observamos que de acuerdo a los datos de los top5 de Europa (Alemania, España, Francia, Italia y UK), los datos revelan resultados más desconsoladores para Windows Phone.

De acuerdo a esta imagen, Symbian pierde fuerza, BlackBerry y Windows Phone pierden algo de fuerza también, y Google y Apple abren la brecha aún más.

Cabe destacar que Nokia llegó al mercado de Windows Phone después de esa fecha, y que las campañas de publicidad que está llevando a cabo son bastante agresivas, por lo que se espera que recupere terreno. De hecho, los móviles de Nokia han sido según fuentes de The Phone House el dispositivo más vendido en diferentes paises.

 

¿Y el futuro?

Habrá que esperar a ver cuál es el avance de Windows Phone en la selva de SmartPhones.

A simple vista y después de analizar los resultados de los tres trimestres del 2011, parece claro que no tiene un futuro muy prometedor comparándolo con su competencia.

De hecho, recientemente y según determinados rumores de la red, Microsoft ha cambiado algunos de los responsables de la línea de Windows Phone en Redmond,... supongo que a cause de insatisfacción por parte de la junta directiva.

En otro orden de cosas, faltan los resultados del último trimestre del 2011, y evidentemente el 2012, donde hay varios focos puestos en varios productos tecnológicos que por lógica verían la luz: Windows 8, Windows Phone 8, Visual Studio 2011 (ó 2012), SQL Server 2012, etc.

Microsoft como decía al principio, llegó tarde, pero también tenemos que tener claro que más vale tarde que nunca. El problema de llegar tarde no obstante, es que el pescado suele estar vendido, y siempre resulta más difícil lograr que la gente cambie su smartphone actual por un Windows Phone a que alguien que nunca ha tenido un smartphone adquiera un Windows Phone. El mercado de los dispositivos móviles está lleno de dispositivos móviles smartphone, y este es el principal problema para Microsoft, no otro, porque tecnológicamente, el dispositivo es igual o mejor que el iPhone. Es una cuestión de cambio de hábito, de cultura y de idea de que aunque haya llegado más tarde, no tiene porqué ser peor que el de la competencia. Y el caso es que todo esto, para quien haya estudiado algo de marketing, sabrá que es muy complicado de resolver, sobre todo si en este caso, el usuario que tiene un smartphone está contento con lo que tiene.

Yo sí he cambiado, de Android a Windows Phone, y creo que en mi casa no voy a ser el único.

Yo soy optimista con Windows Phone, pero le va a costar bastante remontar si finalmente logra hacerlo. Veremos si ese futuro incierto que parece asomarse frente a Windows Phone se abre o si lo hace tambalear. Tiempo al tiempo…

Publicado por Jorge Serrano | 13 comment(s)

Introducción

Cada vez que anclamos nuestra aplicación de Windows Phone 7 en la pantalla de inicio de nuestro dispositivo móvil, ésta aparece en una tile o loseta.

Por defecto, el nombre de nuestra aplicación quedará impreso en color blanco en la parte inferior y de izquierda a derecha en dicha loseta, por lo que si nuestra loseta es de color claro, tendremos un pequeño problema.

Para situarnos más aún, el aspecto de nuestra loseta será del siguiente modo:

¿Dónde se indica el título de la loseta y cómo quitarlo?

Lo primero que debemos tener claro es situar el nombre de la loseta.

Para ello, accederemos a las propiedades del proyecto y dentro de las propiedades, en la pestaña Application.

Dentro de esta pestaña, localizaremos una opción dentro del apartado Tile options.

En concreto, la opción Title.

Esta opción es la encargada de mostrar el título de la aplicación en la loseta o tile de la pantalla principal de Windows Phone.

En este punto, la respuesta a nuestra pregunta parece sencilla... bastará con dejar en blanco el texto en Title, pero si hacemos esto, obtendremos una fantástica pantalla de error:

Imaginemos que nuestra imagen tiene un texto (como imagen), está claro que agregar el título (que es lo que Windows Phone 7 hace por defecto) afearía nuestra aplicación.

Por lo tanto, ¿es posible anclar nuestra loseta o tile sin texto?. Sí.

Para resolver este problema, tendremos que abrir el fichero WMAppManifest.xml que se encuentra en la carpeta Properties de nuestro proyecto.

Prácticamente al final de este documento Xml localizaremos la etiqueta <Tokens>...</Tokens>.

Dentro de esta etiqueta, localizaremos la etiqueta <Title>...</Title>.

Esta etiqueta es la encargada de indicar el nombre de la aplicación en la loseta o tile de Windows Phone 7.

Bastará con dejar en blanco esa etiqueta (<Title></Title>) y guardar el documento de manifiesto.

Compilaremos nuestra aplicación, la ejecutaremos y observaremos que el texto de nuestra aplicación desaparece de la loseta o tile.

Happy coding!

Introducción

El emulador de Windows Phone 7 para Visual Studio 2010 tiene un aspecto algo tosco.

No está mal, pero su aspecto es el de siempre, y ya sabemos que como somos algo geeks, al final ese aspecto termina por aburrirnos.

¿Porqué no cambiar ese aspecto por otro diferentes o por el que más nos gusta?.


Temas

El aspecto del emulador de Windows Phone 7 está formado por lo que se denominan temas.

En sí, el quiz de la cuestión está en la ruta (normalmente la que indico a continuación) C:\Program Files (x86)\Microsoft XDE\1.0.

Dentro de esta ruta encontraremos un fichero de nombre WM7_Skin.xml y que contiene las características principales del tema.

Dentro del documento xml encontraremos diferentes parámetros como la anchura, la altura,... y tres imágenes que acompañan al tema y que son las imágenes que utilizaremos para dar el aspecto concreto que deseamos a nuestro emulador.

Hasta aquí lo principal.

Ahora bien, podemos por lo tanto crearnos nuestro propio emulador o bien utilizar uno que ya exista en la red. Esto último es lo que os presentaré a continuación.


Temas existentes en la red

Seguramente haya más, pero voy a destacar los siguientes:

 

Tema para Samsung (AT&T)


Tema para Nokia Lumia 800


Tema para el chasis Windows Phone Mango (sin marca)


Tema para iPhone en Windows Phone 7 (rebuscado pero curioso)

 

Bastará con descomprimir el archivo en el directorio en el que se encuentra el fichero WM7_Skin.xml, que normalmente será la ruta C:\Program Files (x86)\Microsoft XDE\1.0.

Ni que decir, que os recomiendo hacer previamente una copia de seguridad de WM7_Skin.xml, WM7_Skin_Mask.png, WM7_Skin_Up.png y WM7_Skin_Down.png (por si las moscas). ;)

¡A disfrutarlos!

Introducción

Presupongo en esta entrada que ya posees determinados conocimientos, aunque sean a nivel básico, del funcionamiento del Marketplace de Microsoft y de cómo subir aplicaciones de Windows Phone y Xbox 360 al mismo a través de su página de App Hub.

Presupongo igualmente y como es lógico, que dispones de una cuenta para subir aplicaciones al Marketplace a través de App Hub de Microsoft.

Finalmente, comentar también que esta entrada tiene relación directa con la subida de nuestra aplicación al Marketplace por primera vez, es decir, no estoy teniendo en cuenta que nuestra aplicación ya esté subida y estemos basándonos en actualizaciones de la misma… más que nada porque no he probado la circunstancia de eliminar una aplicación ya publicada del Marketplace, y porque en el caso de querer actualizar nuestra aplicación ya publicada, existe un botón de actualización que es fácilmente localizable.

Y ahora,… ya que sabes de donde partimos, te cuento un poco el motivo de esta entrada.

Situándonos en el problema

El proceso de subir una aplicación de Windows Phone al Marketplace requiere una serie de pautas y pasos que deben llevarse de forma estricta.

Cualquier pequeño movimiento en falso o cualquier pequeño despiste u olvido, nos llevará a que nuestra aplicación no pase la certificación por parte de Microsoft y que por lo tanto, no sea “digna” de ser publicada en el Marketplace.

Nos gusten o no, estas son las normas de Microsoft, y en lo personal, lo que puede parecer un problema me parece adecuado. De esta manera, todas las aplicaciones del Marketplace tendrán una base de calidad similar (y no hablo de calidad de aplicaciones, sino de que todas cumplan unas normas básicas para que estas estén publicadas en el Marketplace de Microsoft).

Sin embargo, cuando subimos nuestras aplicaciones por primera vez, durante el proceso de aceptación pueden ocurrir dos cosas:

  • Que nuestra aplicación sea aceptada. (PERFECTO, sin problemas).
  • Que nuestra aplicación sea rechaza.

Cuando nuestras aplicaciones son rechazas, puede deberse a múltiples motivos.

Microsoft nos enumera todos y cada uno de ellos.

Sin embargo, en esta situación podemos llevar a cabo dos acciones:

  • Queremos llevar a cabo los cambios detectados por Microsoft y subir nuevamente nuestra aplicación. En este caso, la única forma que veo de resolver el problema es volviendo a subir nuestra aplicación al Marketplace, pero cuando lo hacemos, App Hub nos indica que ya existe una aplicación con el mismo nombre. La solución primera pasa por renombrar el proyecto y volverlo a subir, pero lo ideal sería modificar algún detalle de la aplicación a subir y volver a enviar nuestra aplicación para iniciar el proceso de certificación otra vez. Aquí he encontrado algunos problemas y que he resuelto de una manera un poco ortodoxa. Seguro que hay más soluciones mejores que esta, pero a mí sólo me ha funcionado esta que aquí os cuento.
  • Nos hemos arrepentido y no queremos realizar los cambios de nuestra aplicación, sin embargo, queremos eliminar nuestra aplicación de nuestro App Hub porque simplemente nos molesta ahí.

Ya tenemos representado el problema… y ahora la solución que he encontrado para cada uno de los dos escenarios representados.

Nuestra aplicación no ha pasado la certificación

Nos encontramos inicialmente con la estampa de la muerte.

Un ejemplo de esta situación:

Esta aplicación no ha pasado la certificación por parte de Microsoft.

Si pulsamos el los detalles de esta aplicación, podremos ver algo parecido a lo siguiente:

Aquí observamos que la certificación ha producido un error.

Si accedemos a los detalles (View error) comprobaremos el porqué nuestra aplicación no ha pasado la certificación.

Aquí viene lo bueno.

Existe una opción de Edit product details.

Haremos clic en esta opción, apareciendo la ventana de detalles de nuestra aplicación.

Detalles que habremos agregado a la hora de subir nuestra aplicación al Marketplace para su certificación.

En esta pantalla he representado los cambios a realizar.

Elegiremos el botón Browse para subir nuestra aplicación de Windows Phone.

El sistema no es inteligente, así que le vamos a ayudar.

Para ello, en mi caso he decidido renombrar el archivo xap original que no pasó la certificación como Failure Hola Mundo.xap y lo he seleccionado como archivo xap a subir.

Finalmente, he pulsado el botón Save and Quit.

Todo esto es lo que se puede ver en la siguiente pantalla:

Ahora, en la página principal del App Hub, observamos que el estado de nuestra aplicación, ha variado.

Como podemos observar, el proceso de certificación no se ha completado.

Eso es lo que haremos a continuación, teniendo en cuenta que aquí podemos optar por dos soluciones muy diferentes.

Siguientes pasos

Vamos por buen camino, pero aquí es donde podemos hacer dos cosas, las dos cosas comentadas anteriormente.

  • Eliminar nuestra aplicación del App Hub.
  • Modificar detalles de nuestra aplicación para volver a repetir el proceso de certificación.

Lo primero que haremos es acceder a los detalles de nuestra aplicación, y aquí nos detendremos un poco.

Aquí observaremos varios detalles.

El primer detalle tiene que ver con la información de validación. Como podemos apreciar, el envío no ha sido completado.

El botón Edit product details nos llevará a los detalles de la aplicación para completar el envío de información y validarla para su certificación.

El botón Delete submission nos ayudará a retirar/borrar nuestra aplicación del App Hub y quitarla por lo tanto de la página principal del App Hub. Si queremos eliminar nuestra aplicación esta es la opción que debemos elegir, y aquí cerraríamos uno de los puntos a tratar.

Sin embargo, continuaremos con el otro de ellos, el de publicar la aplicación que no ha pasado la certificación inicialmente en el Marketplace.

Elegiremos el botón Edit product details por lo tanto.

Completaremos los datos que consideremos estaban mal o no eran correctos y enviaremos nuestra aplicación al proceso de certificación.

En este caso, nuestra pantalla principal del App Hub quedará actualizada de la siguiente manera:

Si entramos en los detalles de nuestra aplicación, comprobaremos que ahora, nuestra aplicación está certificada y podemos por lo tanto esperar una vez más a los resultados de certificación.

Espero que le sirva a alguien.

Publicado por Jorge Serrano | 1 comment(s)
Archivado en:

Introducción

Continuando con las entradas tipo Dummies, vamos con otra.

En esta ocasión le toca el turno al patrón Singleton y a Transient, que a veces escuchamos o podemos escuchar y que nos deja un poco fuera de juego, pero como veremos, no es ninguna idea nueva maléfica ni nada por el estilo. Finalmente, comentaré de forma muy breve algún detalle sobre Persistencia simplemente para tenerlo ahí en la mente.

¡Vayamos allá!.


Singleton

Empezamos por el patrón Singleton. Quizás el único patrón realmente simple.
Y ya que nombro la palabra "único", eso es precisamente lo que es un Singleton.
Un patrón de diseño que identifica una única instancia de una clase, proporcionando de esta forma, un único camino o punto de acceso al objeto.
Esto significa que en memoria tendremos siempre un único objeto del tipo que implemente el patrón Singleton.

Ahora bien, como buen patrón, deberemos diseñarlo adecuadamente. Y es quizás el matiz "adecuadamente" el que debemos cuidar... pero no nos anticipemos aún.
La idea detrás del diseño del patrón Singleton es preguntar si ya existe en memoria (si está instanciado ya), y en base a ello, reutilizar su instanciación, o bien, instanciar el objeto en memoria.

No tiene más complicaciones. Así de primeras, parece sencillo ¿verdad?.
Pese a todo, quizás la duda resida a la hora de implementar el patrón en una clase que diseñemos, así que vamos a resolver esta posible duda creando una clase de ejemplo que nos sirva para mostrar como trabajar con el patrón Singleton.

Partiremos de la siguiente clase.

   1: namespace OOP
   2: {
   3:      public class Saludo
   4:      {
   5:         private string name = string.Empty;
   6:  
   7:         public Saludo() 
   8:         {
   9:         }
  10:  
  11:         public string GetName() 
  12:         {
  13:             return name;
  14:         }
  15:  
  16:         public void PutName(string personName) 
  17:         {
  18:             name = personName; 
  19:         }
  20:     }
  21: }

Para consumir esta clase, ejecutaremos el siguiente ejemplo de código dentro de un formulario de Windows.

   1: OOP.Saludo saludo1 = new OOP.Saludo(); 
   2: saludo1.PutName("Paula");
   3: OOP.Saludo saludo2 = new OOP.Saludo(); 
   4: saludo2.PutName("Antonio"); 
   5: MessageBox.Show(saludo1.GetName() + 
   6:                 Environment.NewLine + 
   7:                 saludo2.GetName());

El resultado de ejecutar esta instrucción sería:

Paula
Antonio

Como podemos apreciar, una clase sencilla de utilizar y de entender.
Ahora bien, tal y como vemos aquí, lo que en realidad tenemos es un objeto Saludo y dos instancias del mismo objeto en diferentes lugares de memoria, es decir, dos objetos totalmente independientes.

Esto como podemos entender, no es lo que buscamos, ya que lo que perseguimos es crear una instancia única en memoria, es decir, que sólo haya un objeto Saludo y que éste sea accesible en el mismo punto, y aquí obtenemos dos instancias independientes, por lo que esto que hemos intentado no es el patrón Singleton. Sin embargo, nos apoyaremos en esta clase para crearla como Singleton tal y como veremos a continuación.

La creación de la instancia única debería ser por otro lado y en principio, responsabilidad de la propia clase que deseamos que actúe como Singleton. ¿Para qué delegar esta responsabilidad en "algo externo" cuando la propia clase puede conocer si ya está instanciada o no?.
Ella mejor que nadie que controle esta característica digo yo.
Una rápida aproximación de un patrón Singleton teniendo en cuenta todas estos requisitos sería la siguiente clase Saludo que reutiliza la base de la clase apuntada anteriormente, y que queda de la siguiente forma:

   1: namespace OOP 
   2: { 
   3:     public class Saludo 
   4:     {
   5:         private static Saludo saludo = null;
   6:         private string name = string.Empty;
   7:     
   8:         public Saludo() 
   9:         { 
  10:         }
  11:    
  12:         public string GetName() 
  13:         { 
  14:             return name; 
  15:         }
  16:  
  17:         public void PutName(string personName) 
  18:         { 
  19:             name = personName; 
  20:         }
  21:  
  22:         public static Saludo GetSingletonInstance() 
  23:         { 
  24:             if (saludo == null) 
  25:             { 
  26:                 saludo = new Saludo(); 
  27:             } 
  28:             return saludo; 
  29:         } 
  30:     } 
  31: }

El consumo de esta clase quedará ahora de la siguiente forma:

   1: OOP.Saludo saludo1 = OOP.Saludo.GetSingletonInstance();
   2: saludo1.PutName("Paula"); 
   3: OOP.Saludo saludo2 = OOP.Saludo.GetSingletonInstance(); 
   4: saludo2.PutName("Antonio"); 
   5: MessageBox.Show(saludo1.GetName() + 
   6:                 Environment.NewLine + 
   7:                 saludo2.GetName());

El resultado de ejecutar esta instrucción sería:

Antonio
Antonio

El hecho es que la referencia de saludo1 y saludo2 apuntan al mismo objeto, instancia única de Saludo, que actúa como Singleton:

Ahora bien, ¿hemos acabado ya?... pues no, esto no es suficiente como trataré de explicarte a continuación.
El patrón Singleton que he representado anteriormente sobre la clase Saludo es mejorable.
Aunque pueda funcionar en algunos escenarios, sabemos a ciencia cierta que no va a funcionar en todos los escenarios posibles, así que la mejor forma de resolver el problema es hacer que nuestro Singleton sea estable.

Voy a ser un poco estricto en mis argumentos.

El hecho es que al trabajar con múltiples hebras, el patrón representado podría generar conflictos o problemas de concurrencia.
Otro problema asociado y que he dejado abierto, es que la clase no está sellada (sealed), por lo que si alguien hereda de la clase, podría generar en principio más instancias de las que yo mismo querría. Pero pese a que no fuera inicialmente una clase decorada como sealed, podríamos evitarnos el problema de crear más instancias declarando el constructor público como privado, impidiendo crear una instancia de la clase, algo que intentamos evitar.
No obstante, algo que sí hemos resuelto aquí es la inicialización de la clase que podríamos definir como perezosa, es decir, instanciaremos la clase con GetSingletonInstance sólo y cuando la vayamos a utilizar. Pero pese a que tenemos una función GetSingletonInstance, ésta no resuelve el problema de la concurrencia (dos hebras intentando al mismo tiempo instanciar la clase cuando aún no está creada).

Sin resolver aún el problema de la concurrencia, volvamos a revisar como quedaría nuestra clase con las otras modificaciones aplicadas:

   1: namespace OOP 
   2: { 
   3:     public sealed class Saludo 
   4:     { 
   5:         private static Saludo saludo = new Saludo();
   6:         private string name = string.Empty;
   7:  
   8:         private Saludo() 
   9:         { 
  10:         }
  11:  
  12:         public string GetName() 
  13:         { 
  14:             return name; 
  15:         }
  16:  
  17:         public void PutName(string personName) 
  18:         { 
  19:             name = personName; 
  20:         }
  21:  
  22:         public static Saludo GetSingletonInstance() 
  23:         { 
  24:             if (saludo == null) 
  25:             { 
  26:                 saludo = new Saludo(); 
  27:             } 
  28:             return saludo; 
  29:         } 
  30:     } 
  31: }

El uso de esta clase quedará de la siguiente manera:

   1: OOP.Saludo saludo1 = OOP.Saludo.GetSingletonInstance(); 
   2: saludo1.PutName("Paula"); 
   3: OOP.Saludo saludo2 = OOP.Saludo.GetSingletonInstance(); 
   4: saludo2.PutName("Antonio"); 
   5: MessageBox.Show(saludo1.GetName() + 
   6:                 Environment.NewLine + 
   7:                 saludo2.GetName());


En este caso, obtendremos como resultado:

Antonio
Antonio

Bien, vamos afinando nuestro Singleton, pero aún no es suficiente. Seguimos dejando abierto el problema de la concurrencia que comentaba anteriormente.
Así que sin seguir ahondando más en los posibles problemas, vamos a remangarnos y a pensar en mejoras o soluciones al respecto.

Para resolver los problemas de concurrencia, podemos hacer uso del chequeo doble, que consiste en que primero preguntamos si la instancia es null (tal y como hacemos hasta ahora), y una vez preguntado esto, chequeamos nuevamente.
Antes de continuar diré que la pregunta de si la instancia es null o no, no evita la problemática de que dos hebras entren en el mismo tiempo t al mismo punto y continúen, por lo que en este caso generarán dos instancias en lugar de una, de ahí que tengamos que chequear nuevamente.
Este nuevo chequeo consiste en que una vez pasada la validación de si es null, bloqueamos el objeto de forma que sólo una de las hebras que han entrado justo en el mismo momento t, pueda crear la instancia. La otra hebra (hablamos de milisegundos) entrará en el segundo chequeo una vez que la primera hebra ha liberado el bloqueo.
Dentro de este chequeo volvemos a preguntar si la instancia es null, así que si la primera hebra entró, cambiaría la instancia por not null y por lo tanto, las hebras que realizaron la petición en el mismo instante t, se encontrarán la hebra creada y no creará una nueva instancia.

Una imagen que resuelva esto es la que indico a continuación:

1) De acuerdo a esta imagen, dos hebras entran en el mismo momento t de ejecución a pedir una instancia de Saludo a la función GetSingletonInstance.
2) Ambas en un tiempo t que puede oscilar milisegundos con ínfimo margen de diferencia entre una y otra petición, preguntan si la instancia de la clase es null, recibiendo ambas peticiones la respuesta afirmativa.
3) En ese instante utilizamos la instrucción lock.
Esta instrucción tiene como propósito general bloquear exclusivamente una porción de código.
Ojo con el uso de lock porque podemos generar bloqueos que impidan la normal ejecución del resto de procesos que están esperando a que finalice el bloqueo.
El objetivo de lock es que sólo un subproceso podrá estar dentro de la sección identificada como lock, impidiendo que otro subproceso entre cuando hay alguien dentro.
La forma más sencilla de entender esto es pensar en dos personas que entran al mismo tiempo en los baños de un bar. Sólo hay un retrete y los dos quieren acceder al mismo lugar. Uno de ellos entrará dentro y bloqueará la puerta. Hasta que no desbloquee la puerta y salga, el otro no podrá entrar.
4) Imaginemos ahora que la hebra 1 es la que entra dentro de lock, quedando la hebra 2 en espera de poder entrar.
5) La hebra 1 pregunta nuevamente si la instancia de la clase es null, recibiendo una respuesta afirmativa.
6) Dentro de lock aún, la hebra 1 creará la instancia única.
7) Como nota adicional, si ahora entrara una hebra 3, ésta preguntaría al principio de todo si la instancia de la clase es null, recibiendo una respuesta negativa y obteniendo la correspondiente instancia. Cuando esto, porque a veces los bloqueos pueden llegar a penalizar la espera, y en este caso concreto, aunque estemos hablando de milisegundos, es la hebra 2 la que aún está esperando su oportunidad, habiendo llegado la hebra 3 antes que la hebra 2 y obteniendo respuesta antes. ¡Ojo con los bloqueos que podemos crear un desastre!.
8) Continuando con el flujo, cuando la hebra 1 sale de lock, lo libera, y automáticamente entra la hebra 2 que estaba esperando.
9) La hebra 2 preguntará si existe una instancia de la clase, obteniendo una respuesta positiva, por lo que saldrá de lock y obtendrá la instancia.
10) El resto de peticiones entrantes, no llegarán ya nunca más a lock, ya que éste sólo es accesible cuando la instancia de la clase es null, y como ya hemos visto, ya ha quedado creada.

Ahora vamos a ver como queda todo esto en código.


Nuestra clase quedará por lo tanto ahora de la siguiente manera:

   1: namespace OOP 
   2: { 
   3:     public sealed class Saludo 
   4:     { 
   5:         private static Saludo saludo = new Saludo();
   6:         private static readonly object objectLock = new object();
   7:         
   8:         private string name = string.Empty;
   9:      
  10:         private Saludo() 
  11:         { 
  12:         }
  13:     
  14:         public string GetName() 
  15:         { 
  16:             return name; 
  17:         }
  18:     
  19:         public void PutName(string personName) 
  20:         { 
  21:             name = personName; 
  22:         }
  23:     
  24:         public static Saludo GetSingletonInstance() 
  25:         { 
  26:             if (saludo == null) 
  27:             {
  28:                 lock (objectLock) 
  29:                 { 
  30:                     if (saludo == null) 
  31:                     { 
  32:                         saludo = new Saludo(); 
  33:                     } 
  34:                 } 
  35:             } 
  36:             return saludo; 
  37:         } 
  38:     } 
  39: }

Nota: gracias a Lluis Franco por avisarme de un gazapo que se me había pasado por alto en esta porción de código. Recomiendo leer este hilo.

El consumo de nuestra clase Singleton con un ejemplo, es prácticamente igual a lo que ya hemos visto con anterioridad:

   1: OOP.Saludo saludo1 = OOP.Saludo.GetSingletonInstance(); 
   2: OOP.Saludo saludo2 = OOP.Saludo.GetSingletonInstance(); 
   3: saludo1.PutName("Paula"); 
   4: saludo2.PutName("Antonio"); 
   5: MessageBox.Show(saludo1.GetName() + 
   6:                 Environment.NewLine + 
   7:                 saludo2.GetName());

El resultado que obtendremos al ejecutar este ejemplo es:

Antonio
Antonio

Pese a todo lo comentado hasta el momento y dependiendo de la criticidad de los sistemas, a veces se fuerza a que la generación del Singleton no sea perezosa y que desde el principio se generen todos ellos evitando posibles demoras y bloqueos. Esto por otro lado, consume una gran cantidad de recursos, sobre todo al comienzo de los procesos que funcionan de esta manera.

Una posible solución es hacer un híbrido de ambas técnicas dependiendo de los requisitos, pero como siempre, no hay una regla exacta que orden hacerlo de una manera o de otra.

Finalmente, me gustaría abordar otra posibilidad a la hora de generar un Singleton en .NET Framework 4.0, y es utilizando la clase Lazy<T>.

Esta clase se ha agregado a .NET Framework 4.0 para aportar compatibilidad con la inicialización diferida, lo cuál encaja a la perfección con el patrón Singleton.
El uso de esta clase, simplifica realmente la generación de un Singleton.
De hecho, la clase Singleton anterior equivalente utilizando Lazy<T> quedaría de la siguiente manera:

   1: namespace OOP 
   2: { 
   3:     using System;
   4:  
   5:     public sealed class Saludo
   6:     { 
   7:         private static readonly Lazy<Saludo> lazySaludo = new Lazy<Saludo>(() => new Saludo());
   8:  
   9:         private Saludo() 
  10:         { 
  11:         }
  12:  
  13:         public static Saludo GetSingletonInstance 
  14:         { 
  15:             get 
  16:             { 
  17:                 return lazySaludo.Value; 
  18:             } 
  19:         }
  20:  
  21:         private string name = string.Empty;
  22:  
  23:         public string GetName() 
  24:         { 
  25:             return name; 
  26:         }
  27:  
  28:         public void PutName(string personName) 
  29:         { 
  30:             name = personName; 
  31:         } 
  32:     } 
  33: }

Y el código que consume el Singleton de esta otra forma:

   1: OOP.Saludo saludo1 = OOP.Saludo.GetSingletonInstance; 
   2: OOP.Saludo saludo2 = OOP.Saludo.GetSingletonInstance; 
   3: saludo1.PutName("Paula"); 
   4: saludo2.PutName("Antonio"); 
   5: MessageBox.Show(saludo1.GetName() + 
   6:                 Environment.NewLine + 
   7:                 saludo2.GetName());

Indudablemente, el resultado obtenido en esta ocasión no difiere de lo que ya hemos visto hasta el momento:

Antonio
Antonio


Transient

Que no te confundan. En .NET y desde el punto de vista de una clase, un transient (que podríamos traducir como transitorio o fugaz) no es otra cosa que un new en una clase normal y corriente.
Generamos un objeto que se crea, se utiliza, y finalmente se destruye.
Es decir, dura lo que dura la ejecución del objeto en sí. Suele tener un ciclo de vida corto, pero dependerá de la complejidad del proceso y de otras características.

No voy a poner ejemplos porque cualquier clase general es un transient.

Cuando hablamos de Singleton y Transient, hablamos de un objeto de instancia única que puede ser generado perezosamente o no, y un objeto que sólo se crea en un momento, y cuya vida está asociada a la ejecución del proceso, que una vez finaliza es destruido.

Así de sencillo.


Persistencia

Persistir es sinónimo de mantenerse, por lo que si tenemos un objeto persistente, estamos diciendo que ese objeto está almacenándose, guardándose o salvándose en algún medio que permita luego recuperarlo y seguir operando con él si fuera necesario.

Lo más típico es escuchar hablar de persistencia de datos.
La persistencia de datos se puede realizar en memoria, bases de datos, ficheros u otro almacén fiable para llevar a cabo esa persistencia.
Aunque la memoria no es un almacén de persistencia óptimo al ser volátil, es bueno entender que la persistencia puede ser entendida desde un punto de vista purista o más amplio abarcando más posibilidades.

Lo lógico para poder persistir un objeto, es serializarlo. Si queremos serializar una clase, bastará con decorar la clase con el atributo Serializable().

No voy a hablar mucho más sobre la persistencia. Tan sólo quería dejar dos pinceladas sobre el término sin ninguna intención adicional.

Más artículos Página siguiente >