ASP.NET 5 – Integrate dependency injection

Hace días que tenía preparada esta entrada, pero entre el revuelo del Build y todas las novedades que se prometían, tenía guardado este artículo en la recámara por si anunciaban alguna novedad sobre el tema.

InjectionHasta ahora para hacer inyección de dependencias en nuestras aplicaciones web, teníamos que utilizar librerías de terceros como (Unity, Autofac, Ninject, etc), pero a partir de ahora ASP.NET 5 traerá incorporado su propio contenedor de dependencias.

Este contenedor es una versión ligera, pero nos aporta soporte completo de la pila del proceso web. Se puede acceder a los servicios en el startup, en los middleware, en los filtros, en los controladores, en el model binding,  etc. Sigue leyendo

Anuncios

Web And Cloud Tour 2015

Este comienzo de año a sido uno de los más activos en las comunidades desde que tengo el placer de participar, siempre se solían acumular para finales de año y este han comenzado a un ritmo muy fuerte.

Como casi no he podido hacer otra cosa haré un pequeño resumen:

Marzo

Web & Cloud Tour 2015:

Este año Microsoft decidió dar un tour por las comunidades que normalmente no suelen ser las elegidas para estos eventos. Techdencias se encargo de organizar el evento para la gente de Barcelona. Ha sido una gran experiencia que espero que se repita !!

WP_20150327_002 WP_20150327_004 WP_20150327_006 Twitter8dbac76

Microsoft MVP Open Day:

Este año Microsoft nos dio la oportunidad de ir a Palma para hacer la reunión de los MVP de España, Italia y Portugal. Aprovechando este viaje Techdencias montó un evento para el grupo local “netSaimada” de .NET. Sigue leyendo

[Truco] ASP.NET MVC & Enums

Hace mucho que no escribía nada en el blog y tengo que empezar a coger otra vez la rutina y nada mejor para eso que comenzar con un truquito para utilizar en nuestros desarrollos en ASP.NET MVC.

Como buen truco no me voy a enrollar demasiado en las explicaciones ni teorías  y me voy a centrar más en el código para que se pueda utilizar de una manera simple.

El Problema

Imaginemos que tenemos un modelo de datos que utiliza una enumeración.

public class Persona
    {
        public int Id { get; set; }
        public string Nombre { get; set; }
        public int Edad { get; set; }
        public Genero Genero { get; set; }
    }
    public enum Genero
    {
        Hombre,
        Mujer,
        Geek
    }

Una vez tenemos nuestra entidad Genero el controlador y las vistas de forma automática con Visual Studio para no entretenerme mucho con el ejemplo. De esta manera ya lo tengo todo preparado con un solo click.

Nuestra vista de inserción tendría esta pinta:

VistaInicial

Como se puede observar la vista se ha creado perfectamente para añadir nuevas personas, pero no se a mapeado correctamente la enumeración para seleccionar el sexo de la persona.

Si lo intentáramos bindar directamente con el modelo tendríamos igualmente el problema porque no sabe mapear la enumeración directamente.

Sigue leyendo

Vistas & View Engines en ASP.NET MVC

Partiendo de que la intención de MVC es separar las responsabilidades de cada componente, me gustaría explicar cual es la responsabilidad de las vistas y como utilizarlas en ASP.NET MVC.

Lo que primero nos choca a los programadores que procedemos de los formularios web, es que han desaparecido los eventos y el famoso ciclo de vida, y eso se debe precisamente que ASP.NET MVC es mucho más natural en los protocolos HTTP y HTML en su tratamiento.

Mvc vs WebForms

Como se puede apreciar en la imagen los formularios web se basaban en los eventos para procesar una petición, entrar en el ciclo de vida del documento, tratar el evento, pintar los controles y devolver el resultado.

Sin embargo las peticiones en MVC son mucho mas simples y respetuosas con el protocolo HTTP. La petición la recibe el motor de rutas que mediante la URL decide cual es el controlador que la debe procesar, el Controlador puede consultar al modelo si es necesario y posteriormente  devuelve un ActionResult  que puede ser un fichero, datos en formato JSon, una vista, etc. Sigue leyendo

