Métodos para saber como funciona un proyecto en c#MVC?

Iniciado por 1304654, 10 Febrero 2016, 10:29 AM

0 Miembros y 2 Visitantes están viendo este tema.

1304654

Hola, me gustaria preguntarles que sistema se utiliza para averiguar como esta programado un proyecto en c#mvc sin ningun tipo de documentación. Si hay que empezar a debugar linea por linea, o existen otros métodos?

Eleкtro

¿A que te refieres exactamente?.

Con .Net Reflector y/o Simple Assembly Explorer (SAE) puedes reconstruir el código fuente de la aplicación (el código del módelo MVC) a partir de las instrucciones MSIL.

Saludos








1304654

Bueno, soy algo nuevo en esto de c#MVC y actualmente me han asignado un proyecto algo grande sin ningún tipo de documentación. Estoy algo desesperado y me gustaria saber como funciona, me gustaria pedirles consejo para saber que métodos o sistemas utilizáis para aprender como funciona el código (pre programado) de un proyecto en c#mvc, si el sistema de debugar linea por linea seria el mas adecuado? eso es a lo que me refiero.

MCKSys Argentina

Cita de: 1304654 en 10 Febrero 2016, 13:13 PM
Bueno, soy algo nuevo en esto de c#MVC y actualmente me han asignado un proyecto algo grande sin ningún tipo de documentación. Estoy algo desesperado y me gustaria saber como funciona, me gustaria pedirles consejo para saber que métodos o sistemas utilizáis para aprender como funciona el código (pre programado) de un proyecto en c#mvc, si el sistema de debugar linea por linea seria el mas adecuado? eso es a lo que me refiero.

Con cualquiera de las 2 herramientas que te han mencionado, puedes analizar el código fuente del programa.

Eso si, vas a necesitar saber programar para entenderlo.

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Eleкtro

#4
No me quedó claro si tu duda tiene que ver con la ingenieria inversa, o solamente con la programación de C#.

Creo que lo que quieres decir es que alguien te ha pasado un proyecto de C#, pero en el código fuente no hay documentación así que no sabes muy bien como funciona la app, ¿es así?.

En ese caso, compila la solución en modo Debug e intenta observar el recorrido de la app tirando de breakpoints y de la ventana del callstack, abriendo la ventana de Autos para observar la transición del estado de los objetos, enviando manualmente mensajes a la ventana debug en ciertos puntos del código fuente, etc.

También puedes utilizar un profiller de rendimiento para tracear el recorrido de los métodos (y el estado de los objetos, entre otras cosas) de una forma más automatizada y más detallada, para ello te recomiendo la aplicación JustTrace de Telerik la cual se distribuye como aplicación de scritorio que además instala una extensión para Visual Studio para mejor integración, otra buena opción sería ANTS Profiler de RedGate que también instala una extensión para VS, pero personálmente no me gusta mucho, aparte de los productos mensionados hay otros profilers gratuitos que puedes buscar en Google.


Y por supuesto, también te serviría analizar otros proyectos más simples basados en MVC, como por ejemplo este (el primero que vi en Google):

Saludos








1304654


1304654

He encontrado el Resharper JetBrains es similar? No logro entender que es un profiler.

Eleкtro

#7
Cita de: 1304654 en 10 Febrero 2016, 16:27 PMHe encontrado el Resharper JetBrains es similar? No logro entender que es un profiler.
Bueno, ReSharper tiene un profiler integrado (imagino que una implementación de dotTrace), el cual nunca he usado, pero es una herramienta más bien enfocada a la refactorización de código de C#.

Cita de: 1304654 en 10 Febrero 2016, 16:27 PMNo logro entender que es un profiler.
De forma abreviada, un profiler es un sistema de análisis dinámico de aplicaciones.

Se suelen separar en dos clases, profilers de rendimiento, y profilers de memoria, este último tipo de profiler no lo necesitas para el tipo de análisis que quieres hacer, en cambio un profiler de rendimiento te podría ser de utilidad, es un tipo de herramienta muy analítica con la que puedes tracear o rastrear el recorrido de los métodos, en principio solo usarías esa características, pero otras cosas interesantes de un profiler son medir el tiempo de ejecución de cada método, ver información detallada de las llamadas al GC (Garbage Collector) e inspeccionar el uso de memoria (y detectar fugas), medir la complejidad ciclomática del programa o de cada método, etc, cosas relacionadas con el análisis y optimización de una app.

EDITO: Quiero evitar ponerte un enlace directo por que existen unas reglas éticas, pero los programas que te mencioné los puedes encontrar facilmente por Torrent.
O aquí mismo puedes usar el buscador y encontrar packs con (casi)todos los productos de Telerik: https://ebookee.unblocked.li/free_ebooks_list.php?category=19
( https://ebookee.unblocked.li/Telerik-UI-Software-Pack-1-1-2016_4965031.html )

Saludos








1304654

Estoy utilizando el telerik JustTrace sabes si seria posible que te retorne un árbol de las llamadas o algun generador de uml?

Eleкtro

#9
Cita de: 1304654 en 10 Febrero 2016, 17:21 PMEstoy utilizando el telerik JustTrace sabes si seria posible que te retorne un árbol de las llamadas o algun generador de uml?

Activa el profiler de rendimiento con el botón "Performance profiler" en la barra de herramientas de VS, inicia el debug de VS (F5), en la pestañá "JustTrace session" de la IDE haz click en el botón "Get snapshot" y en esa misma pestaña en el lateral izquierdo aparecerá "Call trees" -> "threads" con el árbol de llamadas.

Saludos