Ver por etiquetas

Todas las etiquetas » asp.net » desarrollo (RSS)

Generar archivos Excel como un señor con ClosedXml

Venga, lo confieso: yo también he generado desde mis aplicaciones contenidos HTML y los he enviado al cliente en un archivo con extensión XLS, incluso modificando el content-type, para que pareciera un documento de hoja de cálculo. Durante años. Y también le he dicho a mis clientes que el molesto mensaje que aparece al abrirlo desde Excel, el que indica que el contenido del archivo no coincide con la extensión del mismo, es algo normal. Pero esto se acabó...

¿Añadir una barra al final de las URL?

Hace poco veíamos que el nuevo sistema de routing usado por proyectos MVC 4 permitía una cierta configuración del formato de URL generadas por la aplicación al usar helpers como Url.Action() o Html.ActionLink() , y cómo usando una simple línea de código podíamos hacer que las rutas se generaran usando sólo minúsculas . Pues bien, al igual que en ese caso, en los proyectos que usen la última versión del ensamblado...
Publicado por José M. Aguilar | con no comments

Rutas en minúsculas en MVC 4 y ASP.NET 4.5

Seguro que alguna vez habéis notado que al generar URLs hacia acciones de una aplicación MVC usando helpers como Url.Action() o Html.ActionLink() , éstas son generadas usando mayúsculas y minúsculas según hubiéramos indicado en los parámetros de las llamadas: Helper URL generada @Url.Action("index", "home") /home/index @Url.Action("List","Products", new{ Category="PC" }) /Products/List?Category...
Publicado por José M. Aguilar | con no comments

DisplayModes en MVC 4

Como venimos comentando desde la aparición de la preview de MVC 4 , el Display Mode o modo de visualización es un nuevo mecanismo que permite la creación de aplicaciones capaces de retornar vistas específicas según las características y capacidades del cliente conectado u otros parámetros del entorno de la petición. Esto tiene mucha utilidad directa, por ejemplo, a la hora de construir aplicaciones web que adapten su interfaz en función...

Login único para subdominios en ASP.NET

Imaginad que tenemos un sistema web de cierto volumen y decidimos estructurarlo en aplicaciones independientes, cada una publicada en un subdominio propio: www.acme.org , que sería el sitio principal. crm.acme.org , con el sistema CRM de la empresa. erp.acme.org , con un sistema de gestión empresarial. administration.acme.org con las herramientas de administración del sistema. etc. Desde un punto de vista operativo, es probable que nos interese suministrar un mecanismo de autenticación...
Publicado por José M. Aguilar | con no comments
Archivado en: ,,

ASP.NET MVC 4 Release Candidate ya disponible

¡Bueno, pues parece que esto se mueve! Hace unos días ha sido publicada la Release Candidate de ASP.NET MVC 4 coincidiendo con la liberación de Windows 8 Release Preview y Visual Studio 2012 Release Candidate (que, de hecho, incluye de serie MVC 4 RC). Y como viene siendo costumbre, vamos a dar un repaso a todo lo que encontramos en esta nueva entrega, que presumiblemente será la última (bueno, o penúltima, nunca se sabe) antes de la versión definitiva...

SignalR (IV): Hubs

Como vengo comentando desde hace un tiempo, SignalR es un framework realmente impresionante y aporta unas posibilidades enormes en prácticamente cualquier tipo de aplicación. Ya hemos visto qué es y las bases en las que se sustenta , y también hemos visto algunos ejemplos de uso utilizando conexiones persistentes ( aquí y aquí ), que es el enfoque de menor nivel disponible a la hora de desarrollar servicios basados en esta plataforma. En este post ascenderemos...
Publicado por José M. Aguilar | con no comments

SignalR (III): Más Conexiones Persistentes

Lo divertido de escribir sobre productos que están todavía en fase de desarrollo es que cambian... y a veces, ¡de qué forma! Pues esto ha ocurrido con SignalR: recientemente se publicó la revisión 0.4 y bastantes cosas de las tratadas en el post anterior de la serie ha quedado en agua de borrajas . En fin, estaba avisado, así que mucho no puedo quejarme ;-) Por tanto, esta tercera entrega de la serie vamos a dedicarla (otra vez ;-)) a las conexiones...
Publicado por José M. Aguilar | con no comments

SignalR (II): Conexiones persistentes

Hace poco estuvimos viendo por aquí conceptos básicos sobre SignalR , el componente que nos permite crear espectaculares aplicaciones en las que múltiples usuarios pueden estar colaborando de forma simultánea, asíncrona, y en tiempo real . Entre otras cosas, comentábamos que SignalR crea una capa de abstracciones sobre una conexión virtual permanente entre cliente y servidor, sobre la que podemos trabajar de diferentes formas: mediante conexiones persistentes...

Introducción a SignalR (I): Conceptos básicos

Una aplicación que mezcla internet, asincronía, y múltiples usuarios colaborando e interactuando al mismo tiempo siempre es merecedora de un “¡uau!”. Seguro que, al igual que un servidor, en algún momento os habéis quedado maravillados con la interactividad que presentan algunos sistemas web modernos, como Facebook, Google Docs, o muchos otros, en las que estamos recibiendo actualizaciones, prácticamente en tiempo real, sin necesidad de...

IMetadataAware, atributos de metadatos personalizados

