MVP en WinForms y Webforms: preparando el código para Dependency Injection, Unity y TDD, en estas tecnologías RAD.

Antes de pensar en TDD, hay que pensar en desacoplar nuestras clases, por tanto en dependency injection, y para facilitarnos la vida, usar Unity u otro contenedor DI.

Pero esto es complicado o imposible, en Winforms y WebForms, sobre todo si no usamos patrones de diseño.

El primer paso, por tanto, es aplicar el patrón, en este caso MVP (si usáramos WPF o Silverlight, sería MVVM, pero este es otro cantar).

A veces nos complicamos la vida. Llega un cliente y quiere que su aplicación funcione en desktop y en el navegador. Hoy día podemos optar por Silverlight. Pero si quieres usar las tecnologías RAD que ya conoces como Winforms y Webforms, puedes optar por el patrón MVP.

¿Qué te permite? Muy sencillo, solo tendrás que diseñar las distintas vistas, para que tu aplicación funcione en ambas tecnologías.

Y como una imagen vale más que mil palabras, aquí tienes un video muy clarito de como dar los primeros pasos. Tus vistas heredan el interface de la capa de presentación, programa cada método de la vista, y listo!

Que lo disfrutes.

http://polymorphicpodcast.com/podcast/video/mv-patterns/winforms/

Sonrisa

Anuncios

Scrum.

 

Scrum es una metodología de desarrollo de software basada en un proceso iterativo e incremental utilizado comúnmente en entornos basados en el desarrollo ágil de software.

En cada iteración se hacen diversas actividades de análisis, diseño, programación, testeo e implementación.

Scrum presenta simplemente un modelo de referencia que describe un conjunto de prácticas y roles que se pueden tomar como punto de partida para definir el proceso de desarrollo.

Roles “cerdo”:

    – Scrum Master: similar al director de proyecto

    – Product owner: clientes internos y externos.

    – Team: desarrolladores, testers, diseñadores, analistas, etc.

 

Prácticas:

  • Se realizan iteraciones de duración fija llamados “sprints”. Deben realizarse cada 2 ó 4 semanas. Durante el sprint el objetivo del equipo es generar un incremento visible, utilizable. Al inicio de cada sprint se realiza un “sprint planning meeting” durante el cual se revisa el backlog.
  • Diariamente se realiza un “daily meeting” que no durará más de 15 minutos. Cada persona comparte las tareas realizadas y lo que piensa hacer hasta la siguiente reunión.
  • Al final del sprint se realiza el “retrospective meeting” durante el cual se dejan las impresiones sobre el sprint recién superado y el “review meeting” que refleja el trabajo realizado y no realizado.

 

Documentos:

 

Documento

Objetivo

Contenido

Creación

Modificación

Product blacklog

Definir una lista de objetivos y requisitos priorizada.

Documento de alto nivel para todo el proyecto.

Lista priorizada de las tareas, funcionalidades o requerimientos a realizar.

La lista considerará los riesgos del proyecto e incluir tareas y requisitos para mitigarlos.

Se indican las posibles iteraciones y las entregas esperadas, es importante que cada iteración tenga coherencia.

el Product Owner es el encargado de marcar prioridades y el que actualiza y mantiene la lista de tareas, por tanto, el encargado de elaborarlo.

Será el Product Owner el encargado de modificar este documento.

Sprint blacklog

Permite ver las tareas donde el equipo está teniendo problemas y no avanza, permitiendo tomar decisiones al respecto.

Para cada uno de los objetivos/requisitos se muestran sus tareas, el esfuerzo pendiente para finalizarlas y la auto asignación que han hecho los miembros del equipo. Estas tareas no deben superar las 16 horas.

La elabora el equipo en el sprint planning meeting.

Este documento no puede ser modificado. La correspondiente modificación pertenecería a otro Sprint blacklog..

Burndown chart

Gráfico de trabajo pendiente. Permite extrapolar si el equipo podrá completar el trabajo en el tiempo estimado.

Progreso del proyecto y su velocidad con respecto a los requisitos completados.

   

 

Si te interesa el tema, aprenderás mucho en esta iniciación de un curso de Danysoft (http://www.danysoft.com):

https://danysoft.adobeconnect.com/p3yjgjl7f5d/

J

Danysoft. Curso ASP.NET y C#.

Danysoft es una empresa que se dedica, entre otras cosas, a vendernos software principalmente a los desarrolladores, pero que además da formación y consultoría.

El valor añadido de esta empresa es que los cursos de formación, nos los cuelga en la red, así que si en algún momento buscas un curso de iniciación en alguna materia, te recomiendo que eches un ojo a esta web.

http://www.danysoft.com

 

Os dejo un video interesante para iniciaros en .NET:

https://danysoft.adobeconnect.com/_a1008869521/p2crfhbxk1s/?launcher=false&fcsContent=true&pbMode=normal

 

Espero que lo disfrutéis.

J

SNUG. DESCUBRE LA NUEVA WEB CON HTML5.

Ayer por la tarde/noche pude asistir en directo a este fantástico curso de iniciación a HTML5 y CSS3, impartido por Eduardo Quintás.

Si te interesa este tema, y no sabes bien como comenzar, te recomiendo expresamente que dediques las 2 horitas y media que dura, a su visualización. No te arrepentirás.

Te dejo el link de la web de SNUG http://www.secondnug.com/ y el del curso https://msevents.microsoft.com/CUI/EventDetail.aspx?culture=es-ES&EventID=1032498237&CountryCode=ES

Algunas notas interesantes fueron:

http://caniuse.com/ soporta la funcionalidad tu versión de navegador?

>>>>Importantísimo: Gracias a Google, podemos ver HTML5 en IE7 e IE8, sin este script, los resultados no son aceptables: http://code.google.com/p/html5shiv/

http://html5.validator.nu/ nos permite validar documentos HTML5

A la hora de utilizar funcionalidades, no debemos preguntar por la versión del navegador, sino por la funcionalidad. http://www.modernizr.com/ nos permite conocer si la funcionalidad está implementada por el navegador.

http://www.alistapart.com/ para exprimir a tope HTML5 y CSS3.

http://www.alistapart.com/articles/responsive-web-design y http://www.alistapart.com/d/responsive-web-design/ex/ex-site-flexible.html y http://mediaqueri.es/ ejemplos de cómo una web se redimensiona ajustándose al tamaño de la ventana.

http://channel9.msdn.com/posts/Internet-Explorer-10-Platform-Preview-2-A-look-at-Web-Worker-Fountains-in-IE10 ejemplo de Web Worker.

http://demos.w3avenue.com/html5-unleashed-tips-tricks-and-techniques/index.php trucos en HTML5

http://demos.w3avenue.com/html5-unleashed-tips-tricks-and-techniques/sample-10-localstorage-demo.html demo de Local Storage, para guardar información en el cliente.

http://firefogg.org/ y http://handbrake.fr para convertir gratis vídeo, a los formatos soportados en HTML5 y los distintos navegadores.

http://html5demos.com/ ejemplos y demos en HTML5 y qué navegadores lo soportan.

Y los libros principales:

http://www.amazon.com/HTML5-Up-Running-ebook/dp/B0043D2E0E/ref=tmm_kin_title_0?ie=UTF8&m=A317O7WZ1CN6AQ

http://www.abookapart.com/products/css3-for-web-designers (en Amazon solo en formato papel Triste )

Por favor, no los p2pees.

Espero os sea útil la información, y ver el vídeo!, está genial para principiantes!

Sonrisa