Buscando el template de proyecto perfecto.

Comienzo una nueva aplicación. Tengo que crear un nuevo proyecto. No quiero ponerme a configurarlo de cero.
Copio uno que está funcionando y voy borrando lo que no me hace falta. ! No funciona ! me olvidé de cambiar algunos paths, ¿que mas tenía que cambiar?, ¿ Cómo era ? … siempre me pasa lo mismo.
Pienso…. Un día voy a hacer un template de proyecto bien sólido para empezar con el pié derecho.
!! Es la hora¡¡. !! me cansé ¡¡. !! Lo voy a hacer ¡¡ Sigue leyendo

Ya esta disponible nuestro Framework para MVC4 Web Api

CRUD
He escuchado algunas sugerencias y decidí adaptar nuestras herramientas para que funcionen bajo proyectos de Visual Studio tipo MVC4 Web Api.
No fue difícil la adaptación ya que el Framework funcionaba con una filosofía muy similar a la propuesta por Web Api. Simplemente agregué un par de propiedades y modifique el protocolo de request para que sea RESTFul.
Aquí les dejo un CRUD o ABMC mostrando la técnica de desarrollo, que por cierto, es muy fácil. Sigue leyendo

Validación no obstrusiva

Validacion
¿ Obstrusiva u Obstructiva ? … la dos palabras aparecen subrayadas en rojo por mi editor.
De todas maneras, para no complicarnos con palabras difíciles, vamos a decir que intentaremos lograr hacer un formulario web cuya validación no vuelva loco al usuario, sin por ello dejar de controlar la calidad de los datos que se ingresen.
Durante años sentí que la parte mas fastidiosa del desarrollo de una aplicación es la validación de los formularios.
No puedo evitar tener pensamientos tales como: «Si no fuera porque algún f%u@c#king usuario que mete cualquier m@i#e@*rda en los formularios y me hace volar el sistema por el aire… esto ya estaría listo, la rep€#ut@&%ma madre que los re mil ….».
Después de un rato, respiro hondo, cuanto hasta diez y me pongo a trabajar. Sigue leyendo

Nuevo control TextBox con mascara para Asp.net

Dirán que soy nostálgico, dirán que me estoy poniendo viejo y pienso que todo tiempo pasado fue mejor.
Digan lo que quieran, pero sigo creyendo que el viejo Picture de FoxPro solucionaba gran parte de los problemas con máscaras en las cajas de texto.
Inspirado en el Dbase y FoxPro, y tal vez como homenaje a esos nobles lenguajes, es que desarrollé este nuevo control que espero nos brinde las mismas satisfacciones. Sigue leyendo

Demo en Vivo

Puse a disposición de quien guste probar MoniMisi Framework unos links que encontrarán sobre su derecha.
El proyecto sigue creciendo, y a medida que esta tendencia continúe, iré agregando mas ejemplos.
Les pido por favor tengan en cuenta que el host sobre el cual corre esta Demo es un servicio gratuito, por lo que los recursos asignados son mas que escasos. Luego, si les interesa, les recomiendo se bajen los fuentes y lo prueben en sus propios servidores.
Por último no olviden cada tanto bajarse MoniMisi.dll ya que las mejoras son continuas y puede haber agregados que les interese.

MoniMisi Framework y el patrón MVC

