Blog de Miguel Llopis

August 2008 - Artículos

Disponible la nueva versión de XamlPadX (4.0)

Recientemente se ha publicado la nueva versión de este práctico editor y previsualizador de código XAML. Entre las novedades disponibles en la nueva versión encontramos las siguientes:

  • Interfaz mejorada y acorde a la apariencia de Expression Blend.
  • Nuevo addin: visor del contenido del portapapeles.
  • Coloreado de código y posibilidad de "expandir/contraer" bloques.
  • Herramienta para tomar capturas de pantalla del XAML renderizado.

xamlpadx4_0

Puedes descargarlo aquí

Posted: 31/8/2008 23:54 por Miguel LLopis | con no comments
Archivado en: ,
Zeep Mobile: API para envío de SMS gratuitos

Ya podemos incorporar servicios gratuitos de envío de SMS desde nuestro sitio web a otros usuarios de nuestra web gracias a Zeep Mobile, una API gratuita que permite enviar mensajes de texto a teléfonos móviles sin coste alguno para el usuario ni para la web que lo ofrece.

Desde el punto de vista técnico, Zeep Mobile funciona mediante REST (es decir, envío de XML mediante protocolo HTTP), y el flujo de datos que se origina al enviar un SMS a otro usuario de nuestra web sería el siguiente:

Por supuesto, al tratarse de una tecnología basada en REST es válida para cualquier lenguaje web, desde ASP.Net hasta Silverlight, pasando por PHP e incluso HTML plano.

A disfrutarlo!

Facebook alcanza los 100 millones de usuarios

El pasado 25 de Agosto, Facebook alcanzó la mágica cifra de 100 millones de usuarios, según anunció el propio Dave Morin, Senior Platform Manager de la compañía.

Parece que cada vez resulta más evidente el éxito de las redes sociales, aunque siempre hay gente que se resista a admitirlo como se puede ver en la siguiente tira...

tira1

tira2

Posted: 30/8/2008 16:11 por Miguel LLopis | con no comments
Archivado en:
¿Cómo puedo acceder a la Tech Preview de Live Mesh?

Live Mesh es una de las tecnologías más interesantes surgidas en lo que va de año, y a mi juicio una de las tecnologías que más cosas tienen que decir en el futuro a medio plazo. Recientemente se ha ampliado la lista de países que pueden acceder a la preview de Live Mesh. Desgraciadamente, España todavía no se encuentra en dicha lista pero hay otras formas de subirse a la nube... ;-)

                                    Live Mesh

La primera de ellas consiste en darnos de alta en la lista de compartición de cuentas de Live Mesh en ShareMesh. Algo de lo que ya hablamos hace unos meses por aquí.

La segunda nos proporciona acceso inmediato y consiste en cambiar la configuración de nuestro equipo (Windows XP/Windows Vista) y ajustar la localización a EEUU. De este modo, al acceder a la web de Live Mesh tendremos la posibilidad de registrarnos e iniciar sesión con nuestra cuenta de Live correspondiente.

                Live Desktop under Live Mesh

En otro orden de cosas, también podremos inscribirnos en la lista de espera para probar la API de Live Mesh, la cual nos permite realizar cosas como éstas. Por el momento, las plataformas soportadas siguen siendo Windows XP y Windows Vista aunque está al caer el soporte sobre Windows Mobile y Mac OS X.

Happy Mesh!
El futuro de .Net Reflector

Tras 8 años de trabajo en el proyecto .Net Reflector, su creador y líder del proyecto Lutz Roeder ha decidido poner fin a su participación en el mismo.

Por suerte para todos, este hecho no significará la desaparición de una de las herramientas más útiles dentro del mundo del desarrollo en .Net, sino que Lutz (quien ha compaginado durante los últimos 7 años este proyecto con su trabajo como Senior SDE en Microsoft Corp) ha acordado con la empresa Red Gate Software que sea ésta quien se encargue del mantenimiento y evolución del proyecto.

reflector

De este modo, Red Gate Software sigue trabajando en futuras versiones del producto gratuitas como hasta ahora y ha puesto a disposición de todos nosotros un Newsletter específico para .Net Reflector.

