Monthly Archives: julio 2015

#VS2015 – Roaming Extension Manager, keep VS extensions sync between different devices

Hola!

Today in “Extensions Friday” I’ll try to answer a question someone ask me in twitter long time ago:

Do you know a way to sync the installed extensions in Visual Studio between different devices?

The answer was NO. However today, I was installing Visual Studio 2015 and I found this extension which try to solve this problem. I usually work in 2 devices: a laptop at home with a full and comfortable setup of 2 screens, a nice keyboard, much RAM, etc. I also use a Surface, and I use this mostly when I’m travelling que and also in events and presentations. I got Visual Studio 2015 in both devices, and of course, I need to have all the extensions synchronized between this 2 devices.

After you install Roaming Extension Manager, you’ll find a new section in [Extension and Updates] with the name [Roaming Extension Manager]. In this new section, we’ll find the set of installed extensions and this extensions will be associated to our online Profile, so at any time we can retrieve this extension list and find the status of each one. The status for each extension could be.

· Roamed: denotes an extension that is part of your Roaming List, but not installed on this machine.

· Roamed & Installed Icon: denotes all extensions that are part of your Roaming List and installed in this environment.

· Installed Icon: denotes all extensions that are installed in this environment, but are not part of your Roaming List.

In each scenario we can

– Add a new extension to our Roaming list

– Remove an extension from our Roaming list

– Download and install and extension listed in our Roaming list

References

– Visual Studio Gallery, Roaming Extension Manager https://visualstudiogallery.msdn.microsoft.com/7b421a95-c32c-4433-a2be-a41b276013ab

Saludos @ Madrid

/El Bruno


Archivado en: Visual Studio 2015, Visual Studio Gallery Tagged: English Post, Extensions, sans-serif;color:#002060'>, sans-serif;color:#1F497D'>, Visual Studio 2015, Visual Studio Gallery

#VS2015 – Roaming Extension Manager, mantiene tus extensiones de VS sincronizadas entre varios equipos

Hola!

Hoy en “viernes de extensiones” es momento de responder a una pregunta que hace mucho tiempo me hicieron en twitter:

Es posible sincronizar las extensiones de Visual Studio entre varios equipos?

En ese momento la respuesta fue NO. Hoy, mientras actualizaba VS2015 en algunos equipos, he encontrado conocía esta extensión, y la verdad que parece que funciona muy bien. En mi caso, suelo trabajar con 2 equipos: uno en casa con un buen teclado, 2 monitores, mucha RAM, etc. Y luego tengo una Surface que es la uso en eventos y cuando viajo. En ambos tengo Visual Studio 2015 instalado y claro, también tengo que tener al día las extensiones entre ambas.

Luego de instalar Roaming Extension Manager, podemos ver que hay una nueva sección en [Extension and Updates] llamada [Roaming Extension Manager]. En la misma podemos ver todas las extensiones que tenemos instaladas y asociadas en nuestro perfil con un pequeño icono a la derecha que nos determina el estado de la misma en este equipo.

· Roamed: es parte de nuestra lista de extensiones pero NO está instalada localmente.

· Roamed & Installed Icon: es parte de nuestra lista de extensiones y SI está instalada localmente.

· Installed Icon: son extensiones instaladas localmente y que no son parte de nuestra lista de extensiones.

Dependiendo el caso podemos

– Agregar una extensión a nuestra lista de extensiones

– Eliminar una extensión de nuestra lista de extensiones

– Descargar e instalar una extensión de nuestra lista de extensiones que no esté instalada localmente

References

– Visual Studio Gallery, Roaming Extension Manager https://visualstudiogallery.msdn.microsoft.com/7b421a95-c32c-4433-a2be-a41b276013ab

Saludos @ Madrid

/El Bruno


Archivado en: Visual Studio 2015, Visual Studio Gallery Tagged: Extensions, Visual Studio 2015, Visual Studio Gallery

#VS2015 – C#6, using Expression Bodied Members … hell on earth !!!

Hola!

After String Interpolation and nameof now is time to write about a new cool feature in C#6: Expression Bodied Members. The Main purpose of this feature is to make the code more clean. If you are familiar with Lambda expressions, this feature is similar.

Let’s move to a sample with a Console app, with an operation GetName() to process some strings. C#5 mode will be similar to this:

In C#6 with the new Features, and Visual Studio 2015, the source code for GetName2() will implement an expression bodied members.

As always, if the code will be cleaner … Thanks !!!

References

– El Bruno, String Interpolation http://elbruno.com/2015/04/20/vs2015-string-interpolation-vs-string-format-your-team-will-love-you/

– El Bruno, nameof http://elbruno.com/2015/07/29/vs2015-c-6-nameof-operator-to-get-variables-types-or-members-names/

– MSDN Magazine, the new and improved C#6 https://msdn.microsoft.com/en-us/magazine/dn802602.aspx

Saludos @ Madrid

/El Bruno


Archivado en: Code Sample

#VS2015 – C#6, usando Expression Bodied Members … el infierno en malas manos !!!

