Archive for the ‘C#’ Category

dez 30

Recentemente precisei melhor o desempenho de uma aplicação .net, e dando uma pesquisada por aí, encontrei um artigo escrito por Somnath Dey,  que descreve as melhores práticas no desenvolvimento de aplicações asp.net .

Dentre as boas práticas descritas por ele, seguem algumas:

- ative trace/debug somente quando necessário
- desative o session state caso não for utilizar
- desative o ViewState sempre que for possível (ou não for usar)
- utilize Response.Transfer ao invés de Response.Redirect, pois diminui o fluxo de indas e vindas do cliente ao servidor
- valide a entrada de inicialmente no browser, e não somente no servidor
- utilize cache
- entre outras ….

O artigo completo pode ser lido aqui http://www.dotnetfunda.com/articles/article45.aspx

[]‘s

dez 30

Clint Edmonson publicou recentemente em seu blog, um documento sobre code standards para C# e VB.Net.

O arquivo .doc pode ser baixado do endereço http://www.notsotrivial.net/blog/post/2008/12/Holiday-Goodie-Bag-Free-C-and-VB-Coding-Standards-Reference-Documents.aspx

Vale a pena dar uma olhada …

 []‘s

abr 11

Quem nunca esqueceu de fechar uma conexão com banco de dados que atire a primeira pedra!

Sempre que uma conexão com o banco de dados é feita, ela ficará ativa até que o método Close() seja chamado.

Existem duas formas de se garantir que a conexão não ficará ativa após sua utilização:  – Utilizando o bloco try/catch/finally Ao utilizar o bloco try/catch/finally pode-se garantir que a conexão será finalizada se colocar-mos o método Close() dentro do bloco finally, pois mesmo que uma exception seja gerada, esse bloco será executado.

// Criando o conexão e recuperando a connection string do web.config

SqlConnection conn = new SqlConnection();

conn.ConnectionString=ConfigurationManager.ConnectionStrings["StringConexao"].ConnectionString;

try

{

          // Abre a conexão com o banco de dados

          conn.Open();

          // Coloque aqui seu código que interajirá o banco de dados 

}
      catch (Exception ex)

{
          // Caso seja encontrado algum erro, a exception será gerada

          Response.Write(ex.Message);

}
finally

{

          // Mesmo que a exception tenha sido gerada, esse bloco será executado

          // conn.Close() ou conn.Dispose() são equivalentes e pode-se usar tanto um como o outro

          conn.Close(); 

}

- Utilizando using

Ao usar o bloco try/catch/finally, nada garante que você sempre irá se lembrar que colocar o método que fecha a conexão dentro do finally (como esse bloco é opcional, o que te impede de não coloca-lo!!!).

Uma ótima alternativa é a utilização do using, pois ele se encarregará de fechar a conexão assim que seu bloco se encerrar:

 using (SqlConnection conn = new SqlConnection())
 {
           // Define a string de conexão vinda do web.config
          conn.ConnectionString = ConfigurationManager.ConnectionStrings["StringConexao"].ConnectionString;

          // Abre a conexão

          conn.Open();

          // Coloque seu código aqui

}

Assim que o bloco using se encerrar, ele automaticamente fechará a conexão pra você.

Mais informações sobre a classe SqlConnection em http://msdn2.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.aspx .