2011-02-04 7 views
5

Tengo un método complejo de C# que contiene un conjunto de sentencias if que determinan los derechos de acceso para un usuario.Visualizar una lógica de método C#

Estoy buscando una forma de visualizar esta lógica en, por ejemplo, un diagrama de flujo de trabajo o algo similar.

Esto es utilizando .NET 3.5 y Visual Studio 2010.

Qué herramientas (preferiblemente libre disposición) están disponibles que pueden hacer esto?

NB: He encontrado muchas herramientas para visualizar llamadas a métodos (por ejemplo, jerarquía de llamadas), esto no es lo que estoy buscando. Estoy buscando una herramienta para visualizar la lógica.

Gracias

EDIT: Como parte de mi investigación he encontrado Flowchart4C# pero es de $ 200 para comprar pura y simple y el juicio no me deja confirmo que hace lo que yo quiero que! (< 5 declaraciones condicionales).

+0

Para que quede claro, que está buscando para una herramienta automatizada ¿no? –

+6

Parece que es posible que desee refactorizar este método masivo para que la parte principal se lea como un simple inglés como inicio. – Marco

+1

No lo intentaría. Primero, escriba las pruebas unitarias que cubren las rutas y verifique el comportamiento actual. En segundo lugar, utilice herramientas de refactorización automatizadas para aclarar el código extrayendo métodos, etc. – TrueWill

Respuesta

3
+0

Gracias @Marco: Encontré las cláusulas de protección más relevantes: tengo grupos de tareas asignadas a los tipos de usuarios fluidos. – Russell

+0

Pregunta: Refactorizar la lógica en métodos separados es una forma de negar la necesidad de un mapa. Mi función es crítica para el rendimiento (una verificación de seguridad cada vez que se realiza una solicitud web), ¿dividirla en varios métodos afectaría el rendimiento? – Russell

+1

Confío en que el compilador optimice las llamadas a funciones. A menos que haya mucha copia de datos en los parámetros de aprobación, preferiría primero el código legible y luego me preocuparía el rendimiento si fuera necesario. – Marco

1

no automático: Uso dia (Windows, Linux: Diagrama de flujo tiene las plantillas) o Inkscape (Windows, Linux, Mac: gráficos vectoriales).

Automático: Refactor primero, luego automatice.

+0

Gracias @Leonidas - Estoy de acuerdo en que Dia es una gran herramienta gratuita.:) Estoy trabajando en la asignación ideal de forma automática. – Russell

Cuestiones relacionadas