Quedada para refactorizar en madriagil

Ayer, en las oficinas de IPSA, tuve mi primera experiencia con madriagil, uno de los grupos locales de agilespain. El formato del eventos es diferente a lo que estoy acostumbrado, normalmente suelo asistir a eventos / quedadas donde una persona o varias exponen alrededor de una tecnología, problema, o lo que sea… pero existe una figura de speaker y una de audiencia pasiva.  En la reunión de ayer, estábamos 8 personas y el formato era eminentemente práctico, se expuso un problema en la pantalla y entre todos fuimos dándole forma.

Al principio reconozco que es una sensación un tanto extraña… ves una porción de código en la pantalla e interiormente ya lo vas refactorizando y adecuando a TU manera de hacer las cosas, de hecho al principio hasta me sentí un poco raro, una sensación de … venga hombreeeee… que esto está tirao!! déjame el teclado yadeya! 😀

Pero según avanza el evento te vas dando cuenta de la riqueza del formato, vas viendo la forma de pensar del resto de personas de la reunión y que hay más formas de atacar el problema de la que TU tenías en mente… cada uno compartiendo el porqué cree que esa forma es la más adecuada, anécdotas de proyectos con situaciones similares, conocimiento del lenguaje y de la herramienta…  En el caso particular de ayer, el objetivo principal era decidir qué partes del código ir refactorizando apoyándonos en las diferentes responsabilidades identificadas. Pero otros temas que se tocaron el el proceso fueron: temas de nomenclatura y firma de métodos, decisiones de arquitectura que lo hubiesen hecho más óptimo, trucos del lenguaje que hacían más optimo / limpio el código, si en base a la refactorización aparece un nuevo método público… hacemos su test? ya esta probado? depende? … tras todas esas discusiones, acabamos la jornada viendo un par de herramientas de pruebas de aceptación y una aplicación que permite hacer gestión ágil de un portfolio de proyectos… completito completito 🙂

Como contrapartida, y en mi opinión personal, creo que este formato es muy bueno y funciona perfectamente siempre y cuando se mantenga en un foro pequeño donde todos los participantes estén involucrados, pero esto limita el aforo. Se intentó grabar… pero sinceramente, como asistente yo no sé si me vería un video de 8 personas hablando 2 horas… creo que es algo que hay que experimentar, no ver. 

IDEA: Este tipo de reunión me parece que sería una buena manera de invertir un par de horas semanales o quincenales para un equipo de desarrollo. Todo el equipo dándole vueltas al mismo problema y llegando a conclusiones que enriquezcan y homogenicen las decisiones del equipo a futuro.  Sería como un entrenamiento para un equipo deportivo.

 

Conclusiones…

Voy a intentar ese formato en foros pequeños

Voy a  intentar hacer un doc paso a paso del lab de ayer para que lo podáis reutilizar en el curro o en grupos de usuarios con ganas de experimentar

Un tio de MS puede sobrevivir en una reunión donde se usa Java y Eclipse sin mayor problema

En los grupos de .NET nos faltan este tipo de eventos más orientados a procesos y buenas prácticas que a la futura versión de Uberguay Tech v3.5 =)

Sería bueno que los grupos de usuarios y de estudiantes de .NET y de agilespain estuviesen más cerca para compartir experiencias

 

Info sobre el evento de ayer

Página web de madiagil

Tag de twitter de #madriagil

Maestros de ceremonias  @jmbeas  y @plagelao

El problema resuelto es uno planteado en el libro de refactoring de Martin Fowler. Cabe destacar que Fowler hizo un gran trabajo pero hay que refrescar el libro para incluir mejoras, no podemos quedarnos en lo que el planteaba, en el año 2010 estamos en posición de ir un poco más allá ( en madrí… somos así de chulos 😀 )

 

Happy hacking!

 

PD:: Que no os de respeto a los de un grupo acercaros al otro, ayer fue mi primera visita a madriagil y me sentí integrado desde el momento 0 y de los grupos de .net que puedo decir… si llevo casi 10 años ya entre ellos 😀