Puedes leer la entrevista completa a Lutz Roeder en este enlace.

Posted: 22/8/2008 17:56 por Miguel LLopis | con 6 comment(s)
Archivado en:
Novedades sobre Microsoft OSLO: Sesiones en el PDC 2008 y entrevista a David Chappell en Channel 9

Recientemente se ha publicado en Channel 9 una entrevista de Ron Jacobs (WF/WCF Evangelist) a David Chappell durante el TechEd US del pasado mes de Junio. En esta entrevista, David hace un repaso acerca de qué es OSLO, qué productos se van a ver involucrados en esta "revolución" y cuándo podremos ir viendo algunas de estas novedades. Puedes encontrar información detallada al respecto en castellano en este post que redacté el pasado mes de Junio tras el anuncio oficial realizado en el Tech Ed.



Además, durante el próximo PDC de finales del mes de Octubre se realizarán las siguientes 8 sesiones técnicas sobre OSLO:

  1. "Oslo": Managing Software + Services Applications: Increasingly, applications will consist of services that run both on-premises and in the cloud. Learn how Microsoft is simplifying the deployment and management of Software + Services applications
  2. Hosting Workflows and Services in "Oslo": "Oslo" builds on Windows Workflow (WF) and Windows Communication Foundation (WCF) to provide a feature-rich middle-tier execution and deployment environment. Learn about the architecture of "Oslo" and the features that simplify deployment, management, and troubleshooting of workflows and services.
  3. "Oslo": Customizing and Extending the Visual Design Experience: "Oslo" provides visual tools for writing data-driven applications and services. Learn how to provide a great experience over domain-specific schemas, and explore the basic user model, data-driven viewer construction, user-defined queries, and custom commands. See how the design experience itself is an "Oslo" application and is driven by content stored in the "Oslo" repository.
  4. Extending Windows Workflow Foundation v.Next with Custom Activities: Windows Workflow Foundation (WF) coordinates and manages individual units of work, encapsulated into activities. The next version of WF comes with a library of activities, including Database and PowerShell. Learn how to extend this library by encapsulating your own APIs with custom activities. See how to compose those basic activities into higher level units using rules, flowchart, or state machine control flow styles. Learn how to extend beyond WF control styles by building your own. Learn how to customize and re-host the workflow authoring experience using the new WF designer framework.
  5. A Lap around "Oslo": "Oslo" is the family of new technologies that enable data-driven development and execution of services and applications. Come and learn how to capture all aspects of an application schematized in the "Oslo" repository and use "Oslo" directly to drive the execution of deployed applications.
  6. "Oslo": The Language: "Oslo" provides a language for creating schemas, queries, views, and values. Learn the key features of the language, including its type system, instance construction, and query. Understand supporting runtime features such as dynamic construction and compilation, SQL generation, and deployment. Learn to author content for the "Oslo" repository and understand how to programmatically construct and process the content.
  7. "Oslo": Repository and Schemas: "Oslo" uses schematized data stored in the "Oslo" repository to drive the development and execution of applications and services. Tour the schemas and see how user-defined content can be created and related to them. Learn how to utilize platform schemas, such as worflow, services, and hosting. Also, learn how to extend the repository and how to use repository-extended SQL database services to support critical lifecycle capabilities such as versioning, security, and deployment.
  8. Workflow Services: This session covers significant enhancements in Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) to deal with the ever increasing complexity of communication patterns. Learn how to use WCF to correlate messages to service instances using transport, context, and application payloads. Learn to use the new WF messaging activities to model rich protocols and how to use WCF as a rich default host for your workflows and expand the reach of WF with features like distributed compensation. See how service definition in XAML completes the union of WF and WCF with a unified authoring experience that dramatically simplifies configuration and is fully integrated with Microsoft Internet Information Services activation and deployment.

Ya queda menos, y seguro no defraudará a nadie ;-)

Plugin de Zemanta para Windows Live Writer

¿Conoces Zemanta? Se trata de una tecnología bastante usada en sistemas como WordPress, Movable Type o Drupal y que permite insertar links automáticamente, añadir fotos relevantes, links a artículos relacionados y automáticamente asignar "tags" apropiados al post que estás escribiendo.

