Dicas de Instrumentação e análise de desempenho

Neste artigo veremos como podemos descobrir problemas e fazer aplicações seguindo as boas práticas da Microsoft


Instrumentação: termo utilizado quando preparamos o nosso aplicativo para que ele nos dê o máximo de informação possível.

O namespace System.Diagnostics possui uma serie de classes que nos ajudam  a instrumentar nossa aplicação, e uma das principais classes é a  EventLog(acesso ao log de Eventos do Windows). Podemos acessar ao Event Viewer ou Visualizador de eventos do Windows nas ferramentas administrativas.

Vamos ao exemplo:

try {...} Catch (Exception ex) { //passamos o local onde o log será gerado(na pasta Application), a maquina que //esta gerando o log(“.” Representa a maquina) e o nome da aplicacao EventLog log = new EventLog(“Application”, “.”, “MinhaAplicacao”); //criar nova entrada de log Log.WriteEntry(ex.ToString(), EventLogEntryType.Error); throw ex; }

Exemplo de log quando o usuário entrar na aplicação:

String msg = “Usuário se logou na aplicacao”; EventLog log = new EventLog(“Application”, “.”, “MinhaAplicacao”); Log.WriteEntry(msg, EventLogEntryType.Information);

Code Analysis

Verifica o código validando a conformidade com o Microsoft .Net Framework Design GuideLines usando Reflection, MSIL Parsing e Callgraph Analysis.

É uma ferramenta que permite verificar regras de design, uso correto dos padrões, detecta ainda problemas como desempenho, segurança e outros. O CA não analisa no código-fonte, e sim o assembly.

Para rodar o CA basta clicar com o botão direito em cima do projeto e clicar em Run Code Analysis. Existe a possibilidade de desenvolver as próprias regras, além de podermos também habilitar/desabilitar as regras de acordo com nossas preferências.

Apos habilitar o CA e executá-lo, teremos uma lista de erros/warning. Podemos clicar com o botão direito/ Show Error Help para visualizar uma explicação detalhada da regra e como podemos resolver o warning.

Cada vez que rodamos o CA ele altera um arquivo XML dentro da pasta /Bin/debug ou /Bin/realease com o nome CodeAnalysis.XXX.dll.CodeAnalysisLog.XML(onde xxx é o nome do projeto). Ao usar o Supress Message(bloquear uma determinada regra), o CA cria um arquivo chamado  GlobalSuppressions.cs que contém os atributos usados em todo o assembly.

Artigos relacionados