El pasado, jueves 16 de octubre, volvimos a la acción desde TenerifeDev con dos sesiones creo que bastante interesantes para los desarrolladores y diseñadores web. En esta ocasión, las sesiones las dimos en las instalaciones de la FEULL (Fundación Empresa de la Universidad de La Laguna) que como siempre, colaboraron activamente con nosotros para poder compartir conocimientos con todos los asistentes, entre los que siempre destaca una alta presencia de estudiantes que se pueden enriquecer con la experiencia que podamos aportar sobre la vida laboral. Este es el resumen de las sesiones. Enjoy!
Introducción a Azure Web Sites – David Rodríguez (MVP Microsoft Azure)
David Rodríguez nos habló de todos los aspectos correspondientes a Azure Web Sites y fue muy interesante ver lo sencillo que es crear sitios web, configurarlos, monitorearlos, escalarlos, etc. teniendo en cuenta las posibilidades que nos da que dichos sitios puedan ser desarrollados no sólo en .NET sino también en Python, Java, Ruby, PHP,… además de que se puedan seleccionar plantillas preinstaladas como WordPress, DotNetNuke, etc. Aquí podéis ver su presentación
Responsive Web Design con superpoderes – Santiago Porras (MVP Windows Platform Development)
Tuve el placer de introduciros al mundo del Responsive Web Design y ampliar las posibilidades con SASS. Además, para los profanos en el mundo de la maquetación os dejé soluciones que os pueden ayudar en el desarrollo y maquetación de vuestros sites con Foundation o Bootstrap.
Las sesiones fueron tan interesantes que incluso se nos fueron un poco de tiempo. Mis disculpas a los asistentes, pero ya sabéis que cuando se disfruta de lo que se está contando… el tiempo se va volando. Espero que el mensaje que queríamos transmitir sobre Azure y Diseño web haya calado entre los que estuvieron escuchándonos
No olvidéis que ya tenemos programadas dos nuevas sesiones para noviembre (Azure Mobile Services con David Rodríguez y Aplicaciones universales conmigo) y diciembre (vNext
Aquí os dejo las slides y la solución de pruebas en que realicé en ASP.NET MVC
Retomando las labores de comunidad, vuelvo a vosotros en los albores de la tempestad para tratar de exponer mi visión. En este caso, colaboraré con Alberto Díaz Martín el próximo jueves 23 de octubre en un Webminar de ENCAMINA donde hablaremos de entornos híbridos en Microsoft Azure (Más info) haciendo una orientación hacia SharePoint, aunque todo lo que contemos puede ser aplicable a otras soluciones.
Las tres claves sobre entornos híbridos en Microsoft Azure
En este artículo quiero mostrar paso a paso cómo desplegar una página maestra (Masterpage) personalizada en un sitio de SharePoint y aplicarla en el momento del despliegue.
Escenario
Tenemos un sitio de SharePoint con sus subsitios etc etc etc y queremos aplicar una página maestra personalizada para, evidentemente, tener nuestra imagen de marca. Las opciones que tenemos son:
Hacerlo directamente trabajando sobre el sitio con el administrador de diseños y un editor de HTML como WebMatrix o SharePoint Designer con lo que para replicar en otros sitios tendríamos que hacer una exportación del paquete de diseño, importar en en nuevo sitio e ir configurando manualmente todo lo que corresponda
Hacerlo desde una solución de SharePoint creada con Visual Studio con lo que tendríamos la posibilidad de tenerlo en TFS o GIT, control de las versiones, automatización de configuración en el momento de desplegar, …
Parece claro que si lo que queremos es tener una solución flexible que podamos replicar en otras colecciones de sitios, granjas, … la opción correcta es crear una solución de SharePoint con Visual Studio
Solución
Crear proyecto
Como he comentado, va a ser paso a paso, así que empezaremos por crear el proyecto de tipo “SharePoint 2013 – Empty project”
Esto nos creará un proyecto con la estructura estándar de una solución de SharePoint a la que debemos ir agregando los elementos necesarios.
Crear módulo
El siguiente paso será crear un módulo donde añadir la página maestra para que sea desplegada en SharePoint
Al crear el módulo, Visual Studio también nos creará una característica que se encargará de activarlo en nuestro sitio de SharePoint. Para el ejemplo, a esta característica le he puesto ámbito de Site Collection tal y como muestro en la imagen
Añadir página maestra al proyecto
Dentro del módulo, eliminamos el archivo “sample.txt” que nos muestra cómo funciona un módulo y añadimos nuestra página maestra personalizada, quedándonos como en la imagen
Especificar ruta de despliegue
Dentro del módulo, tenemos un archivo “Elements.xml” que define cómo se realizará el despliegue de cada uno de los ficheros. Como queremos desplegar nuestra página maestra y, por ser puristas, hacerlo a la carpeta donde está el resto, debemos configurarlo de la siguiente forma:
Como se puede observar, especificamos la url de despliegue de los ficheros contenidos en el módulo como “_catalogs/masterpage” y en el fichero establecemos que sea de tipo GhostableInLibrary. Con esto, ya tendríamos el despliegue de nuestra página maestra, pero… nos falta establecerla como predeterminada en nuestro sitio, así que continuemos.
Añadir “Event receiver”
Lo que vamos a hacer ahora es añadir un “Event receiver” que se encargue de establecer nuestra página maestra como la predeterminada de nuestro sitio y todos sus subsitios (contando desde la raíz) y, dado que para establecer nuevas páginas maestras necesitamos tener activadas las características de publicación tanto a nivel de colección de sitios como a nivel de sitio, también nos vamos a atrever a hacerlo desde código.
Una vez añadido el “Event receiver”, la característica nos quedará de la siguiente forma:
Editamos el fichero del “Event receiver” y añadimos los eventos “FeatureActivated” y “FeatureDeactivating” con el siguiente código
Como se puede observar, ambos métodos hacen algo similar y lo he comentado sobre las líneas de código con lo que hay poco que explicar, salvo la activación de las características de publicación, cuyos códigos podéis sacar de este artículo de technet y que os puede servir para activar la característica que deseéis.
Desplegar y probar
Ya hemos terminado de configurar y codificar todo lo necesario, así que, desplegamos el proyecto y comprobamos el sitio que como cabría de esperar, habrá cambiado de aspecto, adquiriendo el asignado en nuestra página maestra, en mi caso he modificado el logotipo, la búsqueda y el menú de navegación, eliminando el quick launch del panel izquierdo.
Si vais a las características de la colección de sitios podrés comprobar cómo aparece la que acabamos de desplegar activada, porque está puesto como automático aunque podéis cambiar este comportamiento.
También tenéis disponible la selección de la página maestra desde la configuración del sitio –> página maestra puesto que hemos activado la característica de publicación-
Bueno, esto ha sido todo.
Os dejo el código del proyecto para que lo tengáis como referencia en este enlace
Disponemos de un sitio de publicación y tenemos un WebPart personalizado que realiza una muestra de ciertas páginas del sitio, donde tenemos activada la navegación por metadatos, esto es, “friendly url’s”. El problema surge en que al hacer la consulta, ya sea usando CAML, recorriendo la lista con con Linq to SharePoint, lo que tenemos de forma habitual es la url de acceso a la página, algo similar a “http://mysite/Pages/mypage.aspx” o “http://mysite/mypage.aspx”, lo cuál ya no es “friendly” perdiendo así los beneficios que podríamos obtener de cara al SEO.
Solución
A la hora de consultar la o las páginas, debemos tener en cuenta el objeto TaxonomyNavigation que nos permite acceder a métodos para controlar la navegación por metadatos. Así pues, podemos hacer uso de este objeto para obtener la friendly url de la siguiente forma
1publicstring GetFriendlyUrl(SPListItem pageItem)
2{
3//pageItem es del tipo ListItem 4 IList<NavigationTerm> terms = TaxonomyNavigation.GetFriendlyUrlsForListItem(pageItem, false);
5 6string friendlyUrl =string.Empty;
7 8//comprobar si la página tiene uno o más términos asociados 9if (terms.Count >0) {
10//Obtener la friendly url del término asociado a la página11 friendlyUrl = terms[0].GetResolvedDisplayUrl(string.Empty);
12 } else {
13//si no hay términos, devolver la url de la página14 friendlyUrl = pageItem.File.Url;
15 }
1617return friendlyUrl;
18}
Lo primero que hacemos es, obtener la lista de términos asociados a la página porque, debemos tener en cuenta que una misma página puede estar asociada a varios términos de navegación. Una vez hayamos comprobado que existe al menos un término asociado, podemos recorrerlos en busca del deseado o simplemente, como he puesto en el ejemplo, devolver el primero. En caso de que no hubiera un término asociado y, con el fin de tener siempre una url de acceso a la página, devolveríamos la Url estándar.
Hoy quiero hablar de algo que no es muy usado (creo) pero que por eso mismo puede ayudar a aquellos que se encuentren con el problema de no saber afrontar cómo localizar una aplicación en Silverlight que, aunque pareciera sencillo, tiene algunos entresijos que me gustaría compartir con todos.
Creando la aplicación Silverlight
Evidentemente, lo primero será crear la aplicación Silverlight seleccionándola de las plantillas disponibles en Visual Studio, en mi caso, Visual Studio 2013, tal y como se muestra en las imágenes a continuación.
Una vez hayamos seleccionado la plantilla de Silverlight Application, lo siguiente que se nos consulta es si queremos incrustar el proyecto dentro de una aplicación web. En el ejemplo que expongo, lo incrustaré dentro de una aplicación web ASP.NET MVC, con lo que marcaré la opción y asignaré el nombre de mi aplicación web.
Por último, voy a añadir un control de tipo Label, que ubico centrado dentro del grid principal “LayoutRoot”, al que posteriormente “bindearé” con el texto localizado.
Si ejecutamos la solución, podremos comprobar cómo se abre el navegador, con un control Silverlight incrustado que contiene el label con el texto que hayamos especificado, en mi caso “Text to localize”
Añadiendo los ficheros de recursos localizados
El siguiente paso, será añadir los ficheros de recursos. Por simplicidad voy a crear sólo el fichero principal en inglés (LocalizedStrings.resx) y el fichero localizado en español (LocalizedStrings.es-ES.resx).
Para ello, he creado una carpeta que llamo “Resources” donde agregaré ambos ficheros de recursos.
Ahora añadimos una nueva entrada dentro del fichero de recursos, “LabelLocalized” donde pondremos el texto deseado. Esto hay que hacerlo dentro de cada uno de los ficheros de recursos y tendremos tantos como lenguas en las que queramos localizar nuestra aplicación. Para facilitar esta labor, existen “plugins” que nos pueden ayudar, pero de esto hablaremos otro día.
Localizando el contenido dentro del código XAML
Bien, ahora ya tenemos el control en código XAML que queremos localizar en nuestra interfaz y el texto que queremos que aparezca, por lo que el siguiente paso será enlazar ambos “bindeando” el control Label con la entrada del fichero de recursos.
Lo primero será crear una clase, que llamaré “Localizer.cs” que se encargará de varios cometidos:
Determinar la cultura que vamos a usar
Determinar el fichero en el que se encuentran las entradas localizadas
Servir de interlocutor/pasarela entre nuestra interfaz y los ficheros de recursos para abstraernos de los mismos
publicclass Localizer
{
public Localizer()
{
Culture = Thread.CurrentThread.CurrentUICulture;
Language = XmlLanguage.GetLanguage(_culture.Name);
resource = new SilverlightLocalization.Resources.LocalizedStrings();
El siguiente paso, será asignar un alias a nuestro localizador para que la interfaz sepa interpretarlo y, para ello, editamos el fichero “App.xaml” añadiendo el correspondiente código dentro de los recursos de la aplicación.
Ahora que ya podemos usar el localizador para comunicar nuestra interfaz con los ficheros de recursos, vamos a establecer el Binding del valor en el control Label dentro del código XAML, para lo que deberíamos tener un código tal que así:
<sdk:LabelHorizontalAlignment="Center"
Height="28"
VerticalAlignment="Center"
Content="{Binding Path=Resource.LabelLocalized,
Source={StaticResource LocalizedStrings}}"/>
Con esto, en principio ya deberíamos poder ver nuestro texto localizado, pero esperad que aún hay más.
Localizando el contenido dentro del código C#
Antes de continuar, podría ser que quisiéramos localizar el texto desde nuestro código C# (yo recomiendo que en la medida de lo posible se haga desde la propia vista en el caso de controles con un valor fijo), así que tenemos una vía alternativa, para la que no necesitamos la clase que hace de localizador, sino que simplemente haríamos uso de un ResourceManager que nos permite acceder a las entradas de los ficheros de recursos de una forma sencilla.
ResourceManager rm = null;
rm = new ResourceManager("SilverlightLocalization.Resources", Assembly.GetExecutingAssembly());
Una vez hecho esto, podemos asignar el valor a cualquier control XAML que nos lo permita.
¿Por qué sigo sin ver cambios? Realizando los últimos ajustes
Una vez tengamos todo esto, pensaremos que está el trabajo realizado, así que si ejecutamos la aplicación…
No ha cambiado nada, ¿Por qué? <ironic mode=”ON”> Por extraño que parezca… en Silverlight las cosas no suelen ser tan fáciles como deberían </ironic> así que, localizar una aplicación Silverlight no iba a ser coser y cantar, o sí, pero al menos no iba a ser intuitivo.
¿Qué es lo que nos falta? Bien, pues nos falta, indicar a la aplicación Silverlight que puede usar las culturas en las que queremos que se localice. Esto lo haremos editando el fichero del proyecto, en el ejemplo “SilverlightLocalization.csproj” que no es más que un fichero XML y, en el nodo SupportedCultures, debemos añadir, separadas por “;”, todas las culturas que queramos tal y como muestro en la imagen.
Una vez hayamos añadido las culturas, podremos observar cómo nuestra aplicación muestra el valor correspondiente a la cultura.
Conclusiones
Con Silverlight las tareas a priori sencillas se pueden convertir en algo un poco “duro” de completar.
Para más referencias, podéis leeros a fondo este artículo de la MSDN donde se explica, aunque de forma algo enrevesada y desorganizada cómo funciona la localización en Silverlight.
Sólo queda un día para que se celebre //publish/ (16-05-2014), un evento que se celebrará en, aproximadamente 60 ciudades de todo el mundo, donde los desarrolladores de Apps tendréis la posibilidad de contar, en un evento gratuito, con expertos en diferentes áreas del desarrollo de Apps para Windows Phone y Windows 8 que os ayudarán a rematar vuestras aplicaciones y a publicarlas en las diferentes Stores.
Como ya os adelanté en un artículo anterior, estaré presente en Madrid con el látigo diseñador para ayudaros a que vuestras Apps tengan un look más “cool” y más atractivo para los usuarios. También estará el Gran Maestre Josue Yeray al que espero que aprovechéis al máximo ya que tiene prácticamente todas las respuestas en cuanto a código. Además, también contaremos con otros dos maestros, Alejandro Campos Magencio y Javier Suárez Ruiz que os ayudarán a tener un código extremadamente bueno así como una idea de negocio afinada.
Must remember
No olvidéis vuestros portátiles y, además, también debéis venir con mentalidad abierta a los cambios que os vamos a proponer. Si es posible, traed algo (o bastante) de código hecho de casa ;o) porque en un sólo día no nos dará tiempo de rematarlo todo.
Más datos
Localización:
Paseo Club Deportivo, número 1.
Centro Empresarial La Finca.
Hora de comienzo: 09.00
Hora de comida (cortesía de Microsoft): 13.00 – 14.00
Recientemente he instalado SQL Server 2012 Standard sobre Windows 8.1 pero no sin problemas durante el proceso.
Problemas
Primero intenté instalar SQL Server 2012 Express sobre la máquina con Windows 8.1 para lo que me descargué el fichero de instalación del centro de descarga de Microsoft (con el idioma correcto). Una vez completada la descarga, ejecuté el fichero y, tras la comprobación de requisitos y configuración previa, comenzó la instalación. Pero, cuando ya estaba a punto de terminar (lo que es más frustrante aún), recibí el siguiente mensaje de error “Could not find the Database Engine startup handle”. Como siempre, los mensajes de error son súper-descriptivos.
Para mis adentros pensé… pues vaya, “el fichero de instalación que me descargué está corrupto”, así que, ya de paso me descargué la versión Standard de SQL Server 2012 y repetí el proceso con el mismo resultado y con el consiguiente momento de tensión “hombre vs máquina” al que le sumamos el duelo “friky vs problema”.
Solución
Como buen frikazo, no iba a dejar que me frenara un problema tan simple como una instalación, así que comencé a buscar soluciones “bingueando” (no me seáis viciosillos, me refiero al sinónimo de googleando) con poco éxito hasta que di con este artículo de Anton Kalcik que tuvo el mismo problema y en el que explica bastante al final cómo resolverlo, así que resumiré.
Resulta que el servicio de SQL Server es incapaz de instalarse/iniciarse debido a un problema de permisos que podremos resolver simplemente propagando los permisos de la carpeta “Users/Default”. ¿Cómo hacemos esto de propagar los permisos? Pues bien, sigamos estos sencillos pasos:
Vamos a la carpeta C:/Users
Cambiamos la configuración de “Vista” y marcamos ver los elementos ocultos para ver la carpeta “Default”
Click con el botón derecho sobre “Default” y seleccionamos propiedades
En las propiedades, vamos a la pestaña de seguridad y seleccionamos “avanzado”
Seleccionamos “Cambiar permisos”, marcamos “Reemplazar todos los objetos hijos….” y le damos a OK.
Volver a lanzar la instalación de SQL Server
Conclusiones
A veces, algún becario mete mano en algún producto y pasa lo que pasa, pero siempre hay una solución, esta por lo menos me funcionó a mi.
El pasado 26 de abril, tuve el placer de participar en el aniversario de GUSENET como ponente formando pareja junto a Josue Yeray para hablar sobre las novedades que trae consigo Windows Phone 8.1 directa e indirectamente.
El evento contó con la presencia de cerca de 30 expertos en tecnologías .NET, casi todos MVP, con lo que la riqueza de contenidos era mayúscula pese a disponer únicamente de 30 minutos para cada sesión. De esta forma, se habló de tecnologías muy diversas que incluso se salían de .NET y se hizo networking, mucho networking en el que los temas que más pude escuchar estaban relacionados con Windows Phone 8.1 o con Entity Framework y el al uso que se hace de él por parte de algunas empresas/algunos desarrolladores.
En la sesión en la que participé, Josue Yeray, gran maestro de Windows Phone y del que siempre hay mucho que aprender, mostró a los asistentes las enormes posibilidades que nos aportan las Universal Apps que se han incluido con esta actualización y que nos permiten desarrollar Apps para Windows Phone 8 .1 y Windows 8.1 pudiendo compartir casi la totalidad del código, tanto XAML+C# como para HTML5+WinJS. Por mi parte, hice una introducción bastante light sobre las novedades en referencia a los controles (nuevas incorporaciones y optimizaciones a los existentes).
Otras sesiones que me gustaría destacar son la de Alberto Díaz que junto a Adrián Díaz habló sobre SharePoint, la sesión deMarc Rubiño en la que nos enseñó las debilidades ante el hackeo de bootstrap y la sesión de Bruno que nos dejó boquiabiertos y exaustos con todo lo que nos enseñó sobre el reconocimiento facial y de movimientos así como sobre gadgets. Todas las sesiones tuvieron también un nivel excelente lo que me ha permitido aprender muchas cosas y seguro que los asistentes también.
Como he indicado al inicio del artículo, ha sido un verdadero placer poder formar cartel junto a tantos expertos y, sobre todo, poder hacerlo al lado de Josue Yeray..
Parece que este año estamos de enhorabuena con la llegada de Windows Phone 8.1 y su convergencia con Windows 8.1, lo que nos permite compartir prácticamente todo el código, vistas, controles… entre ambas plataformas y… ¿qué mejor forma para celebrarlo que hacer un evento? Pues si querías uno… ¡Toma 2!
Desde Microsoft Corp., la comunidad de MVPs y WPSUG, queremos ayudarte a seguir el ritmo de las grandes novedades y crear Apps excepcionales usando las ventajas que ofrece la plataforma Windows con esta última revisión y para ello, se han creado dos eventos que tendrán lugar en Abril y Mayo: //learn/ y //publish/
//learn/
Este evento online está organizado directamente por los MVPs de Windows Phone. Durante 6 horas, podremos asistir a webcast sobre diferentes temáticas de Windows Phone 8.1: aplicaciones universales, diseño, nuevas APIs, notificaciones, etc. Si no sabéis inglés, no os preocupéis porque habrán tracks paralelos en varios idiomas entre los que se encuentra el castellano. Así que ya no tenéis excusa para asistir!!
En la Track en Español, Sorey García, Roberto Alvarado, Jose Luis Latorre, Ivan Toledo y Josué Yeray se encargarán de exponer los siguientes contenidos (sujeto a variaciones):
Introducción a Windows Phone 8.1
Empezando a construir apps Windows XAML
Controles de layout y transiciones de páginas
Adaptando tu UI a diferentes pantallas
Ciclo de vida de apps WinRT XAML
Tiles, badges, notificaciones y el Action center
Tareas en background
Windows XAML para desarrolladores Silverlight
El evento, que aunque se celebrará el 24 de Abril, por cosas de los husos horarios, en España empieza el 25 a la 01:00 (Bad thing). ¿Pero qué es una noche de no dormir para nosotros? Podéis aprovechar para poneros una copita de “Whisky on the rocks” y simular que estás de fiesta =oP No obstante, no os desaniméis porque las sesiones serán grabadas y podréis verlas bajo demanda. Tan pronto como estén disponibles, tanto Josué Yeray, como Javier Suárez Ruiz, Rafa Serna y yo mismo os pondremos los enlaces para su descarga en nuestros blogs o en la página de comunidad de WPSUG.
Para registraros, tenéis que acceder a este enlace
//publish/
Finalmente, el 16 de mayo tendrá lugar //publish/ que será presencial. Se trata de un hackathon organizado entre Microsoft y la comunidad MVP. En él podréis contar con mentores que os ayudarán a crear Apps para Windows 8.1 y Windows Phone 8.1 y también habrá premios y dispositivos para probar vuestras apps. Por supuesto, os invitaremos a comer paramanteneros encadenados a vuestros teclados y así de paso aprovechar para hacer networking.
En España habrá 3 sedes para este evento: Barcelona, organizada por Microsoft y Madrid y Palma de Mallorca, organizadas por la comunidad MVP. Yo estaré en Madrid apoyando a Josué Yeray y Javier Suárez Ruiz para ayudaros en todo lo que sea posible y conseguir que vuestras Apps lleguen a la tienda de aplicaciones con una gran calidad. El evento en Madrid se llevará a cabo en las oficinas de Microsoft el día 16 de mayo.
Podéis registraros desde este enlace para cualquiera de las tres sedes.
No debéis faltar a estos eventos ya que son una gran oportunidad para aprender y poder llevar a cabo vuestras Apps y, ¿por qué no? Convertiros en el próximo rico con vuestras Apps o vendiéndolas como WhatsApp. Desde luego, nosotros trataremos de ayudaros en todo lo posible, aprovechaos todo lo que podáis.
Ya está disponible “Windows Phone 8.1 Preview for Developers” por lo que ya podéis descargárosla aquellos que tengáis una cuenta de desarrollador activa. Instalarla es muy fácil aunque, como todo en esta vida, en ocasiones puede haber alguno más despistado que otro y, como varios me lo habéis preguntado ya… os indico cómo instalar/activar la preview para desarrolladores de Windows Phone 8.1 en vuestros terminales. Allá va:
NOTA: Tened en cuenta que necesitáis tener una cuenta de desarrollador paraWindows Phone, de Windows Phone AppStudio o simplemente tener el dispositivo desbloqueado para desarrollar.
Segundo paso
Abrir la aplicación Preview for Developers y seguir el “complejo Wizard” como se ve en las imágenes
Notad que en último lugar hay que activar la casilla de “Activar Preview para Desarrolladores”.
Tercer paso
Ir a “Configuración –> Actualizar el teléfono” y buscar actualizaciones. En unos instantes, debería aparecer la disponibilidad de una nueva actualización que debemos aceptar y… ¡listo! Windows Phone 8.1 Preview for Developers está disponible en nuestro terminal.
Aquí podéis ver las capturas de pantalla durante la instalación:
Novedades
Una vez instalado, recibiremos un mensaje de texto indicándonos dónde podemos descubrir las novedades de Windows Phone 8.1, cosa que podremos hacer desde esta página de Windows Phone.
Además, podemos apreciar rápidamente cosas como el centro de notificaciones y acciones que nos permite acceder rápidamente a algunas acciones de nuestro dispositivo así como leer las notificaciones perdidas. También rápidamente he podido ver los cambios en la gestión del volumen, donde han separado el volumen de las notificaciones del volumen multimedia y aplicaciones (ya era hora).
Además también tenemos la posibilidad de customizar el fondo de pantalla con una imagen de nuestro gusto y añadir más tiles activando una nueva característica que nos lo permite.
Por último, así rápidamente he visto los cambios en el calendario, muchísimo mejor que el que teníamos y que incluso nos indica una previsión de tiempo… Awesome!!!
Cortana
Para todos los frikys que queréis probarlo y estáis esperando poder hacerlo… deciros que Cortana parece que sólo está disponible para la región de USA con lo que el resto de mortales no podremos probarlo aún… ¿o sí? En este artículo de Xataka Windows podéis ver cómo activarlo.
Importante
Si en adelante queréis dejar de recibir notificaciones de nuevas versiones preview, tan sólo tenéis que entrar en la aplicación “Preview for Developers” y desmarcar la opción “Enable Preview for Developers”