Hace poco más de 1 mes se comentaba en Twitter:
and today, something a lot of you were waiting, what has been of @rlbisbe ?? so here it is joining us today :)
— VS Anywhere (@vs_anywhere) September 26, 2013
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
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 comentario en “Miremos bajo el capó de Social Coding, lo último de VS Anywhere”