lunes, 5 de diciembre de 2011
Estos son los enlaces publicados en Variable not found en Facebook y Twitter del 28 se noviembre al 3 de diciembre de 2011. Espero que os resulten interesantes. :-)
Publicado en Variable not found
- Vídeo: ASP.NET vNext - Smart Tasks y generación de eventos de controles desde la vista HTML
Luis Ruiz - Tutorial MongoDB con ASP.NET MVC - Ejemplo Práctico
Gonzalo Pérez - 5 jQuery Infinite Scrolling Demos
jQuery4u (vía @etnassoft) - Disponible una nueva entrega del libro GRATUITO de Azure : AppFabric y WIF
Vía @ibonilm - Generador de CSS3
Vía @boagworld - Why Many Developers Hate ASP.NET… and Why They’re Wrong
Jeremy McPeak - Scott Hanselman's 2011 Ultimate Developer and Power Users Tool List for Windows
Scott Hanselman - Building a Windows Azure App using Azure Queue, Azure Table and ASP.NET MVC Web Role
Shiju Varghese - ASP.NET MVC Controls Toolkit 1.5.5 released and available to download
Vía @campusmvp - New ASP.NET website launched
Scott Hanselman - Unobtrusive jQuery UI with AJAX support
Andy Cohen - 25 Amazing HTML5 Tricks and How to Make Them
DevStand - The Script Tag
Chris Coyier - Global HandleErrorAttribute in ASP.net MVC3
Jonathan Creamer - De vuelta a lo básico, codificar html, javascript y url
Sergio León - Web API preview 6 is out: how to get a RESTful mind
Simone Chiaretta - jQuery Time Entry with Time Navigation Keys
Rick Strahl - EF Migrations, EF 4.3 y que nos deparará el futuro
Unai Zorrilla - Code First Migrations: Beta 1 Released
ADO.NET Team - La cuarta preview the IE10
Juan Laó - The craziest Javascript implementations
Vía @etnassoft - Custom Action Method Selector in MVC
Jigar Bagadai - HTML5 for Applications: The Fourth IE10 Platform Preview
IEBlog - Entity Framework Batch Update and Future Queries
Paul Welter (vía @osotorrio) - Vistas y View Engines en ASP.NET MVC
Marc Rubiño - Techniques for real-time client-server communication on the web (SignalR to the rescue)
Maarten Balliauw - Uso de IDisposable
Juan Laó - AppFabric Service Bus Test Client
Ibon Landa - Storage Queues vs Service Bus queues
Ibon Landa - Relayed Messaging y Brokered Messaging
Ibon Landa - ¿Y si todo lo que haces llevara tu nombre grabado?
José Manuel Alarcón - How To Write a Plugin in jQuery
Shakeel Iqbal - Google Maps API V3 for ASP.NET
S V Sai Chandra (vía @osotorrio) - Phil Haack deja Microsoft
Phil Haack - Writing a Fluent ASP.NET MVC Recursive TreeView Helper
Matt Hidinger - CSS Editor Hierarchical Indentation in Visual Studio 2011 Developer Preview
Abhijit Jana - Task Cancellation
BlackWasp - Añadir dlls en la GAC de las máquinas de Windows Azure
Gisela Torres - Composing Entity Framework Fluent Configurations
K. Scott Allen - Nuevo soporte de Empaquetado y Minificación (ASP.NET 4.5)
Juan Laó - New Bundling and Minification Support (ASP.NET 4.5 Series)
Scott Guthrie (traducido por Juan Laó) - Razor Donut Caching
Phil Haack
Publicado en Variable not found
Publicado por José M. Aguilar a las 10:11 a. m.
Hay
2 comentarios, ¡participa tú también!
Etiquetas: enlaces
martes, 29 de noviembre de 2011
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 la única vía para especificar metadatos en el framework. En este post veremos cómo extender el framework para crear nuevas vías para especificar esta información.
Sin embargo, los atributos en el propio código de la clase no son la única vía para especificar metadatos en el framework. En este post veremos cómo extender el framework para crear nuevas vías para especificar esta información.
lunes, 28 de noviembre de 2011
Estos son los enlaces publicados en Variable not found en Facebook y Twitter del 21 al 27 de noviembre de 2011. Espero que os resulten interesantes. :-)
Publicado en Variable not found
- C#/.NET Little Wonders: The Predicate, Comparison, and Converter Generic Delegates
James Michael - MVC Data URI HTML Helper
Dean Hume - Lazy Remote Validation with ASP.NET MVC 3
Pietro Brambati (vía @osotorrio) - Download Free eBook: Razor View Engine in MVC 3
Abhimanyu Kumar Vatsa (vía @lluisfranco) - Adding Personality with CSS3 Transitions and Animations
IEBlog - Modernizr.js: Polyfills
K. Scott Allen - Associations in EF 4.1 Code First
Morteza Manavi (vía @osotorrio) - Helpers para formularios (ASP.NET MVC)
Eduard Tomás (vía @JTorrecilla) - Web Platform Installer v4 command line (WebPICMD.exe) Preview Release
WebPICmd Team (Vía @wasat) - Microsoft Translator API
Juan María Laó (vía @lluisfranco) - Coffee delivers jolt deep in the brain
Laura Sanders - Getting Query Parameters in Javascript
Phubar Baz (!) - Contour Analysis for Image Recognition in C#
Greg Duncan - ReSharper Settings in 6.1
Hadi Hariri - Poster: What’s new in .NET Framework 4.5?
Heikniemi Hardcoded - Inserciones Masivas en MongoDB vs SQL Server (IV)
Pablo Doval - DDD: 2- Framework de IoC (Service Pack 1)
Omar del Valle - El nuevo objeto jQuery $.Callbacks()
Carlos Benítez - jQuery 1.7.1. released
jQuery Team - Crear un archivo .ZIP con JavaScript
Pablo Suárez (vía @osotorrio) - HTML5 Semantics
Bruce Lawson - Integrating JavaScript Unit Tests with Visual Studio
Stephen Walther - Embedding RavenDB into an ASP.NET MVC 3 Application
Justin Schwartzenberger - Aclarando CQRS [traducción]
Pablo Núñez & Co. - Task Support for Asynchronous Controllers in MVC 4
Malcolm Sheridan - Fechas UTC, JavaScript, jQuery timeago, templates y otras hierbas
Luis Ruiz Pavón - Saber si un elemento tiene un evento jQuery asignado
Sergio León - Bloquear los botones mientras se envía un formulario
José Manuel Alarcón - Agilismo Vs Modelo waterfall tradicional. Muy interesante y resumidito.
Juan Palacio - Desarrollo de una aplicación Metro en C# y XAML
Eduard Tomás (vía @Jtorrecilla) - Large-scale JavaScript Application Architecture
Addy Osmani - Aggregating RSS Feeds in C# and ASP.NET MVC 3
Wade Wegner - 6 Tips to Help You Build a Great Web Application
Greg & Adrian - Los nuevos métodos jQuery on() y off()
Carlos Benítez - DDD: 2- Framework de IoC (parte 1) y DDD- 2- Framework de IoC (parte 2)
Omar del Valle - HOT:Inserciones masivas en Sql Sersver vs Mongo DB (III)
Unai Zorrilla
Publicado en Variable not found
miércoles, 23 de noviembre de 2011
Lo primero, para el que aún no lo sepa, se ha cancelado por causas de fuerza mayor la charla de Luis Ruíz Pavón sobre inyección de dependencias en ASP.NET que estaba prevista para el próximo martes 29 de noviembre. Sentimos las molestias que esto pueda causar, pero lo primero es lo primero :-).
Sin embargo, como ya teníamos el cuerpo hecho a aprender cosas interesantes la semana que viene, tendremos el placer de contar con el gran Marc Rubiño, MVP en ASP.NET y fundador de LoNetCamp, que nos mostrará el lunes 28 de noviembre a las 19:00h (horario peninsular español) la potencia que aporta la unión de tecnologías como ASP.NET MVC, HTML5, CSS3 y JQuery.
Descripción del evento:
Ah, y los que ya teníais la fecha del 29 reservada para disfrutar con un Webcast de categoría, recordaros que ese mismo día podéis encontrar a Lluis Franco, MVP C# y un fenómeno de la naturaleza, hablando sobre programación paralela en SecondNug, a las 19:30h (GMT+1).
Buena semana de eventos tenemos por delante, ¿eh?
Publicado en: Variable not found.
Sin embargo, como ya teníamos el cuerpo hecho a aprender cosas interesantes la semana que viene, tendremos el placer de contar con el gran Marc Rubiño, MVP en ASP.NET y fundador de LoNetCamp, que nos mostrará el lunes 28 de noviembre a las 19:00h (horario peninsular español) la potencia que aporta la unión de tecnologías como ASP.NET MVC, HTML5, CSS3 y JQuery.
Descripción del evento:
Como siempre, podéis asistir desde casa o el trabajo (es un Webcast online), y la asistencia al evento es totalmente gratuita. Para acceder, simplemente debéis registraros en la siguiente dirección:ASP.NET MVC + HTML5 + CSS3 + Jquery = La unión perfecta
Las aplicaciones web modernas nos exigen cada vez más utilizar estándares para dotar a nuestra aplicación de una vistosidad y usabilidad nunca visto hasta el momento. Con ASP.NET MVC podemos separar las responsabilidades de nuestra aplicación de una forma sencilla y con HTML5 y CSS3 podemos obtener los mejores resultados independientemente del navegador gracias a librerías como modernizr.
En este Webcast lo que veremos es cómo de una forma totalmente práctica y con Visual Studio 2010 podemos crear una aplicación web totalmente funcional.
¿Qué utilizaremos en esta práctica?
ASP.NET MVC v.3: Es una plataforma gratuita, Open Source y está incluida en .NET 4.0. Nos sirve para realizar aplicaciones ASP.NET utilizando el patrón MVC, separando las responsabilidades ofreciéndonos beneficios como desarrollo orientado a pruebas “TDD”, mejor soporte de SEO con URLs más limpias, etc.
HTML v.5: La quinta revisión del veterano HTML no finalizada, pero los navegadores se han lanzado a una lucha frenética para adaptar sus especificaciones. Esta versión ha tenido en cuenta las nuevas necesidades y nos ofrece una web semántica.
CSS3: La tercera revisión de la hoja de estilos en cascada, que nos permite separar la estructura del documento de su presentación.
JQuery: Librería script que encapsula la complejidad de JavaScript y nos permite realizar animaciones, interactuar con el DOM y extender la aplicación de una manera muy sencilla y viene incluido en los proyectos ASP.NET MVC.
Modernizr: Librería que nos permite validar si el navegador soporta alguna de las nuevas funcionalidades de HTML 5 y nos permite actuar en consecuencia. Para hacer nuestra aplicación realmente cross-browser.
Ah, y los que ya teníais la fecha del 29 reservada para disfrutar con un Webcast de categoría, recordaros que ese mismo día podéis encontrar a Lluis Franco, MVP C# y un fenómeno de la naturaleza, hablando sobre programación paralela en SecondNug, a las 19:30h (GMT+1).
Buena semana de eventos tenemos por delante, ¿eh?
Publicado en: Variable not found.
martes, 22 de noviembre de 2011
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
Sin embargo, al hilo de una consulta reciente en los foros de ASP.NET MVC en MSDN, perfectamente contestada por el amigo Eduard Tomás, pensé que realmente tenemos poco control sobre cómo se muestran estos errores, así que me he puesto un rato a ver cómo podíamos conseguir introducir lógica personalizada en este punto aprovechando la flexibilidad que ofrece jQuery validate 1.9.
Salvo por la escasez de documentación de este componente, tomar el control en el momento de mostrar los mensajes de error es bastante sencillo. Basta con establecer una función en la propiedad
La función
En el segundo parámetro de la función encontraremos un array con los errores a mostrar. En cada elemento tendremos disponible la propiedad
Es importante tener en cuenta que la función
Por ejemplo, en el siguiente código utilizamos el efecto “highlight” de jQuery UI para resaltar con un rápido destello el elemento en el que se ha detectado un error:
Publicado en Variable not found.
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()
habrá generado sobre la página.Sin embargo, al hilo de una consulta reciente en los foros de ASP.NET MVC en MSDN, perfectamente contestada por el amigo Eduard Tomás, pensé que realmente tenemos poco control sobre cómo se muestran estos errores, así que me he puesto un rato a ver cómo podíamos conseguir introducir lógica personalizada en este punto aprovechando la flexibilidad que ofrece jQuery validate 1.9.
Salvo por la escasez de documentación de este componente, tomar el control en el momento de mostrar los mensajes de error es bastante sencillo. Basta con establecer una función en la propiedad
showErrors
de los settings
del plugin, cosa que podemos hacer con el siguiente script de inicialización:<script type="text/javascript">
$(function () {
var settings = $.data($('form')[0], 'validator').settings;
settings.showErrors = function (errorMap, errorList) {
// Aquí el código personalizado:
[...]
// Y si nos interesa, finalmente podemos
// ejecutar el comportamiento por defecto
this.defaultShowErrors();
};
});
</script>
(Por simplificar, estamos asumiendo que en el formulario hay un único tag <form>
, que es el que capturamos con el selector).La función
showErrors()
recibe dos parámetros. El primero es un “mapa” donde asociamos a cada clave (nombre del campo) el mensaje de error que tenga asociado. Así, por ejemplo, el valor de errorMap.Nombre
será nulo si el campo “Nombre
” del formulario no tiene ningún error (ha validado correctamente), o el texto del error en caso contrario.En el segundo parámetro de la función encontraremos un array con los errores a mostrar. En cada elemento tendremos disponible la propiedad
element
, desde la que podemos acceder al control que ha generado el error, y message
, donde podemos consultar o establecer la descripción del mismo.Es importante tener en cuenta que la función
showErrors()
es invocada con mucha frecuencia durante el proceso de edición (pérdida de foco, obtención de foco, pulsación de teclas…), por lo que desde el punto de vista de la usabilidad no tiene demasiado sentido introducir en ella procesos bloqueantes (como puede ser un alert()
) o demasiado largos en el tiempo, para evitar que se solapen.Por ejemplo, en el siguiente código utilizamos el efecto “highlight” de jQuery UI para resaltar con un rápido destello el elemento en el que se ha detectado un error:
settings.showErrors = function (errorMap, errorList) {
for (var i = 0; i < errorList.length; i++) {
var error = errorList[i];
// error.element es el elemento que ha provocado el error
$(error.element).effect("highlight", { times: 1 }, 100);
}
this.defaultShowErrors();
};
En fin, algo no demasiado útil ;-P, pero interesante en cualquier caso para profundizar un poco en los misterios e interioridades de jQuery validate.Publicado en Variable not found.
Publicado por José M. Aguilar a las 10:33 a. m.
Etiquetas: aspnetmvc, jquery, scripting, trucos, validadores