Hace pocas semanas profundizamos en los mecanismos de obtención de metadatos del modelo en ASP.NET MVC y vimos cómo extender el framework para dotarlo de vías alternativas desde las que obtener esta información usando un proveedor personalizado. Sin embargo, no es este el único mecanismo de extensión del framework a este respecto: también podemos crear fácilmente nuevos atributos que aporten información extra de metadatos a las clases...
Publicado por José M. Aguilar | con no comments

ASP.NET MVC: establecer el foco en un control al cargar la página

Uno de los aspectos más criticados por los desarrolladores cuando comienzan a trabajar con ASP.NET MVC es el hecho de tener que volver a resolver problemas que estaban ya más que solucionados en Webforms. Y uno de estos casos es un detallito muy simple pero útil: establecer el foco de edición en un control concreto al cargar una página. En Webforms era suficiente con asignar al atributo defaultFocus del tag <form> el nombre del control que nos interesara,...
Publicado por José M. Aguilar | con no comments

Mamá, ¿de dónde vienen los metadatos?

En ASP.NET MVC normalmente utilizamos atributos para aportar información adicional a las propiedades del Modelo , incluyendo detalles como su descripción textual, formato de presentación, tipo de datos, etc. Esta información puede ser utilizada desde la capa vista para generar etiquetas, editores y, en algunos casos, incluso lógica de edición o presentación en la página. Sin embargo, los atributos en el propio código de la clase no son...
Publicado por José M. Aguilar | con no comments

Validator providers en ASP.NET MVC

En la pasada charla sobre el sistema de validaciones de MVC 3 vimos un ejemplo, creo que bastante ilustrativo, de los proveedores de validación del framework. Concretamente, implementamos un proveedor capaz de obtener las anotaciones partiendo de las restricciones definidas en el web.config . Es decir, las reglas de comprobación como Required o StringLength no las definíamos a nivel de código mediante atributos, sino en el archivo de configuración, lo que podía...
Publicado por José M. Aguilar | con no comments

Compactación y minimización de Javascript y CSS para ASP.NET

Había comentado que una de las novedades que ya podíamos disfrutar en la developer preview de MVC 4 era el sistema de compactación y minimización de scripts y CSS , y que, además de ser bastante útil y sencillo, podíamos utilizarlo a día de hoy en nuestras aplicaciones MVC 3 e incluso en ASP.NET Webforms . Este mecanismo hace posible la creación de bundles, o paquetes de uno o varios archivos de scripts o estilos, que son optimizados...

ASP.NET MVC: Binding de enums y EnumDataType

El pasado mes de julio publicaba el post “ Binding de enums en ASP.NET MVC ”, donde analizaba los problemas que podían aparecer cuando estamos intentando bindear tipos enumerados y los datos de entrada contienen valores incorrectos, y planteaba una solución basada en un model binder personalizado . A raíz de dicho post, el amigo Héctor S. (¡gracias!) me envió una interesante pregunta: ¿por qué no utilizar la anotación System...

Membership, roles y profiles sobre SQL Compact con ASP.NET Universal Providers

Hace un par de días comentaba la aparición de Universal ASP.NET Providers , un componente que incluye proveedores de membership , roles , profiles y estado de sesión capaces de funcionar con todas las versiones de SQL Server desde la 2005, ediciones express, SQL Azure y SQL Compact 4.0, y utilizables en cualquier aplicación ASP.NET, ya sea Webforms o ASP.NET MVC. En este post vamos a ver un ejemplo ómo podemos utilizar este nuevo componente para montar en pocos...
Publicado por José M. Aguilar | con no comments

ASP.NET Universal providers

Poco antes de verano comentábamos de pasada la aparición de su versión alfa, y ya desde mediados de agosto tenemos aquí la versión final de ASP.NET Universal Providers , un componente que incluye proveedores de membership , roles , profiles y estado de sesión capaces de funcionar con todas las versiones de SQL Server desde la 2005, ediciones express, SQL Azure y SQL Compact 4.0, y utilizables en cualquier aplicación ASP.NET, ya sea Webforms o ASP.NET...

ASP.NET MVC 4 Developer Preview: un primer vistazo

Es habitual que los eventazos que organiza Microsoft de vez en cuando sean aprovechados para presentar nuevas versiones de productos, y por supuesto el pasado \\BUILD no ha decepcionado en ese aspecto: han sido liberadas versiones preliminares para desarrolladores de Windows 8, Windows 8 Server, Visual Studio 11, ASP.NET 4.5, MVC 4, Webpages 2, y seguro que muchas más cosas que ahora no recuerdo. Obviamente, el revuelo de estos últimos días ha sido, como siempre, brutal. Pero...

ASP.NET MVC: retorno de archivos .Zip creados al vuelo

ASP.NET MVC viene acompañado de serie por un buen número de subtipos de ActionResult que podemos utilizar como retorno de nuestras acciones ( FileResult , ContentResult , ViewResult , RedirectResult , etc…) y que cubren la mayoría de escenarios de uso frecuente al desarrollar aplicaciones para este framework. Pero sin duda, lo mejor de todo es lo fácilmente que podemos extender este conjunto para lograr resultados muy potentes, reutilizables y respetuosos con el...
Publicado por José M. Aguilar | con no comments
Más artículos Página siguiente >