Desde hace unos días, tenemos disponible un plugin de dicha tecnología para Windows Live Writer (versiones 12 y 14). El aspecto es el siguiente:

 zemantaWLW

Si te ha gustado, puedes descargarlo desde aquí.

Posted: 21/8/2008 23:13 por Miguel LLopis | con 3 comment(s)
Archivado en:
Aprende LINQ de la mano de sus creadores

El verano siempre es una buena época para leer libros, y por supuesto los libros técnicos no iban a ser una excepción a esta regla... Recientemente se ha publicado un nuevo libro sobre LINQ: "Essential LINQ", de Charlie Calvert y Dinesh Kulkarni.

Seguramente, para aquellos de vosotros que estéis al tanto de la tecnología LINQ estos dos nombres no pasen desapercibidos... Charlie Calvert es Community Program Manager del equipo de C# y Dinesh Kulkarni fue uno de los creadores de la tecnología LINQ, siendo líder del equipo de desarrollo de LINQ to SQL y publicando además una gran cantidad de artículos sobre LINQ en revistas especializadas como MSDN u otras publicaciones de carácter educativo.

Pues bien, si ya de por sí con estos autores el libro prometía ser bueno, mi impresión tras leerlo ha superado mis expectativas. Hasta el punto de que lo considero una obra esencial en cuanto a tecnología LINQ, y no solamente por el título, jeje... A lo largo del libro, se hace un repaso de las diferentes posibilidades básicas que ofrece LINQ (LINQ to XML, LINQ to SQL y LINQ to Objects), así como de las mejoras introducidas en el lenguaje C# 3.0 que hacen posible el uso de LINQ. Hasta aquí, poca cosa nueva respecto a lo que otros libros nos ofrecen (algunos de ellos muy buenos como por ejemplo éste). No obstante, una vez se han introducido estos conceptos básicos sobre LINQ, nos encontramos con una serie de capítulos sobre buenas prácticas y patrones de diseño de arquitecturas LINQ, mejoras de rendimiento que podemos llevar a cabo y también cómo aplicar LINQ sobre Entity Framework (EDM) y cómo crear nuevos proveedores personalizados, algo sobre lo que ya nos habló el maestro Octavio Hernández en uno de sus artículos, recientemente publicado en MSDN...

En resumen, un libro de obligada lectura para aquellas personas que teniendo ya cierta experiencia en el uso de LINQ deseen ampliar sus conocimientos de la mano de dos de las personas con mayor conocimiento de esta tecnología en todo el mundo.

Posted: 19/8/2008 18:19 por Miguel LLopis | con no comments
Archivado en: ,,
Dotando a nuestra organización de una estructura madura para Software Testing

Sirva este post para retomar la serie de posts que desde hace unos meses estoy elaborando con cierta ninguna regularidad acerca de la apasionante y necesaria disciplina del Software Testing dentro del ciclo de desarrollo software.

En esta ocasión, voy a hablaros acerca de los niveles TMM. Seguramente, la mayoría de vosotros conoceréis el modelo CMM (Capacity Maturity Model), aplicable a los procesos de desarrollo software. Pues bien, TMM es un modelo de madurez aplicado al Software Testing, basado en este modelo CMM y en otra serie de consideraciones específicas del software testing (como por ejemplo las "fases en la vida mental de un tester", redactadas por Boris Beizer, uno de los mayores expertos en Software Testing del mundo).

TMM establece cinco niveles diferentes, que reflejan cinco estadíos diferentes de una organización en cuanto a la madurez o estandarización de sus procesos de pruebas. Son los siguientes:

1.- Nivel inicial:

 a) No existen objetivos de madurez en este nivel.
 b) El proceso de pruebas es caótico.
 c) Las pruebas se desarrollan ad-hoc, una vez que el artefacto a probar ha sido implementado.
 d) El testing y el debugging (depuración) se mezclan.
 e) El objetivo de las pruebas es demostrar que el software NO tiene errores.

2.- Fase de definición:

 a) Se establecen los primeros objetivos para las fases de pruebas y de depuración.
 b) Se inicia un proceso de planificación de pruebas.
 c) Los métodos básicos de pruebas a emplear se institucionalizan y documentan.

