Miremos bajo el capó de Social Coding, lo último de VS Anywhere

Hace poco más de 1 mes se comentaba en Twitter:

Desde entonces, hemos estado muy muy ocupados, y el pasado 31 de octubre, entre calabazas y fantasmas, lanzamos una nueva versión, enfocada a aquellos que contribuyen a proyectos Open Source en Github, a la que hemos llamado “Social Coding”, y en este artículo quería comentar qué hay detrás de esta nueva característica.

¿VS qué?

VS Anywhere, es una extensión para Visual Studio que permite que dos (o más) desarrolladores compartan una sesión de desarrollo en tiempo real, sin usar un escritorio remoto ni ninguna herramienta adicional, solamente su Visual Studio. Es más sencillo mostrar que explicar, así que aquí va un vídeo de poco más de un minuto:

¿Por qué?

La idea surge para solucionar dos problemas fundamentales:

El primero era la dificultad de tener un punto de partida conocido para comenzar una sesión, desde un origen también conocido. Github nos proporciona el control de versiones, la posibilidad de iniciar una sesión desde un changeset, una rama, o una etiqueta específicas. También nos permite descargar la versión directamente desde Github, no penalizando el ancho de banda del host para la sincronización inicial.

Por otra parte, queríamos poner en contacto a desarrolladores que contribuyan a repositorios Open Source, y conseguir que puedan colaborar en tiempo real. Para ello, la lista de contactos ha sido renovada, y ahora podrás ver a la gente que está “conectada” al mismo repositorio que tú.

Puedes ver Social Coding en funcionamiento en el siguiente vídeo:

¿Cómo funciona?

Usamos la API REST de Github y la fantástica biblioteca JSON.net para gestionar los repositorios.

Credenciales

Aunque no es necesario introducir tus credenciales de Github para usar “Social Coding”, lo recomendamos. Al iniciar sesión, solicitamos un token usando tu usuario y contraseña, y nunca almacenamos tus credenciales, ni de manera local ni en el servidor de VS Anywhere.

Lo que sí almacenamos en los servidores de VS Anywhere, es el token  de autenticación para no tener que solicitar usuario y contraseña cada vez que abres la ventana. Este token lo puedes revocar en cualquier momento desde aquí: https://github.com/settings/applications

tokens

Repositorios

Cuando haces click en “Join” en un repositorio, lo agregamos a tu lista de repositorios, notificamos al servidor de VS Anywhere que has agregado un repositorio nuevo, y el servidor notifica a todos los usuarios conectados al mismo, devolviendo la lista de usuarios conectados, si los hubiera. A partir de ese momento puedes hablar con cualquier desarrollador conectado, usando el chat integrado, e iniciar nuevas sesiones.

Cuando te desconectes, o decidas eliminar ese repositorio de tu lista, desaparecerás de la lista de los otros usuarios.

Descarga

Para descargar un repositorio, pedimos a GitHub que nos de su lista de commits (por defecto solamente trae los 30 últimos, es algo que tenemos que mejorar), de branches, y de tags, y con eso generamos las listas de descarga.

Finalmente, hemos agregado un botón para obtener la última versión, que obtiene el último commit de la rama por defecto.

En esta versión, de momento, al no tener ninguna interacción con el control de versiones (descargamos los ficheros, no el repositorio) dejamos a la elección del usuario cómo terminar las sesiones.

Conclusiones

Dame una API REST y una manera sencilla de deserializar JSON y moveré el mundo. Con ello y un poco de tiempo hemos logrado agregar una pequeña característica que espero que guste a los desarrolladores. Queda mucho por hacer y por mejorar, y seguiré escribiendo sobre ello (entre otras cosas).

Un pensamiento en “Miremos bajo el capó de Social Coding, lo último de VS Anywhere

  1. Pingback: if (2013.IsComplete) 2014.StartAsync(); | rlbisbe @ dev

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s