¡Enhorabuena MVP de Microsoft 2011!

MVP

Despues de tantos años participando en las comunidades intentando compartir mi granito de arena me ha llegado el famoso email de Microsoft .

Enhorabuena. Nos complace presentarle el programa de nombramiento MVP de Microsoft® de 2011. Este nombramiento se concede a los líderes excepcionales de la comunidad técnica que comparten de forma activa su experiencia de alta calidad y de la vida real con otras personas. Le agradecemos especialmente la contribución que ha realizado en las comunidades técnicas en el área de ASP.NET a lo largo del pasado año.

Para mí es un placer recibir este reconocimiento por parte de Microsoft y no hace más que animarme a continuar con mi empeño de poder compartir mis experiencias y aprender de tantas otras de mis pares.

No se si es una promesa o una amenaza pero seguiré intentando aportar todo lo que pueda como lo he estado haciendo todos estos años.

Muchas gracias a todos los que me habéis apoyado durante todo este tiempo y a todos los MVP’s nuevos y a los que habéis renovado para este año.

Gracias a Todos !!

Perfiles de Usuarios ASP.NET & MVC

Una de las dudas más habituales en los foros de ASP.NET, es como mantener una variable disponible para un usuario. Lo primero que se nos puede pasar por la cabeza es utilizar la sesión para guardar esta información, pero desde ASP.NET 2.0 tenemos otras alternativas más adecuadas para estas cosas y además nos puede servir tanto para usuarios anónimos, como para usuarios autentificados.

!! No tenemos que utilizar la sesión para todo !!!  tanto nos sirve para ASP.NET como para ASP.NET MVC

Usuarios autentificados.

Una vez el usuario se ha autentificado, se asocia el perfil a la identidad del usuario en el contexto actual system.web.httpcontext.user

Usuarios anónimos

El perfil para los usuarios anónimos no está habilitada de forma predeterminada y hay que especificarlo de forma explícita.

Para poder tener estas propiedades del perfil habilitadas para los usuarios anónimos ASP.NET crea una cookie donde se establece una identidad única para el usuario y poderlo identificar cada vez que el usuario acceda a la página web. Esta cookie tiene una caducidad de 70 días y se renueva automáticamente cuando el usuario accede al sitio.

Si necesitamos controlar cuando un usuario pasa de ser anónimo a usuario autentificado, podemos controlar este paso en el momento que el usuario se autentifica y se lanza el evento MigrateAnonymous incluido en el fichero Global.asax.

Tipos Soportados

Si no se especifica el tipo del dato que queremos mantener, por defecto esta propiedad se guardara como string, pero podemos guardar tipos escalares (texto, números, fechas) tan solo especificando el tipo en la configuración de la propiedad. Sigue leyendo

GridView Custom Edit

Este año ha sido mucho más productivo de lo que me esperaba y el que comienza parece que me va a deparar nuevos retos personales que espero sean lo más positivos posible.

Para empezar con buen pie y no cejar en mis artículos técnicos, hoy haré un nuevo ejemplo práctico para personalizar un control GridView, permitir editar sus elementos con JavaScript y enviar al servidor de manera asíncrona solo las modificaciones realizadas.

Realmente cada vez existen más controles que nos permiten mejorar la experiencia de usuario y potencian usabilidad de los usuarios. Pero con un poco de tiempo es posible dar este toque a los controles con los que trabajamos cotidianamente.

Para comenzar esta práctica crearemos un nuevo proyecto web y cargaremos una grid con la base de datos NorthWind que no puede faltar en cualquier ejemplo que utilice una base de datos SQL.

Para poder editar la grid lo que tenemos que hacer primero es marcar las celdas que se podrán editar con una propiedad llamada “editable”,  guardar el nombre del registro para tenerlo a mano a la hora de guardar las modificaciones y agregar el evento onmousedown para que llame a la función javaScript de edición tanto en IE como en Firefox. Sigue leyendo