Ver por etiquetas

Todas las etiquetas » desarrollo (RSS)

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)

ASP.NET MVC: obtener id y nombre de un control de formulario

Es bastante frecuente necesitar obtener el identificador o nombre de un control de entrada que ha sido generado por un helper de ASP.NET MVC. Por ejemplo, si queremos acceder desde scripts al contenido de un cuadro de texto creado de esta forma, obligatoriamente debemos conocer con exactitud qué identificador le asignó el sistema. Observad el siguiente código de vista, bastante trivial: @ Html.EditorFor(model=>model.Nombre) Intuitivamente podemos estar seguros de que el control...
Publicado por José M. Aguilar | 2 comment(s)

Glimpse: cómo crear plugins, paso a paso

Ya estuvimos viendo la herramienta Glimpse , un interesantísimo complemento que nos puede ayudar bastante a depurar nuestras aplicaciones, ofreciéndonos una visión muy completa de lo que ocurre en el servidor desde que recibe una petición hasta que la responde. Pero además de ser una utilidad imprescindible, una de sus características más interesantes es que puede ser extendido con suma facilidad. En este post vamos a ver cómo crear un plugin...

ASP.NET MVC 3 y la coma en los decimales

Si a día de hoy hay algo fatalmente poco resuelto en ASP.NET MVC, es sin duda la localización . Aunque con un poco de paciencia se pueden poner en marcha sistemas completamente adaptados a distintos idiomas y culturas, la verdad es que se echa en falta una mayor consideración, entre otros, con los que osamos utilizar la coma para separar la parte entera de la decimal en un número. Hace tiempo traté el tema por aquí, y aporté una solución para...

ASP.NET MVC: Nombres de acciones y controladores más amigables

La ruta por defecto de ASP.NET MVC es válida para la gran mayoría de escenarios simples, permitiéndonos acceder a las acciones a través de URLs del tipo http://{servidor:puerto}/{controlador}/{accion} Así, dada una clase controlador con acciones como las siguientes: public class InformacionCorporativaController : Controller { public ActionResult QuienesSomos() { return View(); } public ActionResult MisionVisionYValores() { return View(); } public ActionResult UneteANuestroEquipo...
Publicado por José M. Aguilar | con no comments

Retornar vistas dependiendo de la cultura actual en ASP.NET MVC

ASP.NET MVC utiliza los mismos mecanismos de ASP.NET para la implementación de sitios web localizados, por lo que podemos utilizar los clásicos recursos definidos en la carpeta App_GlobalResources para ir componiendo los interfaces. De esta forma, los literales de texto de las vistas son sustituidos por expresiones que, ya en tiempo de ejecución, son tomadas del archivo de recursos correspondiente al idioma actual: Sin embargo, recientemente me he encontrado con un escenario...
Publicado por José M. Aguilar | con no comments

Compilación de vistas ASP.NET MVC y el error “No se pudo cargar el tipo EntityDesignerBuildProvider”

Hacía tiempo que no activaba la compilación de vistas en ASP.NET MVC. La verdad es que si no tienes una máquina potente ralentiza bastante la construcción de las soluciones, pero ahora que la tecnología está de nuevo de mi lado, pensé que sería buena idea activarla en un proyecto MVC 3 y resulta que me he topado con el siguiente error de compilación: No se pudo cargar el tipo 'System.Data.Entity.Design.AspNet.EntityDesignerBuildProvider'...
Publicado por José M. Aguilar | con no comments
Más artículos < Página anterior - Página siguiente >