El pasado 11 de diciembre de 2014 tuvo lugar una nueva sesión organizada por TenerifeDev en la que compartí cartel nuevamente con David Rodríguez para hablaros de ASP.NET vNext. La sesión la comencé con una introducción a ASP.NET para después meteros en el mundo de vNext, las novedades que trae, las facilidades y la potencia que aporta, etc. Todo esto lo escenifiqué con un ejemplo que hacía uso de Azure Mobile Services. Finalmente, David os habló de cómo publicar un sitio desarrollado con ASP.NET vNext como Azure Website, lo que sin duda os aportará una gran ventaja sobre el resto de desarrolladores.
Aquí os dejo las slides y las demos. (Recordad que he quitado las credenciales de acceso a mi Azure Mobile Services y que podréis sustituirlo por el vuestro o por otra fuente de datos)
El pasado lunes 15 de diciembre tuve el placer de poder realizar un nuevo webcast sobre aplicaciones móviles gracias a Alejandro Campos Magencio, evangelista de Microsoft, que nos subió al carro de un nuevo final de año hablando sobre lo que más nos gusta.
En esta ocasión hablé de diseño en aplicaciones móviles en una sesión más teórica que práctica dado que en las cosas del diseño hay mucho de gusto personal y pocas reglas que seguir salvo unas bases en las que asentarse (y de las que no debemos escapar) que nos sirven no sólo para aplicaciones móviles de la plataforma Windows, sino que también nos vale para el resto de plataformas ahora que está tan de moda usar Xamarin (lo mejorcito para cross platform) y Cordova (o PhoneGap) que por fin ha sido integrado con Visual Studio.
El contenido que seguí lo podéis encontrar en las slides que he subido a Slideshare y además podéis descargaros y ver la grabación en este enlace
Si necesitáis ayuda sobre diseño de Apps o sobre desarrollo de Apps para la plataforma Windows, como siempre podéis contactarme vía twitter@saintwukong o desde este mismo blog
Mañana estaré como ponente en una nueva sesión online de “Christmas Mobile Apps Sessions“. Este año una vez más, Alejandro Campos Magencio, evangelista de Microsoft Ibérica, nos ha liado a los MVP Windows Platform Development Josué Yeray, Rafa Serna, Javier Suárez and me, junto con Eduard Tomás (MVP ASP.NET), para acabar el año de la mejor forma posible con una serie de Web Casts con el fin de prepararos y animaros a desarrollar Universal Apps. La serie completa de sesiones la podéis encontrar en este artículo junto con sus enlaces de inscripción.
Así pues, yo os hablaré de diseño una vez más e incluiré algunos truquitos de “perro viejo” que he aprendido con el tiempo
Introducción al Diseño, trucos y consejos en Universal Apps
Conoce los conceptos esenciales del diseño de Aplicaciones Universales para poder crear aplicaciones que atraigan a los usuarios. Además, aprenderás algunos trucos y consejos simples para diferenciarte y crear experiencias únicas.
Mañana participaré en una nueva sesión de TenerifeDev en la que os hablaremos David Rodríguez y un servidor sobre ASP.NET vNext, la nueva generación de tecnología web con la que Microsoft quiere seguir creciendo entre la comunidad de desarrolladores acogiendo también a los que crean aplicaciones para Linux y MacOSX. Esta sesión estaba prevista que la diera Tiberiu Covaci que se nos ha venido a vivir a la isla con lo que seguimos concentrando maestros dentro de isla. Entre otras cosas, vamos a hablar de qué es, qué novedades tiene, que ventajas propone y veremos algunos ejemplos de cómo utilizarlo para nuestros proyectos y desplegarlo en Microsoft Azure.
Además, esta sesión coincide dentro de la semana en la que se celebra el evento de aprendizaje más grande de de la historia “The hour of code” en el que se trata de incentivar el aprendizaje a la programación pero no sólo entre los desarrolladores y gente próxima a la tecnología, sino abierto a todo el mundo.
Esperamos que no nos falléis y que participéis de este gran evento durante nuestra sesión 🙂
Datos de la sesión
Sesión: Introducción a ASP.NET vNext
Descripción: Ven y conoce de primera mano cómo será la próxima versión de ASP.net, qué cosas cambian, dónde quedan los WebForms, cómo funcionan los controladores y qué le ha pasado al web.config. Santiago Porras, MVP de Windows Platform (@saintwukong) y David Rodriguez, MVP de Azure (@davidjrh) nos harán un recorrido por cada una de las novedades de la nueva plataforma para aplicaciones web y cloud. ASP.net vNext (aka ASP.NET 5), es completamente Open Source y está disponible en GitHub. ASP.NET 5 está actualmente en Preview.
El próximo Jueves 20 de Noviembre a las 16:00 horas de Madrid, tendré el placer de compartir un nuevo Webinar junto a Adrián Díaz en el que hablaremos sobre soluciones de movilidad para entornos empresariales.
La agenda del mismo será la siguiente:
Los aspectos de movilidad que trae SharePoint
Como introducirnos en el desarrollo de Aplicaciones móviles (nativas, multiplataforma haciendo uso de Apache Cordova y Xamarin)
Ver como aprovechar el Cloud dentro de nuestros desarrollos
Si estáis interesado en asistir, podéis registraros desde el siguiente enlace.
Hoy tendrá lugar una nueva sesión de TenerifeDev en la que volveremos contar con dos temáticas relacionadas para aumentar el alcance de los contenidos. En esta ocasión David Rodríguez hablará de Azure Mobile Services y yo haré lo propio sobre Aplicaciones Universales..
Azure Mobile Services y Aplicaciones Universales
Lugar: Salón de Grados ETSII
Horario: 18.00 – 19.30
Y recuerda que ya tenemos programado el evento de diciembre con la colaboración de un speaker internacional, Tiberiu Covaci (Microsoft MVP ASP.NET) que nos hablará de vNext
Es muy común que en nuestras aplicaciones necesitemos abrir popups y, para ello, generalmente se suelen usar plugins JavaScript como jQuery.UI u otros que son algo más pesados de lo que realmente necesitamos. Además, normalmente, los plugins añaden estilos que no nos hacen falta y que debemos sobreescribir con gran esfuerzo para no perder el look&feel de nuestro sitio web.
¿Qué podemos hacer para evitar «problemas» sólo por intentar abrir popups?
Opción 1: Imitar a Chuck Norris y hacerlo por nuestra cuenta
Esta opción me suele gustar pero sólo es aplicable en caso de que seáis buenos programando JavaScript, porque de lo contrario estaréis desaprovechando el tiempo y es posible que acabéis enredados en un código difícil de mantener.
Opción 2: Buscar un plugin simple con pocos o ningún estilo
Esto puede ser realmente lo que necesitamos en la mayoría de los casos y, en la temática de este artículo, os hablaré un poco de bPopup con además una solución de ejemplo.
bPopup es un plugin que nos permite abrir ventanas modales (popups) que aplica muy poco (o nada) de estilos, es ligero y fácil de configurar, con muchas opciones accesibles que nos permitirán rápidamente crear un popup que encaje perfectamente en el look&feel de nuestro sitio web.
La opción más simple es abrir el popup y, para ello, sólo necesitamos ejecutar una pequeña instrucción JavaScript
$(‘element_to_pop_up’).bPopup();
Popups infinitos
A priori parece una opción que no tiene mayor complejidad, pero la muchos plugins que implementan la funcionalidad de abrir ventanas modales no permiten la creación de infinitos popups unos sobre otros por problemas a la hora de tratar las clases que aplican. Con bPopup es muy sencillo tener esta funcionalidad que nos permitirá trabajar con popups sobre popups.
$(‘element_to_pop_up_1’).bPopup({
closeClass:‘close1’,
follow: [false, false] //x, y
});
$(‘element_to_pop_up_2’).bPopup({
closeClass:‘close2’,
follow: [false, false] //x, y
});
…
$(‘element_to_pop_up_N’).bPopup({
closeClass:‘closeN’,
follow: [false, false] //x, y
});
Control de eventos
bPopup también nos aporta control de eventos para poder realizer tareas en cada instante de la vida del popup.
$(‘element_to_pop_up’).bPopup({
onOpen: function() { alert(‘onOpen fired’); },
onClose: function() { alert(‘onClose fired’); }
},
function() {
alert(‘Callback fired’);
});
Carga de contenido externo
bPopup nos permite realizer la carga de un contenido externo mediante su URL. En el siguiente ejemplo sacado de la página de bPopup, vemos como se carga de forma asíncrona, el contenido del blog del autor.
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