Ver por etiquetas

Todas las etiquetas » desarrollo (RSS)

Knockout (I): pongamos orden en el lado cliente

La programación web tradicional, basada en el modelo de petición-respuesta de página completa, no requería demasiado código en cliente más allá que el necesario para realizar validaciones y lógica de presentación simple: ¿para qué complicarnos en cliente si podíamos hacerlo todo en servidor? De hecho, durante la era Webforms, la célebre pareja formada por viewstate y postback llevaban a servidor prácticamente...

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

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

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

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

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: Textarea con maxlength

Hace cerca de un año ya vimos por aquí cómo crear cuadros de edición de de extensión limitada , o en otras palabras, tags <input type="text" … /> con el atributo Maxlength establecido, con objeto de evitar la introducción de textos más extensos de lo indicado en las restricciones StringLength del Modelo. En este post vamos a implementar la misma funcionalidad, pero sobre áreas de texto (tag <textarea> ), de forma...
Publicado por José M. Aguilar | 2 comment(s)
Más artículos < Página anterior - Página siguiente >