AppCelerationProgam.Resume();

Este año tuvimos la oportunidad de participar en la primer y segunda edición del AppCeleration Program que lanzo Microsoft a principios de este año. En la primer edición participamos con un proyecto para Windows Phone y en la segunda edición ya como tutores de otros proyectos.

AppCeleration Program

¿De qué se trata el AppCeleration Program? En este programa Microsoft selecciona proyectos móviles de agencias del mercado y los acompaña en un proceso de 2 meses de aceleración para el desarrollo de sus aplicaciones móviles en Windows 8 y/o Windows Phone. En las primeras semanas Microsoft ofrece capacitaciones en sus oficinas y luego se establecen entregables o hitos que son monitoreados por los tutores (entre ellos se encuentran definición funcional de la app, registración en el store, publicación versiones 1.0, 2.0 y 3.0) . Además, esta la posibilidad de que tu aplicación figure en el Nokia Application Highlights durante 15 días!

En la primera edición (que arrancó el 10 de abril) presentamos un proyecto para Windows Phone de una app que ya teníamos desarrollada en otras plataformas móviles. Tuvimos la suerte de trabajar junto a dos grandes de Microsoft ArgentinaAriel Schapiro y Miguel Saez. y junto a Daniel Priego quien nos dio una mano en las cuestiones de UX. De las cosas que mas destaco, es que en un periodo relativamente corto de tiempo y teniendo poca experiencia en este tipo de proyectos, pudimos tener la cuenta del store creada y la aplicación publicada. Además tuvimos la suerte de conocer y compartir experiencias con otros colegas.

AppCeleration Program I

AppCeleration Program I

En la segunda edición (inicio el 12 de septiembre) participamos como tutores del programa. En esta oportunidad dimos asesoramiento a dos proyectos para Windows Phone: uno del Ministerio de Agricultura y Ganadería de la Nación – app Precios – y el otro una aplicación desarrollada con PhoneGap – app Conectate -. Para nuestra alegría, la aplicación Precios obtuvo un reconocimiento por parte de Microsoft y Nokia quienes destacaron el uso eficiente de las características que tiene WP. Otra cosa que rescato fue el feedback entre MS y los tutores acerca del programa en general.

AppCeleration Program II

AppCeleration Program II – Tutores

Esta en los planes una tercera edición para principios del año que viene, por lo que les recomiendo que estén atentos y puedan aprovecharlo al máximo! Prometo mantenerlos al tanto 🙂

Anuncios

Tiny post – Solución al error de multiples modales de Boostrap

Mas allá de si es correcto tener mas de una ventana modal abierta en simultaneo o si el cliente siempre tiene la razón – discusión que quedo a medias con @camboris – si trabajan con Twitter Bootstrap posiblemente tengan problemas con el primer tema. Es posible que cuando quieran abrir mas de un modal al mismo tiempo el navegador falle :

Crash! :(

Crash! 😦

En este post explican el motivo del problema (que a grandes rasgos se produce por una recursividad infinita entre ambos modales al querer tomar el foco) y una simple solución al problema (comentar la línea de código conflictiva de la librería Boostrap  :)):

Línea que genera el problema

Línea que genera el problema

Espero que les sea de utilidad!

ASP.NET MVC 5 – Bootstrap en los templates de MVC

Otra de las características que trae ASP.NET MVC 5 es que las plantillas de proyectos utilizan por default Twitter Bootstrap  – actualmente en la versión 3.0.0 – como framework para nuestras interfaces de usuario.

Bootstrap, para quienes no lo conozcan, es un User Interface Framework open source desarrollado y mantenido para el equipo de desarrollo de Twitter. Este marco de trabajo nos permite construir, bajo un sistema de cuadrillas y CSS3, páginas responsivas. El diseño  web responsivo establece tener una única interfaz de usuario que se ajusta-alinea automáticamente a las distintas resoluciones de los distintos dispositivos (PCs, tablets, telefonos…). Además nos proporciona de estilos y recursos que hacen que nuestras páginas luzcan más modernas, atractivas y compatibles con las mayorías de los navegadores web.

Página creada con Boostrapt

Página creada con Boostrapt

Si prestan atención, cuando generamos un nuevo proyecto ASP.NET MVC 5 en VS2013 entre los scripts JS está incluida la librería de Bootstrap:

Librerías Boostrapt

Librerías Boostrapt

También están definidos los bundles correspondientes- archivo BundleConfig.cs – tanto para las librerías JS como para la hoja de estilo CSS:

Bundles de Boostrapt

Bundles de Boostrapt

Y por último las referencias en la vista _Layout.cshtml:

Referenciando a Boostrapt desde las vistas

Referenciando a Boostrapt desde las vistas

Otro aspecto importante es que todas las vistas generan por defecto código basado en este framework:

El código de las vistas basado en Boostrapt

El código de las vistas basado en Boostrapt

Si ejecutamos la aplicación y ajustamos el tamaño del navegador a una resolución acorde a la de un dispositivo móvil veremos como actúa el diseño responsivo (todo el contenido se ajusta en la pantalla y el menú superior es agrupado dentro de un icono que se expande al hacer click):

Diseño responsivo en acción

Diseño responsivo en acción

Para que quede claro la intención del post no es enseñarles a trabajar con Boostratp sino comentarles la adopción de este como framework UI por defualt. Si quieren conocer más pueden hacerlo desde aquí.