PD2:: Lo peor fue que coincidieron la qdd de madriagil con el evento de madriddotnet  con secondnug :_(

PD3:: No soy futbolero, no es un deporte que me llame la atención, aunque lo jugué de pequeño durante bastantes años… y aun así, hasta yo me he dado cuenta de que España o se pone las pilas o para casa.

Economias de escala en el cloud computing

No solo las grandes corporaciones se benefician del consumo de servicios expuestos en internet, la mediana empresa, la pequeña, e incluso el indivíduo saca partido de estos servicios.

No tenemos cuentas de mail en la nube? o de fotos? o redes sociales?… Hay artículos y presentaciones donde no se enfatiza el hecho de que el cloud es para todos los niveles. Cuando hablamos de economías de escala, nos referimos primeramente a la del proveedor, a que debido al gran número de clientes que espera, puede permitirse ajustar bastante los precios en los servicios que ofrece.

Pensemos por un segundo en uno de los datacenters donde puedan estar alojados alguno de los servicios de BPOS o de Windows Azure. Sabemos que tienen miles de servidores y que tienen optimizada su gestión al máximo ( 1 admin por 2k servidores ). Ahora imaginad que sois cualquiera de las empresas que tienen que dar servicio a ese datacenter: Proveedores de electricidad, de hardware, de aire acondicionado, de red….  Se trabaja a un nivel tan masivo que los números se reducen drásticamente!

Y eso sin tener en cuenta cosas como que lso datacenters se pueden montar al lado de centrales hidroeléctricas ( o incluso montar una x) )…que a determinado número de hierro comprado igual incluso te puedes hacer fabricante y que te salga más barato, etcétera, etcétera…

Estas circunstancias permiten que el usuario final de los servicios del datacenter tenga unos precios potencialmente ajustados y de hecho mucho más rentables que una alternativa on-premises. Por ejemplo… el correo electrónico. MUCHO CUIDADO que todas estas cifras son aproximadas y a grosso modo, pero espero que se vea la diferencia

Licencias de Microsoft Exchange para 30 usuarios en una empresa pequeña. Consideremos que, por ejemplo, 10 de ellos son comerciales y no pasan por la oficina.    530 licencia SBS + 54 (cal) * 30 = 2150  ( es la licencia más simple que hemos encontrado )

Servidores para instalarlo. Supongamos (sólo) 4 servidores físcios ( con N virtuales)  4×2000 = 8000  + 1000 euros en licencias de windows server ( por poner algo irrisorio ) = 9000

Porcentaje de infraestructura dedicado al servidor. Pongamos un datacenter pequeño donde se paguen 3000 euros al mes y que este servicio de correo sea el 5% del datacenter… 150 euros/mes  … En 5 años = 10800

Gastos de mantenimiento, actualización, personal asignado, porcentajes de contratos de soporte sw y hw… seamos conservadores y digamos que  5000 euros totales en 5 años  (tb tirando extremadamente por lo bajo )

Total: En un plazo de 5 años, esto nos da un precio total de  26.950 euros por el servicio de correo.

Lo que se traduce en…. aprox 12 euros por usuario al mes.

( OJO… que si se van empleados o vienen nuevos hay que hacer el cálculo de crecimiento o calcular el desperdicio que tendríamos en el servidor )

Vamos a ver la alternativa en BPOS… sólo para correo electrónico, sin comprar la suite entera ( que sería lo lógico si vas a usar acualquier otro servicio extra a parte del correo electrónico ) y sin hacer precios especiales….

Al MES por usuarios  deskless (comerciales y demás)   1,70 euros / mes

Al MES por usuaurio completo   4,26 euros/mes

Y OJO de nuevo… si se van personas de la organización, dejamos de pagar por sus buzones ese mismo mes… y si vienen le incorporamos cuando queramos, esta incluido el mantenimiento de hw y sw, la alta disponibilidad…

…esto es lo que permiten las economías de escala del cloud!! Zapatero… pasen los servers al cloud y déjense de tijeretazos a lo loco!! 🙂

 

Happy Hacking

~ds

Sabores del cloud computing en Microsoft

Hay muchas definiciones sobre cloud computing, casi siempre difieren y tienen una orientación y matices dependiendo de quién sea la persona que te lo está contando… de qué dominio se esté contemplando, el nivel de discurso, de qué tipo de cloud hablamos, etcétera…

Estamos en un momento relativamente temprano… relativamente porque realmente todos sabemos lo que es el cloud… solo falta mapear lo que sabemos con las diferentes segmentaciones que nos propone cada proveedor… hasta que tengamos lo que sabemos con los nombres que nos han dicho que hay que ponerle 🙂

Como currante dentro de uno de los principales proveedores os puedo contar la incertidumbre que esto causa. En Microsoft hay muchos sabores de cloud… divisiones que llevaban tiempo haciéndolo, divisiones que han empezado hace poco y divisiones que empezarán seguro… no se si os suena pero la dirección de la empresa es hacia la nube!

Video de Ballmer contando visión sobre la nube

Dependiendo de con qué persona hables y de a qué división pertenezca, te contará… obviamente… su versión de la nube ( somos humanos ). Y es que si eres una persona pura de sistemas es difícil entender Windows Azure… y si trabajas en XBOX Live… ves muy claro el servicio de comunidad que ofrece, pero tal vez sea dificil entender HyperV como pieza fundamental en las cloud privadas… Es bastante dificil motar una foto global y segmentarla adecuadamente para tener una visión completa de todo el offering de Microsoft, pero si no lo intenta uno de Bilbao… ¿quién lo va a intentar?