Hola!

Después de String Interpolation y de nameof es el turno de algo que nos dará más de un dolor de cabeza cuando leamos código: Expression Bodied Members. El objetivo de nueva característica de C# es simplificar el código de funciones en C# en los casos en que las mismas se puedan tratar como si fuesen un Lambda.

Veamos un ejemplo en un apps de consola con una operación que trata un par de strings, GetName(). El modo tradicional de utilizarla sería el siguiente:

Esta n

Con las nuevas Features de C#6 y Visual Studio 2015, el source code podría quedar así en la nueva función GetName2().

Como siempre, si ayuda a leer mejor el código bienvenida sea esta característica.

References

– El Bruno, String Interpolation http://elbruno.com/2015/04/20/vs2015-string-interpolation-vs-string-format-o-como-arruinarle-el-dia-a-tu-equipo/

– El Bruno, nameof http://elbruno.com/2015/07/29/vs2015-c-6-nameof-para-obtener-el-nombre-de-una-variable-operacion-o-tipo/

– MSDN Magazine, the new and improved C#6 https://msdn.microsoft.com/en-us/magazine/dn802602.aspx

Saludos @ Madrid

/El Bruno


Archivado en: Code Sample

#VS2015 – C# 6, nameof operator to get variables, types or members names

Hola!

Sometime ago I wrote about the new feature in C# 6 which allow us to use String Interpolation instead of String.Format(). In C# 6 we also found a new cool operator: nameof. This new operator allows us to get in string the name of a variable, or a type or a member. If you think in exception handling scenarios or dynamic generation this is very useful.

So, let’s see this in action, with a sample console Project and a custom class.

In the Console Main(), the program Display the name of a couple of variables and also the name of a couple of operations (custom and system). The console Output is this one

References

– El Bruno, String Interpolation http://elbruno.com/2015/04/20/vs2015-string-interpolation-vs-string-format-your-team-will-love-you/

– MSDN nameof, https://msdn.microsoft.com/en-us/library/dn986596.aspx

Saludos @ Madrid

/El Bruno


Archivado en: Code Sample

#VS2015 – C# 6, nameof operator to get variables, types or members names

Hola!

Sometime ago I wrote about the new feature in C# 6 which allow us to use String Interpolation instead of String.Format(). In C# 6 we also found a new cool operator: nameof. This new operator allows us to get in string the name of a variable, or a type or a member. If you think in exception handling scenarios or dynamic generation this is very useful.

So, let’s see this in action, with a sample console Project and a custom class.

In the Console Main(), the program Display the name of a couple of variables and also the name of a couple of operations (custom and system). The console Output is this one

References

– El Bruno, String Interpolation http://elbruno.com/2015/04/20/vs2015-string-interpolation-vs-string-format-your-team-will-love-you/

– MSDN nameof, https://msdn.microsoft.com/en-us/library/dn986596.aspx

Saludos @ Madrid

/El Bruno


Archivado en: Code Sample

#VS2015 – C# 6, nameOf para obtener el nombre de una variable, operacion o tipo

Hola!

Hace un tiempo escribe sobre lo interesante que es poder utilizar String Interpolation en lugar de String.Format() cuando trabajamos con string. Otra de las novedades interesantes de C# 6.0 es el operador nameof. El mismo nos permite obtener de forma rápida el nombre de una variable u operación. En escenarios de trazas, de proceso de errores, o de generación dinámica de código es realmente útil.

Veamos un ejemplo para entenderlo mejor. Partimos sobre el siguiente código que define una clase custom con un par propiedades y una operación.

Luego en el proceso de la Console, vemos como se obtienen los nombres de las variables, de las propiedades de la variable y además de operaciones. El output de la consola es el siguiente

References

– El Bruno, String Interpolation http://elbruno.com/2015/04/20/vs2015-string-interpolation-vs-string-format-o-como-arruinarle-el-dia-a-tu-equipo/

– MSDN nameof, https://msdn.microsoft.com/en-us/library/dn986596.aspx

Saludos @ Madrid

/El Bruno


Archivado en: Code Sample

#VS2015 – IntelliTests a cool tool to test legacy code

Hola!

If you work with legacy apps, you probably know the hard work needed to create a test Environment this this type of apps. In the most simple scenario, you start writing some code and you need some tests to validate you don’t get into any ugly errors. The main issue, is that you are not allowed to make changes in this apps, so you must cry a couple of days and then, men up and go back to work. (It also applies to crappy code, not only to legacy apps)

So, back in 2010 Microsoft Research present us PEX , nowadays this auto-test feature is part of Visual Studio 2015 and is named “IntelliTests”. This tool perform an automatic code analysis and then generates tests based on this analysis.

Let´s start with a simple based on crappy code, in example the leap motion USB missile launcher app I use in my demos.

There is a complex operation which converts the movement of the hand detected by the leap into a simple constant, so let’s open the context menu ans select “Create IntelliTest

If we don’t have any test Project in our Solution, IntelliTest will suggest us the creation of a new one.

