Alpha's Manifesto

A black and white figure's thought-hive

Pro ASP.NET MVC3 Framework

Pro ASP.NET MVC 3 Framework by ApressAcabo de terminar de leer Pro ASP.NET MVC3 Framework, un libro de Apress, escrito por Adam Freeman y Steven Sanderson. En pocas palabras, el libro es muy bueno, no exageradamente detallado pero buena aproximación para quiénes quieran ganar un nivel principiante/intermedio en la plataforma. Determinadas características han quedado afuera, y por supuesto, detalles de la implementación del framework también. Eso habría sido material para una buena cantidad de otros libros. Este en particular está muy orientado al ejemplo práctico, y es ideal para afianzar teoría con pequeños snippets de código que la hacen práctica. Cubre algunos aspectos relacionados a esto para darle un buen contexto y es una buena opción por su precio, pero no es suficiente para el que quiera entrar demasiado profundo en los interiores de la plataforma.

El libro se divide en tres grandes partes. La primera parte, llamada Introduciendo ASP.NET MVC 3, es una explicación muy a vuelo de pájaro de qué es MVC, cómo es la aproximación de Microsoft a él y unos ejemplos básicos para demostrar la organización de una aplicación MVC. Se habla un poco de inyección de dependencia, haciendo uso de Ninject, pero su aplicación es de lo más básica y no justamente asociada a las buenas prácticas, aunque como primer paso, es bueno. Habla de DDD y de TDD, ayudado de Moq, desde un punto de vista tan superficial que no hacen impacto en el resto del contenido, pero siguen estando ahí.

La segunda parte del libro, ASP.NET MVC3 en Detalle, comienza a hablar del sistema de ruteo, de cómo se enlazan a él los controladores y las acciones, el uso de filtros (casi tocando AOP para controladores, pero no mencionándolo), uso de controladores propios, autorización, generación de un engine propio de vistas, uso de helpers, vistas parciales, acciones hijas, templates de modelos, binding de modelos, validación, AJAX, y el uso de jQuery. En estos últimos dos puntos debo hacer una aclaración: la forma en la que se implementa AJAX es todavía muy Microsoft-oriented, del estilo de hacer una receta y que todo funcione de forma mágica. Se queda muy corto para customizaciones y aplicaciones reales con lógica de cliente compleja, pero recordemos que este libro es sobre ASP.NET MVC, no sobre JavaScript. Aún así, es un buen comienzo para profundizar en otro libro.

La tercera y última parte, Entregando Projectos ASP.NET MVC 3 Exitosos, cubre varios puntos extras no exactamente de a la plataforma pero relacionados. Uno de ellos es la seguridad. Se le dedica un capítulo entero a determinados tipos de ataque y forma de evitarlos. Como los otros temas tangenciales, no es una guía definitiva, pero un buen punto para comenzar. Otro capítulo está dedicado a la autenticación y la autorización, sin mucho detalle y sin mucho ejemplo esta vez, pero pasos básicos que nos permiten conocer varias opciones distintas para las distintas situaciones que debamos afrontar. El último capítulo de esta parte se enfoca en el deployment y la generación de paquetes de instalación. Nuevamente, no contiene mucho detalle.

El libro en general es bueno como introducción y bueno como ejercicio de aprendizaje. Es detallado en el comienzo y light al final, con lo cual sus 836 páginas en realidad son un resumen de mucho más que podría cubrirse. Es un balance apropiado, con lo cual recomiendo su lectura. Le otorgo unos 4 zorrinitos.

Link del día: jQuery File Upload

Me crucé con este plugin hace tiempo y lo quería probar pero no he tenido la oportunidad de hacerlo todavía. Este plugin envuelve básicamente toda la funcionalidad de subir archivos a un servidor, mostrar barras de progreso, permitir drag & drop, aparte de la clásica búsqueda de archivos desde cuadros de diálogo, selección múltiple y sin usar Flash.

También: posibilidad de cancelar el upload, preview de imágenes, formulario estándar si no hay JavaScript habilitado, extensible, y por supuesto, open source.

jQuery File Upload parece ser una de esas joyitas que nos dan un problema muy común ya solucionado.

Via Creativos Online, y alguien que lo compartió en Google Reader (perdón, pero ya no sé quién fue!).

Soy un zorrinito con soluciones.

Link del día: Gráficos para tu web, Flash + HTML5

Gracias a DN pude checkear la web de ZingChart, un producto que nos proporciona la posibilidad de generar gráficos interactivos a través de datos JSON. Toda esta interactividad puede lograrse a través de AJAX, permitiendo una buena experiencia del usuario y una riqueza gráfica interesante.