La segmentación Básica:  Servicios de Consumo  vs  Servicios Empresariales

Empezamos dividiendo por orientación de los servicios, me centraré en la parte empresarial, pero no quiero que nos olvidemos de los ‘otros’ servicios que también son servicios cloud aunque no los saquemos a relucir tan a menudo.

De modo que, los recursos alojados en datacenters de Microsoft y expuestos como servicio al consumidor final:

Hotmail / Live Mail … o como se llame ahora, Live ID, XBox Live, Live Mesh, Skydrive, Messenger

Los Servicios empresariales podemos dividirlos en dos partes… servicios que consumen las empresas (cloud pública) y herramientas que facilitan a las empresas construir su propia nube (cloud privada)

Los servicios ofrecidos a las empresas se pueden dividir en 4 ramas… esto crecerá seguro 🙂

  – Business Productivity Online Suite (BPOS)

Orientado a Information Workers.

Exchange, OCS, LiveMeeting, Sharepoint y pronto CRM. Tienes el producto acabado instalado y monitorizado en los datacenters de Microsoft. Pagas por asiento y te olvidas de tareas como comprar el producto y la infraestructura, instalarlo, mantenerlo, parchearlo… Por ejemplo en la suscripción más cara de exchange 4 euros por buzón de exchange. Más información de BPOS

  – Plataforma Windows Azure

Orientado a desarrolladores

Siendo extremadamente simplista… podemos decir que permite escalar aplicaciones. Desarrollos basados en Windows, que no tienen porqué ser .NET, pueden aprovisionar dinámicamente máquinas virtuales en las que ejecutarse. Además de la pura ejecución, la Plataforma Windows Azure incluye servicios de almacenamiento (relacional con SQL Azure y no relacional con storage), servicios para aplicaciones(appfabric), servicios de disco duro virtual (drive), servicios de consumo de datos (dallas)… http://msdn.microsoft.com/es-es/azure

  – Forefront Online Protection for Exchange (FOPE)

Orientado a Administradores

Filtra el correo para evitar Spam, virus y demás antes de que tu exchange lo procese, te ahora virus y consumo innecesario de espacio y ancho de banda. Más información de FOPE

  – Windows Intune

Orientado a Administradores

Todavía en beta cerrada. Permite realizar la gestión de puestos de trabjajo desde un sitio web.  Asistencia remota, gestión de parches, protección frente a malware, políticas de seguridad… Más información de Windows Intune

Y por último, los servicios que facilitan a una empresa construir su propia nube. Lo que pretenden es optimizar la gestión de un datacenter para que pueda comportarse con la naturaleza de una nube en términos de aprovisionamiento, disponibilidad, etcétera… por simplificar, surge gracias a la integración entre varias herramientas y una capa de gestión sobre éstas para agilizar las tareas del tipo ‘cloud’.

Tecnología base … virtualización con Windows Server e HyperV

Algunos productos que lo hacen posible…

  – Virtual Machine Manager. Permite gestionar un entorno híbrido con máquinas físicas y virtuales, pasar una máquina física a virtual…

  – Operations Manager. Es el antiguo MOM, se encarga de las monitorizaciones, alertas…

  – Configuration Manager. Gestión de las actualizaciones, parches…

La capa de gestión…. el Dynamic Datacenter toolkit  🙂

 

Vengaaa que no es tan dificil ^^

 

happy hacking!

 

~ds

Vuestro feedback del lanzamiento de VS2010 en Barcelona

Hoy hemos recibido el informe procesado de las encuestas que os pasamos en Barcelona, gracias por haberlas rellenado 🙂

Entre todas las preguntas, hay una que nos interesa especialmente ¿Qué puede hacer Microsoft Ibérica para mejorar su satisfacción como cliente?.

Creedme que entre 635 asistentes hay respuestas de todo tipo, pero me gustaría comentar los temas más recurrentes

Sobre productos

Dar más información acerca de las herramientas Microsoft
Obsequiar con licencias a los asistentes
Proporcionar un Kit de desarrollo en DVD e incluir las presentaciones
Licencias más económicas para las pequeñas empresas
Precio de licencias o incluso código abierto tipo open source
Nunca se a que distribuidor dirigirme

En este evento intentamos paliar la parte pura de producto con la introducción de Antonio Gómez, dónde se comentaba el modelo de licenciamiento, distribuidores… Lo de obsequiar licencias me temo que no es posible 🙂  Intentaremos hacer algún sorteo de licencias/cajas en el futuro, pero no podemos regalar el producto masivamente… q vivimos de venderlo!! 😀  Están los programas de emprendedores (bizspark), agencias web ( websitespark), el software gratuito para estudiantes (dreamspark), las versiones gratuitas liberadas hasta la prueba ( cuántos proveedores liberan las dogfood, betas, ctps, RCs…? ) y las versiones Express… no está mal,¿no? 🙂

Sobre las personas

Mostrarse más amables (sonrisa)
Quelos oradores hablen un poco más lento
La velocidad de los presentadores es muy alta
Un trato algo más personalizado

Sentimos enormemente que alguna persona no se haya sentido atendida adecuadamente. Intentamos atender a todas las conversaciones, responder todas las preguntas, cambiar los mails en caso de que no podamos resolver la duda en el momento… siento si en algún momento no os habéis sentido atendidos, si hacemos el roadshow es precisamente para veros y escucharos… si no lo haríamos por web. Si nos veís corriendo, o no os hemos podido hacer caso o similar… pensad que estamos coordinando un evento enorme y tendremos algún fuego entre manos, no es personal, intentadlo de nuevo por favor 🙂

Sobre el evento

No dar más tikects de %nombrederestaurantequemetiólapata% y dar un catering en condiciones
No ha habido sitio para tener los asistentes
No había suficientes asientos
No había disponibles en el auditorio
Cierre de puertas al iniciar sesión
El sonido no era muy bueno
Cuidar el lenguaje de los ponentes
Al hacer la admisión se quedarón con la invitación con lo que se quedaron tambien con la agenda del evento.
Problemas en el registro

Detalles a mejorar, gracias por resaltarlos.  Desde la palestra si se veían sitios para los asistentes pero tendríamos que haberlo indicado o haber tenido a alguien ayudando a los asistentes a encontrar sitio. Por la parte de los ponentes… nos lavaremos la boca con jabón y estaremos más atentos a la velocidad ^^

 

Sobre los contenidos

Tratar más mundanos más del día a día
Me gustaría una aplicación pero hecha desde 0
Preparación de laboratorios
Ofrecer cursos de formación y/o eventos de actualización más frecuentemente en Barcelona y Madrid
Implementar organización para cursos de formación en horarios flexibles para trabajadores
Labs online, promoción masters cursos mas completos, ejemplos más prácticos
Hacer cursos de formación gratuitos
Faltaría más parte práctica

WOW!! Gracias por los comentarios, para las personas que buscan contenido online, recordad la MSDN en castellano, los centros de desarrollo, los videos de channel9 en castellano, los cursos online… por si no los tenéis fichados 🙂

Sobre la parte práctica de las charlas… nunca sabemos como acertar, a veces apostamos por contar el posicionamiento y dejaros que busquéis la parte técnica por vuestra parte, otras veces apostamos por la parte técnica… aprovechad para darnos feedback de qué queréis ver a través de los canales que tenemos (twitter de esmsdn, en todos los eventos, en el blog/twitter de cualquiera de nosotros…), nosotros encantados de mostrar lo que mejor os sirva 😉  En el próximo evento intentaremos os pediremos pediros temas a tratar, para hacer las presentaciones/demos lo más prácticas posible… veremos que tal sale.

Cajón de sastre

– Conferencia en catalá. Bosses de paper recuiclable

Me temo que esto no puede ser en foros tan grandes, no podemos arriesgarnos a que alguien se pierda si no sabe catalán, aemás muchas veces el speaker adecuado no tiene pq saber el idioma. En algún foro más pequeño y con un speaker local si lo hemos hecho.

200% de acuerdo con el papel reciclable, de hecho estamos intentando cambiar los registros para que sean 0 papel.

– Iteración

Ein? iteración de que?

– Tener más detalles

detalles de qué? 🙂

– Dar evento en Tarragona
– Organizar más eventos en Cataluña

Ojalá pudiesemos, los recortes nos afectan a todos :_) Recuerdo que no hace muchos años, nuestras giras eran de 15 o más cuidades, lamentablemente no es posible por razones de presupuesto. De todos modos… seguid a los grupos de usuarios locales en cada ciudad, tenéis a máquinas haciendo eventos presenciales y online bastante frecuentemente

PD-> Es una pena que las rellenéis por rellenar, pq nos pueden confundir en las conclusiones, please, si no lo vaís a rellenar en serio no lo hagáis ^^

PD2-> pensábaís que no nos lo leíamos ehhhhh??? 😀

Control de Versiones: Abandona ya CVS y Sourcesafe!

Ineludible…. hay que tener repositorios de control de código. Eso de tener una carpeta compartida sin control, o avisarnos a viva voz de “espera, espera!! que estoy yo editando eso”… me temo que para los días que corren es una solemnte chapuza :_)

El otro día tuvimos un evento de lanzamiento de Visual Studio y a una pregunta de mano alzada, la respuesta fue que la mayor parte de la audiencia utilizaba sistemas de control de versiones antiguos (sourcesafe).

Supongo que será por comodidad, porque más o menos les funciona y están acostumbrados a lidiar con los errores que aparecen,pero personalmente a esa situación la considero…vagancia 🙂 Y no dudo que alguno tendrá sus motivos, pero me jugaría algo a que la mayoría ha sido por no andar mirando cómo se migra y que opciones hay 😉

De todos modos… empecemos con una pregunta… ¿Sólo quieres control de código?  A día de hoy hay un montón de herramientas alrededor del código fuente generado. Gestión de tareas alrededor del código, trazabilidad de los cambios, plantillas metodológicas, reportes sobre estas tareas y archivos, cobertura de código por las pruebas….  herramientas ALM (application lifecycle management) en definitiva. Todos estamos de acuerdo en que estas herramientas son deseables para un equipo de desarrollo. Ayudan a medir el impacto de una decisión, a prevenir situaciones incómodas en un proyecto, a justificar una u otra decisión, a estimar tiempos, etcétera… Al ser un apoyo tan importante, en mayor o menor medida todas estas herramientas van entrando en los equipos, así que, además del hecho de contar con ellas, también se vuelve de vital importancia cómo están estas herramientas conectadas entre sí. No te vale de nada tener 4 herramientas magníficas si el pegamento entre ellas es tu esfuerzo personal en hacer control+c y control+v  😉

Volviendo al control de código puro y duro, ahí va un resumen de cada una de las opciones más utilizadas en el mercado.

El cretácico: CVS y Sourcesafe.