El modelo de abstracción de desarrollo MVC viene pegando fuerte en el mundo de los desarrolladores. Para los que todavía no oyeron hablar del patrón Modelo Vista Controlador (MVC) les recomiendo este link.
Confieso que no había escuchado hablar de este concepto mientras desarrollaba el Framework. Sin embargo, al conocerlo, me identifiqué inmediatamente con él, y me di cuenta que, sin saber, lo estaba siguiendo.
Recuerdo el punto de inflexión que me llevó a pensar que todo lo que había hecho y aprendido hasta el momento no servía para nada. Fue cuando un desarrollo, que tenía que ver con la atención al público, de un par de años de trabajo, no logró la performance esperada, la decepción fue enorme.
Había que empezar de cero, pero esta vez deberíamos controlar cada byte que viajaba. Para esto era necesario deshacerse del ViewSatate, del HTML innecesario, y nunca mas hacer un Postback.
No había tiempo de implementar ninguna nueva herramienta y menos de aprenderla. Por suerte ya había estado experimentando con algo de tecnología AJAX y JSON, así que la primera versión salió de manera totalmente artesanal y la performance fue increíble.
Desde ese momento me enamoré de esta idea y me puse a pensar como crear una herramienta que aprovechara todas estas ventajas, y a la vez, no fuera muy diferente de utilizar a lo que estábamos acostumbrados.
He aquí el resultado.

Veamos ahora como MoniMisi Framework se inscribe en el paradigma MVC.

Modelo:
Como ya saben el Framework no se mete con el modelo. O sea, no te obliga a usar uno u otro sistemas para hacerse con los datos. Hoy por hoy solo nos pide un DataAdapter (SQL,Oracle,ODBC, etc.) ya configurado por la regla de negocios deseada. De todas maneras esta funcionalidad se irá ampliando a medida que aparezcan nuevas formas de obtener datos.

Vista:
Es el conjunto de controles desarrollados hasta ahora, excepto el ProveedorDatosServidor, que sirven para crear la interfaz con el usuario.
Estos controles, a diferencia de los clásicos de ASP.Net, no mantienen su estado en el servidor, lo que nos ahorra muchos bytes a la hora de viajar. No quiere decir que no se pueda utilizar los controles clásicos también, siempre que tengamos en cuenta que los eventos de servidor que ellos exponen quedarán obsoletos.
Si bien es bueno conocer algo de Javascript para crear mejores aplicaciones, no es estrictamente necesario, ya que todos los controles cuentan con propiedades y métodos que les permiten adaptarse a las situaciones que comúnmente se presentan. Además están diseñados para interactuar entre si, haciendo que el mantenimiento y creación de páginas sea aún mas fácil.

Controlador:
Es el control ProveedorDatosServidor.
Este control es el encargado de llevar y traer los datos entre cliente y servidor, y adaptarlos de ambos lados. Se buscó que su funcionamiento sea lo mas silencioso posible, que el desarrollador se olvide de como y cuando viajan los datos. Simplemente deberá proveer y consumir los datos de ambos lados sin preocuparse por la performance y/o adaptación.

He visto algunas herramientas que siguen este patrón. Todas tienen sus ventajas y desventajas.
Lo que puedo decir a favor de MoniMisi Framework es que puede ser una herramienta muy útil para desarrollar aplicaciones siguiendo el paradigma MVC, y que no necesita demasiado tiempo de aprendizaje para desarrolladores que vienen de trabajar con WebForms tradicionales.
Por último, si tuviera que convencer a alguien para que haga el esfuerzo de cambiar su manera de pensar para hacer uso de esta tecnología, le diría: Si buscas resultados distintos, no hagas siempre lo mismo. Albert Einstein.

Ahora la Grilla también es Marquesina


Parece que esta de moda usar marquesinas o controles que panean horizontalmente para mostrar diferente tipo de datos. Como a mi la moda es algo me interesa mucho (pueden ver mi foto donde luzco una gorra muy mona), decidí retocar el control Grilla para que funcione como Marquesina y darle una nueva funcionalidad sin tener que cambiar prácticamente nada de lo que estaba hecho. Sigue leyendo

Ejemplo de Control de Usuario con dos Combos relacionados

Los controles de usuario son muy útiles a la hora de reutilizar código.
Si dedicamos un poco de tiempo a desarrollarlos con cuidado, pueden simplificar muchísimo la tarea del programador.
Aquí les dejo un ejemplo donde genero un control de usuario llamado Locación enlazando dos Combos o DropDownList (Región y Territorio). Luego muestro la forma de utilizarlo en cada página donde se necesite. Sigue leyendo