MVC Exportar Datos a .XLS “Excel Files”

Este truco es uno de los top10 en los foros de MSDN y sigue siendo una de aquellas cosas que no es fácil encontrar una documentación clara y adecuada.

Si hablamos desde la perspectiva de ASP.NET MVC esta tarea se nos simplifica muchísimo porque desde nuestro controlador podemos devolver directamente el contenido de un fichero como cualquier otro ActionResult que tengamos configurado. Para eso tenemos el método File que nos proporciona esa funcionalidad y no tenemos que utilizar directamente el objeto Response como nos pasaba con el clásico ASP.NET WebForms.

FileContentResult File(byte[] fileContents, string contentType)
FileContentResult File(byte[] fileContents, string contentType, string fileDownloadName)
FileStreamResult File(Stream fileStream, string contentType)
FileStreamResult File(Stream fileStream, string contentType, string fileDownloadName)
FilePathResult File(string fileName, string contentType)
FilePathResult File(string fileName, string contentType, string fileDownloadName)

Para este ejemplo utilizaré la sobrecarga que retorna un FileStreamResult porque lo que queremos hacer es:

Un servicio que recupere los datos de nuestro repositorio, serialice nuestra entidad del dominio en un XML directamente en memoria. Devuelva su contenido especificando que es un fichero Excel y el nombre del fichero que se utilizará para guardar.

Todo esto lo generará dinámicamente en memoria sin tener que tener el fichero Excel físicamente en nuestro servidor. Sigue leyendo

Anuncios

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

Microsoft translator widget

Para los webmasters, blogers, desarrolladores que quieran internacionalizar sus sitios ahora podemos contar con una utilidad para traducir en tiempo real nuestras webs.

Solo tienes que acceder a la web www.microsofttranslator.com/widget seleccionar el color del control, el idioma inicial de la web y el idioma por defecto a traducir y automáticamente. Generar el código script y pegar en tu sitio.

Los programadores podremos acceder directamente al AJAX API para utilizarlos en nuestros proyectos. http://msdn.microsoft.com/en-us/library/ff512385.aspx y tenemos el foro de MSDN para nuestras consultas http://social.msdn.microsoft.com/Forums/en-US/microsofttranslator/threads Sigue leyendo