Más allá de las características del producto (que son muchas), hay dos a destacar. La primera de ellas, es que ahora nos provee la posibilidad de utilizar su versión HTML5 cuando sea posible, permitiéndonos de otra forma volver a Flash. Comparen ustedes mismos y vean las diferencias de velocidad y tamaño.

La segunda característica es que a pesar del precio que tiene este producto (algo caro en mi opinión personal) es que podemos bajar la versión gratuita, totalmente ilimitada en su uso permitido, y la única contra que tiene es un link al sitio original y un textito que dice “Powered by Zing Charts”. Yo creo que vale la pena, no?

Soy un zorrinito gráfico.

Link del día: ¿Cómo rankear contenidos?

Hace un tiempo me puse a investigar sobre cómo utilizar alguna técnica que me permitiera rankear contenidos. Es decir, tener algún feedback de parte de los usuarios para saber qué contenido gustaba más y cuál no tanto. “Copiémosnos de los grandes“, pensé yo, y busqué algún ranking de estrellas, al mejor estilo Youtube.

Encontré un plugin de jQuery llamado Star Rating, un sistema que basado en AJAX, y dos o tres imágenes, podemos tener un sistemita de ranking por estrellas muy simpático. Es muy personalizable y fácil de implementar, también muy fácil de acomodar según los distintos layouts que dispongamos para nuestro contenido, y finalmente, algo personalizable en funcionalidad también (por ejemplo, podemos hacer que muestre un promedio o un valor determinado, podemos hacer que sólo se pueda votar una vez o que se pueda cambiar el voto, o que se puedan votar varias veces, etc.)

Fue no mucho después que leí un artículo llamado Youtube Like Rating with jQuery & Ajax, y ahí fue en donde me dí cuenta que los grandes ya no utilizan el sistema de estrellas. Por si se dieron cuenta, Facebook tiene sólo un “Like” (o “Me gusta”, en español), y Youtube ahora tiene un “Like” y un “Don’t like”. ¿Por qué tan simplista?

La respuesta estaba en un artículo del blog oficial de Youtube, llamado Five Stars Dominate Ratings, en donde básicamente explican que de las 5 estrellas, rara vez alguien utilizaba la número 2, 3 y 4. Generalmente, si a alguien le gustaba un video, lo rankeaba como 5 estrellas, y si no le gustaba para nada, simplemente lo abandonaba o lo rankeaba con una estrella. ¿Y en el medio? Una minoría.

Y sobre ese mismo tema encontré un artículo muy interesante, también analítico de la gente de Steepster, Brewing a Better Rating System, en donde explican cuáles fueron las distintas aproximaciones que tuvieron para que la gente rankeara la información de su blog. Es interesante leer esta versión porque a la vez ellos creen que el sistema de sí/no no es del todo apropiado para expresar lo que uno piensa de un artículo, y entonces ellos permitieron una variabilidad en el puntaje.

¿Qué piensan ustedes? ¿Cuál sería la mejor forma de pedirle a alguien que opine, fácilmente, de un artículo/contenido que ustedes hayan generado?

Soy un zorrinito de feedback.

Link del día: Consejitos jQuery, MySQL, AJAX y PHP

Sabemos que los cuatro componentes mencionados (jQuery, MySQL, AJAX y PHP) deben de ser unos de los más comunes para generar aplicaciones web. Cada uno tiene una gran variedad de tutoriales o aproximaciones, podemos buscar y encontrar manuales, libros, ejemplos en abundancia.

Sin embargo, hay algo que resulta muy atractivo, que es lograr buenas aproximaciones, y con “buenas” me refiero a atractivas, usables y novedosas. Ya varios lo han logrado, como es el caso de Facebook, Twitter, Digg y tantos otros servicios con conceptos como el scroll infinito, la manipulación inline del contenido, interfaces avanzadas, etc. Muchos ejemplos pueden servirnos para hacer nuestra propia versión, y como ya alguien me dijo “fijate cómo lo hizo alguien que ya lo haya hecho”.

Para eso el artículo de hoy nos viene muy bien, es jQuery, Ajax, PHP and MySQL projects, de 9Lessons, un compilado de muchos artículos de sus blogs que muestran ejemplos de cosas comunes que querremos lograr, y que, por supuesto, podemos adecuar a nuestras necesidades particulares. Una suerte de cheatsheet pero algo extenso y complejo.

Soy un zorrinito web.