No nos engañemos, son dos opciones totalmente desactualizadas, estas out. Fueron buenas alternativas en su momento pq no había otra cosa, pero actualmente han sido sobrepasadas de largo por otras opciones. Normalmente el cambio natural es que si estás en CVS pases a GIT y si estás en sourcesafe pases a TFS ( la migración está tirada y tienes un herramientas y docs para ayudar… http://msdn.microsoft.com/en-us/library/ms253060.aspx ).

Opciones reales de control de código: Subversion, Git y TFS

Desarrolles en lo que desarrolles TIENES que tener una de estas 3 opciones, no hay más vuelta de hoja. Si no estás entre estos 3 es porque ya las has evaluado y eres el 1% que no puede migrar por alguna razón ineludible.

SVN / Subversion. Empezó en el 2000 y fue diseñado para reemplazar al CVS, añadiendo algunas funcionalidades y corrigiendo algunos de los fallos más garrafales de éste ( renombrado, manejo de archivos binarios ). Ha sido ampliamente utilizado por la comnidad open source (apache, mono, ruby, php…). Tiene multitud de clientes disponibles para acceder al servicio. Es independiente del sistema operativo.

Tiene algún problema reconocido con el renombrado de elementos, porque los mantiene como copias así como falta de sistemas de gestión y administración.

No tener el apoyo de la comunidad de desarrollo del kernel y el hecho de que se implementasen su propio sistema (Git) le hizo mucho daño a SVN.

Git. Tiene un padrino de excepción, Linus Torvalds. EL diseño de Git esta influenciado por la experiencia de Linus en la gestión del gódigo fuente de Linux. Surgió por necesidad, cuando los desarrolladores del kernel se vieron forzados a dejar su control de código habitual, CVS y su sucesor SVN no les parecieron opciónes válidas, de modo que diseñaron y construyeron Git. Ese apoyo ha hizo que que git cobrase muchos adeptos rápidamente.

Team Foundation Server. Parte de una base diferente al resto, si bien ofrece servicios de control de código, tiene las herramientas adicionales incluidas. Parte de su funcionalidad sustituye lo que ofrecía Visual Source Safe.

OJO!! Es importante destacar que el hecho de que vengan incluidas las herramientas de ALM no significa necesariamente que haya que utilizarlas 😉  Puede instalarse TFS únicamente para realizar tareas de gestión del código fuente, de hecho creo que es el primer paso pare perderle el respeto miedo.

Tener toda la solución ALM incluida y ser un producto de pago ha hecho que en el mundo Microsoft mucha gente siga con SourceSafe por respeto a adoptar toda la solución de golpe. Es un error por desconocimiento, a ver si ahora con la versión 2010 empujando y teniendo el TFS gratis con el entorno de desarrollo cambia el panorama.

Personalmente creo que la lucha estaría entre Git y TFS. Pero… si bien Git es un producto muy bueno para el control de código, y una de las funciones de TFS es control de código, creo que no son comparables, dado que TFS tiene la ventaja de tener la solución ALM integrada (plantillas metodológicas, workitems, reportes, portal de proyecto…) y conectada con diferentes herramientas (excel, project, visual studio,… ). 

 

De modo que en 9.5/10 casos para desarrollos en .NET … instálate el TFS ya hombre!!!  😀

Más opiniones

http://consultingblogs.emc.com/jamesdawson/archive/2009/07/28/tfs-vs-svn-vs-git.aspx

http://ayende.com/Blog/archive/2007/04/29/TFS-Vs.-Open-Source-tools.aspx

http://stackoverflow.com/questions/661389/tfs-vs-svn

https://git.wiki.kernel.org/index.php/GitSvnComparsion 

 

Happy hacking!

~ds

Mini Aplicacion de ejemplo del Lanzamiento de VS2010

En los diferentes eventos de lanzamiento, en la charla de “Mejoras en el IDE de Visual Studio 2010” estamos utilizando una mini aplicación para las demos. Como os comento en los eventos presenciales, es una aplicación MUY sencilla conceptualmente y de implementación, no esperéis una referencia de best practices o algo de copiar y pegar que solucionará vuestro proyecto porque no lo es 🙂

La comparto porque creo que puede servidos para cotillear el funcionamiento de algunas cosas:

ASP.NET MVC

Al estar basada en MVC, se puede apreciar el funcionamiento básico de ASP.NET MVC en una aplicación web fuera de la demo del hola mundo ( Aunque la aplicación es poco más que eso ^^ ).

TDD

Sigue desarrollo orientado a pruebas, con tests que van un pelo más allá de la típica suma que solemos ver en los eventos. Así, si alguien no ha hecho nunca TDD puede ver el tipo de tests que se pueden hacer.

Moq  ( code.google.com/p/moq )

A la hora de probar el código, hacen falta mocks que simulen el comportamiento de clases que no queremos utilizar. Por ejemplo, si estoy probando que funciona el apartado de añadir mensajes en la capa de negocio, no tengo pq meter un mensaje en la BBDD, no hay que llegar hasta ahí pq estaríamos probando más cosas que la capa de negocio. Con un mock se simula el comportamiento sin tener que utilizar la clase de acceso a datos. En la aplicación se utiliza el framework Moq para los mocks.

Unity ( unity.codeplex.com )

Para tener cierto desacoplamiento en la aplicación se utiliza Unity como inyector de dependencias.

Diseño

Verás como NO diseñar una aplicación web ^^

 

Prerequisitos

VS 2010. Sip sé que muchos no lo tenéis aun instalado, pero entendedme… era la demo del lanzamiento de VS2010 😉

SQL Server express o similar.

¿Complicado eh?

Los proyectos

La solución es una página web donde se pueden dejar mensajes al estilo twitter. Tiene 4 proyectos y una carpeta con los scripts para la BBDD.

FakeTwitter.Core

Tiene la entidad Mensaje que representa los mensajes de los usuarios y las interfaces. En el caso de esta app solo tiene una, que representa el repositorio de acceso a datos.

FakeTwitter.Data

La clase que implementa el interfaz de acceso a datos. El proyecto tiene una macro para copiar la dll resultante a FakeTwitter.Web.

FakeTwitter.Tests

Pruebas de los controllers web y de la entidad mensaje. No he incluido pruebas del repositorio de datos. Aquí es donde se usa Moq en algunos tests para representar el almacén de acceso a datos.

FakeTwitter.Web

La aplicación MVC. Además se le ha incluido código para que cada vez que se cree un controller, esta creación pase por Unity para que se le pueda inyectar el Repositorio de datos adecuado. En el caso de esta aplicación es la DLL resultante de FakeTwitter.Data, por eso la copiamos desde su proyecto. No añado una referencia directa para evitar acoplamiento. Si mañana hay otra implementación del repositorio, se añade a la configuración de Unity, se cambia la DLL y listo ^^

Para arrancar esa configuración en Unity se empieza desde el application_start del global.asax

Sisisi… que no se me olvida,aquí esta el enlace a la demo ^^

Sé que no es mucho, pero a los que estáis más verdes en alguno de los temas espero que os sirva de ayuda!!

Happy Hacking

~ds

PD –> Pq una web estilo twitter y no un cliente de twitter?? Es simple… pq twitter está casi siempre caido y nos fastidiaría las demos en el lanzamiento 😛

PD2-> Cualquier feedback es bien recibido,  gracias!!

Eventos de lanzamiento de VS2010 por España

A la carga!

Estamos ultimando el primer evento de la gira de lanzamiento, empezamos mañana Martes 13 de Abril en Barcelona (de hecho tenogo que irme al ave en cuanto acabe le post 😛 ). También pasaremos por Madrid ( 20/4 ), Bilbao ( 22/4), Valencia (27/4) y Sevilla (29/4).

Si bien intentamos cubrir el mismo contenido en todas partes, no nos es posible por cuestiones de salas, agendas de los ponentes… de modo que los eventos de Madrid y Barcelona serán los más “llenos” de contenido ( y asistentes ) y en Bilbao, Valencia y Sevila tendremos una agenda de mañana.

En Madrid será un poco especial, ya que contaremos con dos invitados especiales. La keynote la hará Jason Zander, General Manager de Visual Studio en la división de desarrolladores ( es tekkie ^^ ). Y tras la comida tendrémos a Joaquin Reyes para quitarnos las ganas de siesta antes de seguir con las sesiones 🙂

y la agenda ¿?

Hemos intentado que sea de lo más completita. Por la parte técnica, los grandes focos son: Visual Studio como solución ALM (gestión de proyectos, metodologías, diseño top down), el desarrollo “paralelo”  ( api de parallels, gestión de tasks…), Visual Studio IDE (vamos, el día a día del developer… qué herramientas introducidas en VS nos ayudan a mejorar en el código), desarrollo para sharepoint y ASP.NET, desarrollo para windows phone 7, …. Espero que entre todos esos puntos haya alguno que os interese como para que os vengáis a vernos 😀

Charla de Visual Studio 2010 IDE

Esta charla la daremos entre Luis Fraile y yo, puede que el duo dinámico cambie en alguna ciudad, pero en principio somos la “parejita” de la sesión. Intentaremos cubrir 2 escenarios diferentes en el día a día del desarrollador… veremos las mejoras de VS2010 a la hora de crear código en un proyecto existente y de cómo arreglar bugs en código existente.

5’ de slides y 55’ de demos 😉

Las demos las haremos sobre una mini applicación de ejemplo que os pondremos para descarga. No es la ubermegareferencia de las aplicaciones web, pero si estáis empezando con MVC ó TDD ó Unity ó Moq os puede valer de ejemplo. Atentos porque la colgaré para finales de esta semana por aqui.

 

happy hacking!

~ds

PD1 –> Si algun@ se anima a desvirtualizar que me avise por twitter!!  @davidsb

PD2 –> Tag del evento #esvs2010   

PD3 ->Usuario de twitter de MSDN que retransmitirá parte y responderá a las preguntas  @esmsdn

PD3.5 –> Si no sabes quién es Joaquin Reyes….. castigad@ sin postre ^^

Slides de los labs de Windows Azure

Se acabó por el momento 🙂

Empezando en Febrero y acabando hoy, hemos tenido diferentes laboratorios presenciales donde os porponíamos ejercicios sobre Windows Azure e intentábamos resolver las dudas que iban surgiendo. 5 en Madrid y uno en Barcelona, con un total de unos 100 asistentes que han probado en sus portátiles o en los del laboratorio cómo subir aplicaciones, depurarlas, trabajar con el almacenamiento…

Los laboratorios los tenéis disponibles en la página de Windows Azure en MSDN españa  http://msdn.microsoft.com/es-es/azure en la parte de abjao veréis una sección “Laboratorios en castellano”.

Aquí os dejo las slides para el que las quiera hojear en pptx y en pdf

Y aprovecho para animaros a continuar explorando con los laboratorios del platform training kit ( los bajas y sigues el doc en tu máquina ) y con los Virtual Labs en MSDN.

En los Virtual Labs se arranca un entorno para que hagas las prubas, no hace falta tener nada instalado, hay de migración de aplicaciones, de PHP en Windows Azure, de cómo ejecutar código nativo,…

Esperamos que os haya servido de utilidad, en Abril esperamos volver con algún laboratorio más de Windows Azure, y porqué no… de más tecnologías  🙂

Happy hacking!

PD –> Q porqué no hay más en Marzo?  pq entre un viaje de trabajo y vacaciones no tengo tiempo de un evento presencial, yo tb os echaré de menos 😛

Laboratorios de Windows Azure en castellano

Por fin!

Hace tiempo nos planteamos que los laboratorios de la Plataforma Windows Azure estaban genial… peeeeero como siempre, venían en inglés, suelen estar sujetos a demos complejas, etcétera.

De modo que hemos optado por hacer una versión en castellano de 3 laboratorios. En el enlace anterior tenéis un montón extra de labs, estos 3 pretenden simplificar los contenidos y ser un buen punto de entrada para entender la plataforma y los servicios.

Se pueden realizar sin tener una cuenta de la Plataforma Windows Azure, tienen todos los ejercicios en local, con el entorno de simulación, y luego la posibilidad de subirlo a la nube si se tiene suscripción creada.

En unos días los tendremos referenciados en el centro de desarrollo de la Plataforma Windows Azure en MSDN España, por ahora cuelgo el formato PDF por aqui para ir adelantando tiempo. Ya están en MSDN dos de ellos, he actualizado los enlaces

Si vemos que funcionan y que merecen la pena porque os gusta el formato, empezaremos a hacer más laboratorios de ésta y otras tecnologías.

Los que tenemos creados por ahora son:

Creando Suscripciones

En este laboratorio se ve cómo crear suscripciones con bolsas de recursos gratis para hacer demos

http://download.microsoft.com/download/F/3/7/F371DFCD-5E78-4BAF-8867-D566BE84FCF6/MSDNEs-AzureLabs-CrearSuscripcion.pdf 

http://download.microsoft.com/download/F/3/7/F371DFCD-5E78-4BAF-8867-D566BE84FCF6/MSDNEs-AzureLabs-CrearSuscripcion.xps

Windows Azure: Introduccion al servicio de Ejecución

Cómoc rear los roles y utilizar el entorno de simulación para probar las aplicaciones, depurarlas…

http://cid-a3236cbfb2d07427.skydrive.live.com/self.aspx/Public/WindowsAzure/MSDNEs%20-%20AzureLabs%20-%20ServicioEjecuci%c3%b3n.pdf

Windows Azure: Servicio de Almacenamiento

El almacenamiento dentro del storage no es un almacén relacional tradiciona, veremos cómo se almacena la información y cómo se accede a los servicios de Blobs, tablas y colas

http://download.microsoft.com/download/F/3/7/F371DFCD-5E78-4BAF-8867-D566BE84FCF6/MSDNEs-AzureLabs-WindowsAzureStorage.pdf%22

http://download.microsoft.com/download/F/3/7/F371DFCD-5E78-4BAF-8867-D566BE84FCF6/MSDNEs-AzureLabs-WindowsAzureStorage.xps

Ya nos contaréis que os parecen, se agradece el feedback y peticiones de nuevos labs ^^

 

Happy hacking!

~ds

Windows Azure: Importante para que no te cobren…

Todo ha empezado con una duda en el foro de Azure en MSDN en castellano. Hay un hilo sobre cómo monitorizar los recursos consumidos en Azure. En las versiones previas teníamos una pestaña en el portal que nos mostraba los recursos utilizados, pero esa opción hace tiempo que no está disponible.

A día de hoy, la recomendación del grupo de producto ( en este post ) es que lo miremos desde el portal de cliente de Microsoft Online Services.

Ahí es donde empieza mi aventura… al mirar los recursos que llevo consumidos he visto que en mi suscripción MSDN… 0 euros ( bien ^^ )  pero en la suscripción que tengo con el free introductory offer ( la oferta gratuita de iniciación que es algo más reducida que la de MSDN )  me van a cargar un pago a la tarjeta!! sigh!

Compruebo en el portal mis sospechas… y efectivamente… horror….  en el último evento que tuve de azure olvide borrar los despliegues  :____)