3.- Integración:

 a) Existe una estructura organizada para el testing, no obstante, esta estructura puede no ser independiente sino estar compuesta por miembros del   equipo de desarrollo del software.
 b) Se ponen en práctica programas de entrenamiento para mejorar las habilidades del equipo de testers.
 c) Integración de las pruebas en el ciclo de vida del software.
 d) Creación de mecanismos de monitorización y control del proceso de software.

4.- Gestión y métricas:

 a) Establecimiento de un programa de revisiones común a toda la organización.
 b) Establecimiento de una serie de métricas para evaluar la calidad de nuestras pruebas.
 c) Creación de mecanismos que permiten evaluar la calidad del software antes y después de nuestras pruebas, y también, de una versión a otra del producto.

5.- Optimización, prevención de defectos y control de calidad:

 a) Empleo de métricas y datos previos (de los recogidos en la fase 4) para ayudar en la prevención de defectos.
 b) Controles de calidad estandarizados.
 c) Optimización del proceso de pruebas.

 

Idealmente, una organización dedicada a la construcción de software debería pretender alcanzar los niveles 4 y 5 de esta clasificación. No obstante, es probable que por diversos motivos (presupuesto, ausencia de personal cualificado o con experiencia previa en equipos de software testing, etc) sea utópico dar el salto entre las fases 2 y 3 (creación de un equipo de expertos en pruebas independiente del equipo de desarrollo). La importancia de que el equipo de pruebas sea independiente del equipo de desarrollo se debe en primer lugar a que las características de un Ingeniero de Sofware de Pruebas son diferentes a las de un Ingeniero de Software (como ya comenté por aquí), y en última instancia, en caso de que las pruebas deban ser realizadas por Ingenieros de Software, deberíamos procurar que un desarrollador probara el código de otro en aquellas pruebas de Caja Negra que llevemos a cabo (las pruebas de Caja Blanca básicas, o Pruebas Unitarias, sí que deben desarrollarse a priori por el propio desarrollador; especialmente si empleamos un paradigma TDD puesto que ése es su principal objetivo). Este hecho se debe a que un desarrollador siempre tiende a sobrevalorar su propio código y tiende a omitir el análisis exhaustivo sobre el mismo de forma subconsciente, debido a su convencimiento de que el desarrollo ha sido el adecuado y por tanto carece de errores.

A pesar de ello, el resto de puntos orientados al control y monitorización del proceso de pruebas sí deben llevarse a cabo y los beneficios que aportarán a nuestros equipos son enormes. Por citar algunos de ellos:

 1.- El proceso de pruebas se convertirá en algo gestionable y capaz de ser estimado de forma precisa.
 2.- El uso de planes de pruebas y artefactos estandarizados (diseño de casos de prueba, especificación de los mismos, etc) permitirá que la puesta en marcha de nuevos planes de prueba sea inmediata, al conseguir que dicho plan forme parte intrínseca del ciclo de vida de nuestros proyectos y, por tanto, un elemento más dentro de la larga lista de tareas que monitorizamos diariamente en nuestros proyectos.
 3.- Dispondremos en todo momento de información empírica que nos servirá para determinar cómo y en qué momento deberemos aplicar cada tipo de pruebas, de este modo, podremos definir políticas organizacionales al respecto.
 4.- Mediante el uso de todas estas guías para el Software Testing en nuestra organización, podremos formar a nuevos especialistas y también mejorar el nivel del resto (podrán analizar y aprender de errores anteriores).

Existen otras tantas ventajas asociadas a la adopción de niveles TMM 4 y 5. No obstante, creo que como primera aproximación a la taxonomía de niveles de madurez de los procesos de pruebas ya está bien con estas... :-)

En posteriores entradas hablaré sobre cómo pasar de una a otra fase, qué tipo de estructuras organizativas se requieren en un equipo de Pruebas y qué mecanismos de control y de comunicación con los demás grupos (grupos de desarrollo, grupos o responsables de planificación y control del proyecto, etc) se deben establecer.

Posted: 1/8/2008 18:02 por Miguel LLopis | con 2 comment(s) |
Archivado en: