2010-02-11 18 views
6

Todas las herramientas de refactorización para C# y VB.Net que he visto solo consideran el código fuente en una única solución de estudio visual.¿Hay alguna herramienta de refactorización que funcione en los archivos de soluciones?

Para mejor o peor, nuestro gran sistema de (muchos programas relacionados) se extiende sobre muchos archivos de solución, sin embargo:

  • Todo el código está por debajo de una carpeta de Windows sola.
  • Nuestro sistema de compilación basado en nAnt, construye todos los archivos en una carpeta de Windows para producir un dll único (algo más complejo que esto pero no importante para esta pregunta).
  • Por lo tanto, TODOS los archivos ".cs" y ".vb" debajo de la carpeta raíz individual son parte del sistema.

Así que estoy buscando herramientas de refactorización e ingeniería inversa que tomen una sola carpeta como entrada y actúen en todos los archivos debajo de esa carpeta. (Las herramientas pueden necesitar ayuda para decidir qué significa "público" e "interno"; sin embargo, la mayoría de las veces "interno" significa "en el mismo árbol de códigos" cuando un "árbol de códigos" es una carpeta que contiene código y ninguna carpeta hija.)


Ahora estoy siendo codicioso, me gustaría las herramientas para crear un montón de todas las refactorizaciones que se han hecho y para ser capaces de reproducir las refactorizaciones. Entonces podría probar ideal y si funcionan, descartar mi código, obtener el código más reciente, hacer las refactorizaciones y registrar el código antes de que nadie más cambie los archivos. (Del mismo modo, cuando las sucursales necesitan fusionarse)

+4

Tengo una situación similar con algunos proyectos compartidos entre un cliente y algunas soluciones de servicio WCF. Una idea es crear un archivo maestro .sln solo por el bien de refactorizar usando el reafilamiento. – softveda

Respuesta

3

En el pasado he hecho lo que Pratik sugirió y reuní todos los proyectos en una única solución con el único objetivo de refactorizar. Entonces personalmente usaría Resharper todo el tiempo.

+0

Dado que la mayoría de las dlls se referencian desde la "unidad s" en lugar de con la referencia del proyecto, ¿esto funciona sin cambiar todos los proyectos para que se refieran entre sí directamente? (Peor aún, los proyectos no se envían a la "unidad de disco", se puede copiar los dlls desde la última compilación oficial; eso se hace con las hormigas y solo se hace cuando se completa una "historia") –

+0

El código de Resharper con refactorización a través del código VB.NET Y C#, es común que una clase se defina en un "mundo" y luego se use en el otro. –

+0

Disculpe la demora en la respuesta, probablemente ya lo haya descubierto, pero sí, hay una edición de Resharper que cubrirá tanto VB.net como C# –

Cuestiones relacionadas