Esto se podía haber evitado con dos acciones muy sencillas que os recomiendo a todos los que estéis evaluando la Plataforma Windows Azure:

1  -  En la página oficial, en los detalles de precios nos advierte claramente de cómo se cobra, y en el caso de Windwos Azure (olvidemos SQL Y AppFabric un segundo) se cobra por DESPLIEGUE y por ALMACENAMIENTO

“Measuring Windows Azure Consumption” Compute time, measured in service hours: Windows Azure compute hours are charged only for when your application is deployed

De modo que  ACUÉRDATE DE BORRAR los despliegues entre pruebas. (si tienes la suscripción MSDN tienes más horas y es más dificil que te cobren, pero no te despistes ) y de borrar los almacenes del storage.

2 – Revisar regularmente el correo. No digo q te vuelvas un paranoico del mail. Pero si el correo que indicaste para la cuenta de Azure no es tu correo habitual ( como en mi caso ) revísalo de vez en cuando, así vas comprobando que las facturas son de 0 euros, y no te das cuenta al de mes y medio ( como es mi caso )

Espero que estos dos sencillos consejos os ahorren los eurillos que yo me he gastado por despistado ^^

cheap hacking!!

David Salgado

PD –> No tiembla el alquiler de este mes ni mucho menos… no se me preocupen… pero esta semana el fin de semana será menos movidito.

PD2-> Cómo de menos movidito? …pues unos 5 roles desplegados,  2 de ellos funcionando y un par de cuentas de sotage menos movidito ^^