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...
Publicado por José M. Aguilar | con no comments

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...

Establecer el foco automáticamente, versión declarativa

Hace poco escribía un post en el que mostraba cómo se podía conseguir establecer el foco inicialmente en un control de edición , algo que era posible con Webforms pero no directamente con las herramientas que ASP.NET MVC trae de fábrica. La solución propuesta consistía en introducir en la vista código de script para desplazar el foco hasta el control indicado mediante una llamada al helper Html.SetFocusTo() , que implementábamos en el...
Publicado por José M. Aguilar | con no comments

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

Adzure, la nube gratuita soportada por publicidad

Microsoft es una compañía que nos tiene acostumbrados a giros extraños en sus políticas de comercialización y distribución de productos, y está claro que la nube no iba a permanecer ajena a ellos. Hace un par de días, ante el asombro de los presentes, Fred Swarm (cloud manager para la región EMEA) anunció la próxima apertura de Adzure, la edición gratuita del servicio Windows Azure soportada por publicidad . Esto...

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

ASP.NET MVC: Introducir lógica personalizada al detectar errores de validación en cliente

El sistema de validación en cliente de ASP.NET MVC , como sabemos basado en jQuery validate , es el encargado de mostrar u ocultar los mensajes de error asociados a cada campo conforme va comprobando su validez. Los mensajes de error asociados a cada validador son almacenados inicialmente en atributos data-val-* sobre el control a comprobar, y cuando se detecta un problema de validación, son mostrados copiando su contenido al interior de la etiqueta <span> que el helper Html.ValidationMessage...

Limpiar un input type=file

No es algo excesivamente frecuente, pero en ocasiones podemos necesitar limpiar el valor de un campo de tipo file (el que usamos para hacer los uploads ) de un formulario, por ejemplo, para evitar que el usuario envíe un archivo que por cualquier motivo no deba ser subido al servidor. O dicho de otra forma, imaginemos la siguiente porción de un formulario en pantalla, que podría ser generada con el código que podéis ver justo a continuación: < label for...
Publicado por José M. Aguilar | con no comments

El Tao de la Programación

Hace unos días charlaba con un colega sobre aspectos filosóficos del desarrollo de software, y me pareció curioso que no conociera “ The Tao of Programming ”, todo un clásico de la literatura friki, y lectura indispensable para los que nos dedicamos a esto. Este libro, escrito en el año 1987 por Geoffrey James , recoge, en un humorístico tono de misticismo oriental, distintas historias y parábolas con geniales mensajes de fondo sobre calidad...

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: WebGrid con filtro, paginación y ordenación

Hace unos días, el amigo Cadavid realizaba una consulta en los comentarios de la serie de posts que escribí hace unos meses sobre el helper Webgrid , sobre cómo podíamos implementar filtros personalizados sobre los datos mostrados, y dado que no es algo que se pueda explicar en un simple comentario, me comprometí a escribir un post sobre el tema, así que ahí va. El problema fundamental es que WebGrid no incorpora ningún tipo de ayuda para realizar...

ASP.NET MVC Request Pipeline

Iba a publicar un enlace hacia este documento en Twitter y Facebook, pero me ha parecido tan interesante que merece un post independiente. El caso es que el gran Simone Chiaretta ha publicado un excelente diagrama con el ciclo de vida de una petición en el framework ASP.NET MVC. Simplemente imprescindible para comprender lo que pasa por ahí dentro desde que se recibe una petición en el servidor hasta que es enviada la vista con la respuesta al cliente. Puedes pulsar sobre la...
Publicado por José M. Aguilar | con no comments

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

ASP.NET MVC: Compilar Vistas Razor en una DLL

Hace poco, el gran David Ebbo publicaba un proyecto experimental llamado “Razor Generator”, un conjunto de herramientas destinadas a precompilar las vistas Razor que he visto bastante interesante y que creo que vale la pena comentar. Aunque ya aquí hemos hablado varias veces sobre la compilación de vistas , el enfoque de este nuevo proyecto es bastante diferente, pues permite generar clases en C# partiendo de las vistas, lo que permite, por ejemplo: distribuir vistas compiladas...
Publicado por José M. Aguilar | con no comments
Archivado en: ,,
Más artículos Página siguiente >