Antes de finalizar, es importante aclarar que la utilización de Bootstrap es solo una sugerencia (particularmente lo recomiendo), pero es posible utilizar cualquier otra librería o simplemente no utilizar ninguna.

Quienes deseen más de info sobre el tema les recomiendo este artículo de Tom Dykstra y este artículo de mi amigo Julio Avellaneda.

Espero que les sea de utilidad!

One ASP.NET

Para quienes llevan un buen tiempo programando con tecnologías .NET recordaran que aya por el 2001 Microsoft sacaba al mercado algo llamado .NET Framework y acto seguido una nueva tecnología llamada ASP.NET. En aquellos años Internet empezaba a jugar un papel cada vez mas importante y era el momento de entrar en ese mercado. Y ASP.NET fue pensado justamente para atraer a los desarrolladores de aplicaciones de escritorio al desarrollo de páginas-aplicaciones web. Para que el cambio fuese lo mas transparente posible para los developers, ASP.NET adoptó el concepto de WebForms: formularios web donde podíamos arrastrar controles y con un simple “doble click” bindear eventos a los mismos y programarlos en el code behind (una forma de desarrollo muy parecida a la de WinForms).

Luego de un largo tiempo, a principios de 2009, aparece dentro de ASP.NET el patrón MVC y con él ASP.NET MVC 1 (una gran alegría para muchos de los desarrolladores web que esperábamos un cambio en el framework para que sea más orientado a la web!).  A medida que avanzaron los años este framework fue creciendo y con el aparecieron las versiones 2, 3, 4 y recientemente la versión 5.

Pero ASP.NET no solo se conforma de estos dos frameworks (Web Forms y MVC), con los grandes avances en el mundo web, en 2012 se añaden nuevos frameworks a la familia: Web API, SPA y SignalR (tengo pendiente un post sobre el mismo).

Ahora bien, aunque todos forman parte de la familia ASP.NET, generalmente se los suele identificar como proyectos independiente entre sí, sin relación uno con el otro. Esta visión no es correcta y con One ASP.NET se quiere reforzar esta idea.

La idea tras One ASP.NET es tener un único proyecto ASP.NET que podemos customizarlo a partir un conjunto de tecnologías web:

One ASPNET

One ASPNET

Por eso con Visual Studio 2013 cuando vamos a crear un nuevo proyecto web nos vamos a encontrar con una única plantilla “ASP.NET Web Application“:

ASP.NET Web Application

ASP.NET Web Application

Este cambio claramente refuerza el concepto de una única aplicación ASP.NET.

Una vez que creamos el proyecto se nos pedirá que elijamos las tecnologías con las que vamos a trabajar:

Seleccionando las tecnologías ASP.NET con las cuales trabajar.

Seleccionando las tecnologías ASP.NET con las cuales trabajar.

También podemos configurar de forma unificada aspectos como autenticación y testing unitario.

Algunos podrán decir que esto es simplemente un paso “extra” en la selección del template de proyecto a utilizar, sin embargo tras esta idea hay una nueva visión que pretende integrar este conjuntos de tecnologías bajo una única plataforma y finalmente borrar ese concepto que tenemos de proyectos independientes e incompatibles entre sí.

Por último recomiendo el post de José Manuel Alarcon hablando al respecto!

Abrazos!

Bienvenido ASP.NET MVC 5!

ASP.NET MVC

ASP.NET MVC

Como muchos ya sabrán hace poco Microsoft lanzo nuevas versiones de sus productos y frameworks, entre ellos Visual Studio 2013 (producto) y ASP.NET MVC 5 (framework).

ASP.NET MVC 5 no trae demasiadas novedades (como en versiones anteriores) y por el momento solo esta disponible – de forma totalmente integrada – con VS2013 (es posible utilizarlo en VS2012 instalando los binarios por medio de Nuget: Install-Package Microsoft.AspNet.Mvc).

En este post solo vamos a nombrar las nuevas features del framework, y en siguientes post vamos a ampliar sobre cada una.

Características:

  • One ASP.NET
    Es una nueva plantilla de proyectos ASP.NET que permite customizar y configurar nuestras aplicaciones MVC.
  • ASP.NET Identitity
    Los templates de proyectos ASP.NET MVC se han actualizado para usar ASP.NET Identity en cuestiones de autenticación y gestión de identidad.
  • Bootstrap in the MVC template
    Integración de Bootstrap en las vistas para proporcionar un aspecto elegante y responsivo a nuestras aplicaciones.
  • Authentication Filters
    Nuevos tipos de filtros de autenticación que se complementan al filter [Authorize]. Estos se ejecutan previamente y permiten añadir lógica para validar un usuario y asociarlo a la petición (ya sea a nivel de una acción, controlador o de forma global).
  • Filter overrides
    Permiten definir que filtros no se deben ejecutar en un método de acción o controlador. Por ejemplo podemos definir un filter de forma global y especificar que para cierto controlador o acción el mismo no se ejecute.
  • Attribute routing
    Soporte para routing basado en atributos (gracias a la contribución de Tim MacCallhttp://attributerouting.net). Esta característica nos permite definir nuestras rutas utilizando atributos sobre las propias acciones y controladores.

Si bien nos son revolucionarios los cambios de esta nueva versión de ASP.MVC, hay mucho por investigar, estudiar y conocer 🙂

Nos vemos en próximos post ampliando cada una de estas características!