vb.net - tools - Cómo escribir un analizador de código estático para.net
microsoft code analysis 2017 (8)
Estoy interesado en escribir el analizador de código estático para vb.net para ver si cumple con las pautas de codificación estándar de mi compañía. Por favor avise desde donde tengo que comenzar.
Comience con FxCop. Si no puedes hacer lo que estás intentando allí, prueba algo como NStatic o NDepend.
En lugar de escribir su propio analizador de código estático, le recomiendo que use FxCop : y en su lugar, escriba reglas FxCop personalizadas para sus necesidades. Te ahorrará mucho tiempo. http://www.binarycoder.net/fxcop/
Estoy de acuerdo con uno de los carteles en que sería una tarea bastante difícil, pero en vez de hacerlo con Lisp comenzaría con F #, al igual que Microsoft lo hizo con la herramienta de análisis de controladores de Windows de terceros:
http://arstechnica.com/journals/microsoft.ars/2005/11/10/1796
F # comparte la expresividad de Lisp (bueno, casi) y funciona en CLR al igual que VB.NET, lo que facilitaría todo.
Las mejores opciones son usar FxCop o StyleCop y escribir reglas personalizadas si es necesario.
Sugeriría que uses el Gendarme de Mono. Es una herramienta muy buena, con muchas reglas integradas. También genera buenos informes HTML.
Use FxCop, este no es un proyecto que quiera emprender personalmente. Las reglas analíticas / léxicas involucradas y las posibles capturas serían una locura. La única forma en que podría imaginar hacerlo manteniendo un mínimo de cordura sería usar Lisp gracias a la gran cantidad de expresividad, pero de nuevo, lo mejor es usar FxCop.
Si debe escribir una herramienta interna personalizada por algún motivo (¿dogmático?), Le recomendaría escribir un programa Lisp que solo haga una comprobación básica de las reglas. No trate de que sea exhaustivo, estamos hablando del tipo de frontera con la que los investigadores de AI se están ocupando en términos de las capacidades de análisis de un programa.
Solo use Lisp para encontrar los posibles ofensores obvios, o simplemente para atrapar lo que sea que sea bueno capturando en términos de código no conforme, y luego someterlo a una breve exploración del ojo humano. Recomiendo abusar de macros si usa Lisp para escribir el analizador.
si necesita más información arquitectónica, use NDepend. Esta herramienta no para asombrarme. Puede hacer mucho más que FxCop. Es comercial, pero tiene una versión de prueba gratuita
FXCop es un buen comienzo para codificar problemas / errores, StyleCop es bueno para el estilo de codificación (obviamente), pero si ninguno de los dos funciona, entonces usted puede escribir un analizador o usar la clase VBCodeProvider en .Net Framework