When we have the test Project we realize that the test class is almost empty. IntelliTest is smart enough to create this tests and also later generate the simple data to run this tests. To run a test, let’s open the context menu and select “Run IntelliTest”. Now we can see the total amount of runs and different tests auto generated for the operation.

For this sample, IntelliTest generates 39 different tests with all the needed parameter combinations for GetDirection(). Now is important to remember:

If we change the code of the operation and we run again the option “Run IntelliTest” the tests data set will be generated again based on the new code of the operation.

If our main objective is to have some regression tests, we must SAVE the current set of data sets. Based on the generated tests we can save all the tests, or a subset of tests.

When we save, IntelliTest will generate a new class which can be used for the regression tests. We can also add our own asumptions or assertions which is something very cool to extend the tests. IntelliTest will also provide us some helpers like the creation of a Factory, and other scenarios to make them very powerful.

References

– El Bruno, Pex for Fun http://geeks.ms/blogs/elbruno/archive/2010/08/20/vs2010-pex-for-fun-ideal-para-ver-quien-paga-las-cervezas.aspx

– MSDN IntelliTest, https://msdn.microsoft.com/library/dn823749(v=vs.140).aspx

Saludos @ Barcelona

/El Bruno


Archivado en: Code Sample

#VS2015 – IntelliTests una interesante forma de testear codigo Legacy

Hola!

Una de los Dolores de cabeza más comunes cuando trabajas con apps legacy, es la incapacidad de poder aplicar un buen esquema de tests. Usualmente esto es necesario cuando queremos validar que las modificaciones que realizamos no “revienten” las Features actuales de las apps. Ojo, esto no solo es aplicable a apps legacy, también aplica cuando te toca enfrentarte a ese montón de source code que parece que se hubiese programado con los pies.

Pues bien, lo que hace unos años comenzó como PEX allá por el 2010 hoy es parte de Visual Studio 2015 y se conoce como “IntelliTests”. Esta herramienta analiza nuestro código y crea una suite de tests. Veamos un ejemplo, utilizando las clases que uso para controlar el lanza misiles con un Leap Motion.

Sobre una operación compleja que analiza la posición de la mano sobre el LeapMotion, desplegamos el menú contextual y seleccionamos la opción “Create IntelliTest

Si no tenemos un Proyecto de test en nuestra solución, IntelliTest nos propondrá una serie de opciones para crear un nuevo proyecto.

Ahora bien, una vez creados estos artefactos veremos que la clase creada está vacia. Esto es porque IntelliTest genera automáticamente una serie de tests sobre la base del código que está analizando en cada ejecución. Veamos un ejemplo, lanzamos el menú contextual y seleccionando la opción “Run IntelliTest

La generación automática ha generado 39 diferentes tests para probar las combinaciones de código que pueden afectar a la operación GetDirection(). Esta es la parte importante:

Si modificamos el código de la operación y lanzamos nuevamente la opción “Run IntelliTest” los tests se generarán nuevamente.

Si queremos tener un grupos de tests, con los que realizar pruebas de regresión, lo que debemos hacer es seleccionar la opción “Save” en el panel de IntelliTest. Aquí tenemos la opción de guardar todos los tests, o seleccionar un subset de los mismos y guardar este subset.

Pues bien, la clase generada contiene una visión estática de tests que podemos utilizar como pruebas de regresión. También es importante saber que podemos agregar nuestras propias asumptions o assertions en los tests generados. Aunque personalmente no sería partidario de modificarlos mucho, si es necesario meterles muchos cambios lo mejor será generar nuestros propios tests. IntelliTest también nos ayuda con un sistema de warnings para casos donde es necesario la creación una Factory por ejemplo.

References

– El Bruno, Pex for Fun http://geeks.ms/blogs/elbruno/archive/2010/08/20/vs2010-pex-for-fun-ideal-para-ver-quien-paga-las-cervezas.aspx

– MSDN IntelliTest, https://msdn.microsoft.com/library/dn823749(v=vs.140).aspx

Saludos @ Madrid

/El Bruno


Archivado en: Code Sample

#HUMOR – How cool is Code Map in #VS2015, shut up and Refactoring !!!

Hola!

Version en inglés y español de la misma respuesta a una conversación que mantuve esta semana.

image0018 image0023

References

– Channel9 Understating Complex Code with Code Map https://channel9.msdn.com/Series/Visual-Studio-2012-Premium-and-Ultimate-Overview/Visual-Studio-Ultimate-2012-Understanding-complex-code-with-Code-Map-ENU

– Visual Studio Gallery, VS10x Code Map https://visualstudiogallery.msdn.microsoft.com/1c54d1bd-d898-4705-903f-fa4a319b50f2

– MSDN Use code maps to debug your applications https://msdn.microsoft.com/en-us/library/jj739835.aspx?f=255&MSPPError=-2147217396

Saludos @ Madrid

/El Bruno


Archivado en: Refactoring, Visual Studio 2015
Página 1 de 41234