[#RESHARPER] HowTo: Find hardcoded strings (to cut off fingers on a Monday)

Good,

When some time ago I wrote a post where he showed how to configure the IDE of Visual Studio 2012 so it hurts us to use strings “harcodeados”, the friend Julio Trujillo (@JulioTrujillo) copied me a trick that was given in support of ReSharper for working with strings in a project.

The steps are as follows

1. Inside of Visual Studio, access the project properties

2 Change the following properties so that our project support localization

Reachable = Yes

Locatable Inspector = Pessimistic

image

3 Starting from this time, ReSharper will show all the strings emphasizing them in blue.

image

4. The interesting part comes now. If we select a string and deploy options from ReSharper menu (ATL + ENTER) can select the option “Options for Element is locatable inspection / / Find all issues of this type in scope”

image

5 We define the scope of search, in this case the entire project

image

6. The panel with the search result shows all the strings “badly treated” in our project.

image

7. At this point we can export the list of results in mode text, xml, or html.

image

8. In the case of export to text, the result would be similar to the following:

Solution sdkAugmentedRealityCS.sln
Project sdkAugmentedRealityCS
sdkAugmentedRealityCS\Class1. cs:18 Localizable string: “Start list names”
sdkAugmentedRealityCS\Class1. cs:19 Localizable string: “child”
sdkAugmentedRealityCS\Class1. cs:20 Localizable string: “girl”
sdkAugmentedRealityCS\Class1. cs:21 Localizable string: “End names list”

Saludos @ Home

El Bruno

image image image
Advertisements

[#RESHARPER] Tip: Introduce Variable (un #refactoring interno de los buenos buenos)

Buenas,

el otro día estaba con el Víctor y me sorprendió que no conociese la feature “Introduce Variable” de ReSharper. Principalmente, porque el Víctor es un fanático de los atajos de teclados, que quieras o no, incrementan la productividad muchísimo.

Nota: que seas rápido con el teclado, no significa que seas un buen programador. El que escribe es un ejemplo de ello.

Volviendo al Introduce Variable, el objetivo de esta funcionalidad es crear un refactoring “interno” dentro de un método o función. Pensando en los casos más populares de refactoring, esto es como un Extract Method, pero interno. Veamos un ejemplo, paso a paso. Supongamos que tenemos el siguiente código:

   1: using System;

   2:  

   3: namespace ClassLibrary2

   4: {

   5:     public class Class1

   6:     {

   7:         public Class1()

   8:         {

   9:             string someValue = Guid.NewGuid().ToString() + " - valentino - " + Guid.NewGuid().ToString();

  10:         }

  11:     }

  12: }

y la línea 9 nos resulta un poco confusa. Si queremos implementar la suma de las 2 primeras partes en otra variable podemos hacer lo siguiente.

1. Seleccionar las partes a trabajar

image

2. Presionar CTRL+R, CTRL+V, o la opción Introduce Variable.

image

3. Tendremos esta parte de nuestro código en otra variable interna al ámbito donde estamos trabajando. Donde además podremos definir el tipo de dato, el nombre, etc. Simplemente genial !!!

image

 

 

Saludos @ Home

El Bruno

image image image

[#RESHARPER] EAP 8.0, disabling the warnings of a single line!

image

Buenas,

Team of JetBrains are a few cracks, of that there is no doubt. Each new version of ReSharper brings features that are really useful and also generally up to the nail trends product where to pull level.(This is a way of looking at it, otherwise it is they set the trends, issue of opinions).

What was going, I was reviewing the features of the new ReSharper 8.0 (EAP is open!) and I find things really powerful as the Go To Everything which is a kind of ULTIMATE SEARCH AND NAVIGATE to any element of your solution, or the Assembly Explorer that was previously part ofdotPeek , the free decompiler for JetBrains , and that it is now also part of R #.

However, the best and the best of far is what we can do with the following lines within a code file

   1: // ReSharper disable all

From this line, ReSharper it ignored all the warnings until you find

   1: // ReSharper restore all 

A very simple functionality, but that is extremely useful in many cases!

Source: http://blogs.jetbrains.com/dotnet/2013/03/introducing-the-resharper-8-eap/

Saludos @ Home

El Bruno

image image image

[#RESHARPER] EAP 8.0, deshabilitando los warnings de un solo saque !!!

image

Buenas.

El equipo de JetBrains son unos cracks, de eso no hay duda. Cada nueva versión de ReSharper trae features que son realmente útiles y además suelen dar en el clavo con las tendencias a nivel producto para donde tirar. (Esto es una forma de verlo, otra forma es que ellos marcan la tendencia, cuestión de opiniones).

A lo que iba, estaba repasando las features del nuevo ReSharper 8.0 (EAP is open!!!) y me encuentro con cosas realmente potentes como el Go To Everything que es una especie ULTIMATE SEARCH AND NAVIGATE hacia cualquier elemento de tu solución, o el Assembly Explorer que antes era parte de dotPeek, el decompilador gratuito de JetBrains, y que ahora es parte también de R#.

Sin embargo, lo mejor y lo mejor de lejos es lo que podremos hacer con las siguientes líneas dentro de un archivo de código

   1: // ReSharper disable all

A partir de esa línea, ReSharper ignorará todos los warnings hasta que encuentre

   1: // ReSharper restore all 

Una funcionalidad muy simple, pero que es extremadamente útil en muchos casos !!!

 

Source: http://blogs.jetbrains.com/dotnet/2013/03/introducing-the-resharper-8-eap/

Saludos @ Home

El Bruno

image image image

[#RESHARPER] ReSharper 7.1 EAP ya esta abierto para todos

Buenas,

desde ayer ya podemos descargar la versión para prueba de ReSharper 7.1. Como todas las versiones no finales, pues estamos jugando con fuego. Sin embargo hay 2 o 3 features interesantes en esta versión:

  • No more regions después de un Code CleanUp
  • Hay un par de cosillas nuevas que afectan a ASP.Net MVC. Tengo que darle un vistazo a este listado para ver que han arreglado e incorporado.
  • Si sos un fan de .Net Framework 4.5, pues ya tenemos soporte para CallerInfo en las propiedades.
  • Etc ….

El listado completo en el siguiente link.

Fuente: http://blogs.jetbrains.com/dotnet/2012/09/resharper-71-early-access-is-open/

Descarga: http://confluence.jetbrains.net/display/ReSharper/ReSharper+7.1+Nightly+Builds

Saludos @ Home

El Bruno

image image image

[# RESHARPER] Now integrated with StyleCop 4.6

Quantcast

image47dd1de4

Hi,

a couple of days ago Victor friend told me that he was about to start a project from scratch, so we sat the minimum basis for collaboration and quality for the same. If you start a project from scratch, where different people work in offline mode, it is advisable to apply a set of rules that help to "the rules of the game are the same for all". In the case of coding style, StyleCop is an excellent ally for this. In addition, Avanade Spain have an extended template compilation which inter alia applies the StyleCop rules implementation of Team Build and indicates that level of aesthetic quality is our code (if you want more info on the subject talk because the template does many things that does not come Out Of the Box with TFS2010).

But I repeat I scattered, from that I started to work with Windows 8 had not installed the StyleCop plugin in my working environment. So to demonstrate the capabilities of StyleCop to Victor, me I downloaded the latest version and I took a big surprise > This is 100% integrated with RESHARPER 6.0 version. We are adapting as a plugin for ReSharper and from here you are with the analysis in StyleCop rules coding time.

image

Obviously, for tastes > colors, and I do not believe that all rules should apply in all cases. But it is nice to see that for example, now the [this] are compulsory according to StyleCop (ReSharper loathed them), and that all your code probably will not meet the basic rules. On a WCF Application created from scratch, the list of errors is pretty long.

image

But do not despair, you always have the option to define the behavior desired for each of the rules. For example, if not believe in the documentation (or in the Kings Magi), because you can turn off this rule in particular that behave as a Hint, for example.

image

Or even in the General inspection of ReSharper code options, you can define actions to take for each of StyleCop rules.

image

If you ask me my what seems to me, I will then tell you that you feel me great Risa

Greetings @ Here

The Bruno

[#RESHARPER] Ahora integrado con StyleCop 4.6

image47dd1de4

Buenas,

hace un par de días el amigo Víctor me comentó que estaba por comenzar un proyecto desde cero, así que sentamos las bases mínimas de colaboración y calidad para el mismo. Si comienzas un proyecto desde cero, donde trabajen diferentes personas en modo desconectado, es recomendable aplicar una serie de normas que ayuden a que “las reglas del juego sean las mismas para todos”. En el caso del estilo de codificación, pues StyleCop es un excelente aliado para esto. Además, en Avanade Spain tenemos una plantilla extendida de compilación que entre otras cosas aplica las reglas de StyleCop a una ejecución de Team Build e indica que nivel de calidad estética tiene nuestro código (si quieres más info al respecto hablamos porque la plantilla hace muchas cosas que no viene Out Of the Box con TFS2010).

Pero vuelvo que me disperso, desde que comencé a trabajar con Windows 8 no había instalado el plugin de StyleCop en mi entorno de trabajo. Así que para demostrarle las capacidades de StyleCop a Victor, me descargué la última versión y me llevé una gran sorpresa > esta versión esta 100% INTEGRADA CON RESHARPER 6.0. Vamos que se adapta como un plugin para ReSharper y a partir de aquí te encuentras con el análisis en tiempo de codificación de las reglas de StyleCop.

image

 

Obviamente, que para gustos > colores, y que no creo que todas las reglas deban aplicarse en todos los casos. Pero es agradable ver que por ejemplo, ahora los [this.] son obligatorios según StyleCop (ReSharper los aborrecía), y que todo tu código seguramente no cumplirá las reglas básicas. Sobre una WCF Application creada desde cero, la lista de errores es bastante larga.

image

 

Pero no desesperes, que siempre tienes la opción de definir el comportamiento deseado para cada una de las reglas. Por ejemplo, si no crees en la documentación (ni tampoco en los reyes magos), pues puedes desactivar esta regla en particular para que se comporte como un Hint, por ejemplo.

image

 

O inclusive en las opciones generales de inspección de código de ReSharper, puedes definir las acciones a tomar para cada una de las reglas de StyleCop.

image

 

Si me preguntas a mi qué me parece, pues te diré que me parece genial Risa

Saludos @ Here

El Bruno

   

[RESHARPER] HowTo: Dynamic add references based on the typed code

Buenas,

otro tip de los buenos de ReSharper, en este caso que nos ayuda a ahorrarnos los 5 clicks o 15 segundos necesarios para agregar una referencia en un proyecto. Supongamos el siguiente escenario:

  • Proyecto de biblioteca de clases llamado ClassLibrary1, con una clase llamada Class1.
  • Proyecto de biblioteca de clases llamado ClassLibrary2, con una clase llamada NewClass.

En la clase NewClass escribimos el siguiente código y esperamos la ayuda contextual de ReSharper sobre la línea con la declaración y la referencia a Class1. Como se puede ver en la imagen, además de las típicas propuestas de crear una variable local, un parámetro, etc; ahora también tenemos una opción que agrega una referencia al proyecto ClassLibrary1 y luego nos permite utilizar el tipo Class1.

image

 

Esto no solo aplica a las referencias entre los proyectos de una solución. Si por ejemplo, declaramos un tipo del modelo de objetos del cliente de Team Foundation Server 2010 para Visual Studio 2010, también podremos ver como nos propone agregar una referencia dinámicamente al tipo Microsoft.TeamFoundation.Client.

image

 

Aunque, cuidado que este segundo ejemplo tiene trampa > ReSharper no es lo suficientemente inteligente para conocer TODOS LOS ENSAMBLADOS, sino que infiere el tipo a referenciar ya que una de las referencias del proyecto actual tiene esa referencia, en el ejemplo anterior, la referencia a ClassLibrary1 desde ClassLibrary2, permite importar las referencias del primero hacia el segundo

image

 

Otro +1 para ReSharper Open-mouthed smile

 

Saludos @ Home

El Bruno (@elbruno en Twitter)