Por fin… Cradle Cradle!!

Hace poco Bruno informaba en su blog del lanzamiento de Device Emulator 2.0, hablaba de las novedades que este traía.. que no son pocas y a muchos de nosotros nos pueden salvar más de una, os recomiendo ver las nuevas ‘features’. Una de las cosas importantes que creo que merece la pena mencionar es que es ‘medio obligado’ instalar esto en Windows Vista para solucionar algunos de los problemas que teníamos con el desarrollo de aplicaciones para dispositivos móviles en Windows Vista. De hecho una de las cosas que más me gusta es que por fin podemos hacer ‘CRADLE’ del emulador con Windows Mobile Device Center!! Y eso para los que solemos depurar las aplicaciones en el emulador usando Mdbg es esencial…


P.D: Bueno, se nota que por desgracia no he podido ir al Summit de Micro y me he quedado currando o sea que antes de que nadie diga nada pues… J J


Saludos


Unai Zorrilla Castro

Compact Framework v2 SP2

Me cachis…. Es que los chicos de Redmon no paran eh!!! Que no nos dejan poner los pies en el suelo y sacan algo más para que jueguemos!! En esta ocasión el SP2 de Compact Framework 2.0 el cual viene a paliar unos pequeños problemillas que podéis observar en la página de descarga y agregar una serie de pequeñas funcionalidades a la aplicación de monitorización del rendimiento. Una de estas funcionalidades añadidas es la de poder pillar snapshots de la memoria con el fin de buscar ‘Memory Leaks’… ¡! Si has oído bien, memory leaks en .NET ¡! Os dejo un enlace del monstruo de Steven Pratchner’s que seguro que hará las delicias de más de uno.


Saludos


Unai Zorrilla Castro

Las métricas de código en Orcas (I)



  • Ciclomatyc Complexity



    • Permite ver una medida de la complejidad del código escrita basándose en el número de destinos posibles. En un lenguaje más llano podríamos decir que mide el número de condiciones que tenemos puestas en un determinado método. Podéis obtener una definición mucho más formal en la Wikipedia.


      • Posible tabla de valores






















Valor de CC


Evaluación


1-10


Un programa simple, sin mucho riesgo


11-20


Medianamente complejo


21-50


Un programa complejo


+50


Programa inestable


Si queréis probar como se modifica el valor de CC, poner un método con un Switch y muchas condiciones dentro del mismo o bien, muchos expresiones If etc etc…




  • Lines Of Code


    • Como su propio nombre indica mide el número de líneas de código que tenemos en un determinado método, esto lógicamente afecta mucho a la mantenibilidad del mismo como uno puede suponer, de hecho hasta hay un antipatrón que pude aplicarse al caso. No confundir esta métrica con SLOC ( Source Lines of Code) horrible métrica que estima el esfuerzo de un proyecto en líneas de código.

    • Existe un cierto baremo establecido en 50 líneas de código, a partir de este número se puede decir que un método es poco mantenible y debemos refactorizarlo, personalmente yo barajo un número algo inferior


  • Deph Of Inherintance


    • Permite obtener una medida a partir del grafo de herencia de una clase, se define como la máxima longitud que hay desde un nodo cualquiera hasta la raíz, es decir la clase base.


    • Cuantos más profunda encontremos una clase en el grafo mayor es el número de métodos heredados, sobreescritos y por lo tanto es más complejo determinar el comportamiento de la misma.

Depurar tareas propias de MSBuild

Como seguramente todos sabéis unos de los puntos de extensibilidad más importante que provee MSBuild, realmente este es el punto de extensibilidad propiamente dicho, es la creación de tareas propias para incluir dentro de los Targets del Project File. ¿ Os habéis preguntado cómo se pueden depurar estas tareas que creáis? Seguramente muchos para salir del paso pensarán que una buena forma es como anteriormente depurábamos aplicaciones, logeando los pasos de las tareas para ver cómo está funcionando. No sé si la forma que voy a explicar a continuación es la mejor o no pero desde luego a mi no me parece mala ya que nos permite depurar las tareas directamente en Visual Studio como cualquier otro programa o librería.


Pasos para depurar nuestras tareas para MSBuild:


1º Abrir el proyecto de librería en el que se define la tarea customizada de MSBuild


2º Abrir las propiedades del proyecto, botón derecho sobre el proyecto en el explorador de soluciones y clic en propiedades


3º Cambiar en la pestaña de Debug la opción de StartProject por Start External Project


4º Establecer el path completo hacia MSBuild en la caja de texto de Start External Project


5º En Command line arguments establecer el path completo hacia un archivo Project File que incluya la tarea personalizada


6º Ahora ya puedes poner un break point en la clase de definición de la tarea y depurar tranquilamente


Saludos


Unai Zorrilla Castro

Métricas de codificación

Sin duda, una de las herramientas que más me llamó la atención cuando la conocí era NDepend, una de las cosas chulas de entra las muchas que trae es la posibilida de ver métricas del código creado, métricas tales como Ciclomatyc Complexity, Depth of Inheritance etc etc… Ahora me he llevado una sorpresa cuando leo en el blog de FxCop que sacan para Orcas una herramienta que permitirá ver métricas de código ¡Que ganas! Aunque igual a alguno se le cae la cara de vergüenza J
J

 

Saludos

Unai Zorrilla Castro

Convenciones de nombres para Windows Mobile 6

Con la llegada de Windows Mobile 6 hay algunas cosas que debemos tener en cuenta de entrada, de entrada una nueva convención de nombres:


Lo que conocíamos como WM5 Smartphone ahora es WM 6.0 Standard, lo que conocíamos como WM 5 Pocket PC Phone Edition ahora es WM 6 Professional y lo que conocíamos como WM 5 Pocket PC ahora es WM 6 Classic. En cuanto a los SDK tenemos disponibles dos WM 6 SDK Standard ( para WM6 Standard ) y WM 6 SDK Professional para ( WM 6 Professional y Clasic ).


Saludos


Unai Zorrilla Castro

BPEL y Windows Workflow Foundation

Sin duda, una buena noticia, Paul Andrew Program Manager de Windows  Workflow Foundaiton, acaba de anunciar en su blog que en Marzo Microsoft liberará una version CTP de actividades para BPEL y que a finales de este mismo año la final con la implementación de BPEL 2.0. Ademas de poder crear Worflow basándose en el lenguaje de BPEL también traera un servicio de carga específico para importar Workflows a partir de lenguaje BPEL y la exportación de nuestros Workflows a lenguaje BPEL. Lógicamente esto está ligado con la siguiente versión de BizTalk, que también soportará BPEL 2.0.


Saludos


Unai Zorrilla Castro 


 

Guía de instalación de los componentes de diagnóstico y depuración para Compact Framework

Esta es una de las preguntas más comunes que me suelen hacer siempre en sesiones de rendimiento y optimización de Compact Framework. Por lo que me he decidido y las juntaré todas en este pequeño post:


Instrumentalización y análisis de los contadores de rendimiento


Una vez instalados el SP1 para Compact Framework 2.0 tenemos a nuestra disposición un ejecutable llamado netcfrpm.exe que podemos localizar en el directorio siguiente:


C:Program FilesMicrosoft Visual Studio 8SmartDevicesSDKCompactFramework2.0v2.0bin


El siguiente paso es la instalación dentro del directorio de Windows del dispositivo móvil de los elementos


Netcfrtl.dll y netcflaunch.exe


Que podremos encontrar en :


C:Program FilesMicrosoft Visual Studio 8SmartDevicesSDKCompactFramework2.0v2.0WindowsCEwce500armv4i


NOTA: Si instalas esto en WM 5.0 debes de hacer un provisionamiento, puedes usar para ello la herramienta rapiconfig de la siguiente forma, crear un archivo xml con el contenido siguiente


<wap-provisioningdoc>


– <characteristic type=»Metabase»>


– <characteristic type=»RAPIWindowsnetcfrtl.dll*»>


<parm name=»rw-access» value=»3″ />


<parm name=»access-role» value=»152″ />


<!– 152 maps to «CARRIER_TPS | USER_AUTH | MANAGER»–>


</characteristic>


</characteristic>


</wap-provisioningdoc>


Ahora ejecutas el comando: rapiconfig /p rpmprov.xml


Con esto ya tendrás a disposición el uso de la herramienta que te permitirá activar los contadores de rendimiento y de logging, puedes obtener más información de esta herramienta en http://blogs.msdn.com/stevenpr.


Te recuerdo que también puedes activar estos contadores de forma manual, tienes la información necesaria en otro de mis post y en el de Steven PathSchner’s


Depuración con MDBG


Lo primero es instalar en el dispositivo en el directorio Windows netcfrtl.dll y netcflaunch tal y como se explicó anteriormente.


Una vez instalados estos elementos copiaremos también al directorio Windows del dispositivo móvil los elementos siguientes, edbgtl.dll y tcpconnectiona.dll que podemos encontrar en la siguiente ruta:


C:Program FilesCommon Filesmicrosoft sharedCoreCon1.0Targetwce400armv4


A partir de este momento ya podremos usar MDBG para depurar nuestras aplicaciones para dispositivos móviles, os recomiendo que leáis los post sobre este tema de David Klinems

Evento Windows Workflow Foundation

El próximo jueves 22 de Febrero del 2007 imparto una sesión sobre Windows Workflow Foundation en las oficinas de Microsoft en Madrid, la agenda del evento la podéis ver a continuación:




  • Introducción a Windows Workflow Foundation


    • Arquitectura de Windows Workflow Foundation

    • Workflows Secuenciales y Workflows de máquinas de estados

    • El modelo de ejecución de Windows Workflow Foundation


    • Las actividades de Windows Workflow Foundation


      • Actividades Out-of-Box

      • Creación de Actividades para Windows Workflow Foundation


    • Los servicios de Workflow-Engine


      • Workflow Rule Engine

      • Workflow Persistence Service

      • Workflow Tracking Service

      • Workflow Scheduler Service


    • Hosting de Windows Workflow Foundation


      • Alojando el Runtime de WF en WCF, ASP.NET …

      • Alojando el diseñandor de Windows Workflow Foundation

Saludos


Unai Zorrilla Castro