quarta-feira, 30 de maio de 2007

[Off-Topic] Microsoft Surface

Não é relacionado com programação diretamente, mas aposto que vão gostar. É um futuro produto da microsoft que parece ser muito interessante. Um computador cuja tela fica na horizontal , como uma mesa, por exemplo, e é controlado totalmente por touchscreen.

Para copiar músicas para um Mp3 player , por exemplo, coloca-se o aparelho em cima da tela e arrasta-se as músicas para ele. Fica bem melhor vendo, Assistam os vídeos.

http://www.microsoft.com/surface/

sábado, 12 de maio de 2007

Tratamento de erros: Tratando e registrando erros

Nesse artigo vou falar sobre o tratamento de erros e registro dos mesmos. Anteriormente escrevi outros artigos sobre o object Exception e o tratamento de erros no .Net :

http://br1dev.blogspot.com/2007/04/tratamento-de-erros-objeto-exception.html
http://br1dev.blogspot.com/2007/04/tratamento-de-erros-objeto-exception_10.html
http://br1dev.blogspot.com/2007/04/tratamento-de-erros-objeto-exception_16.html

Agora vamos ao artigo:

Um fator que melhora a confiabilidade da sua aplicação é a maneira com ela trata os erros que ocorrem durante sua execução. É claro que o ideal é evitar o máximo possível que erros ocorram, mas é necessário que a aplicação se recupere adequadamente quando um erro ocorrer. Achar que sua aplicação está segura e não terá erros, e por isso abrir mão de um tratamento adequado, pode expor sua aplicaçõe a riscos de segurança e integridade da aplicação.

Sempre que um erro ocorrer na aplicação, são importantes os seguintes procedimentos:


  • Recuperar o sistema - Sempre que possível, o sistema deve retornar ao estado em que estava antes da execução da operação que gerou o erro. Um exemplo clássico disso. Você confirma o recebimento de uma pedido de venda. A operação atualiza o estoque , mas quando tenta alterar o status do pedido , ocorre um erro. Se o estoque não for retornado ao estado anterior, o usuário pode tentar repetir a operação (Afinal , para ele houve um erro e a operação não foi concluída) e o estoque será alterado novamente, ficando com valores errados.
  • Informar o usuário - Evite esconder um erro, não mostrando ao usuário que houve um erro. Exceto em casos específicos, é sempre importante avisar o usuário que o sistema não se comportou da forma esperada, para que ele possa corrigir o problema ou pelos contatar o suporte. Entretanto, uma mensagem do tipo "Object reference not set to an instance of an object" não ajuda em nada o usuário. O ideal é mostrar ao usuário uma mensagem padrão, do tipo "Ocorreu um erro no sistema, contato o suporte técnico etc.", ou então alguma coisa que realmente o ajude a solucionar o problema.
  • Registrar o erro - Se por um lado não é interessante mostrar ao usuário detalhes do erro, também não é uma boa ignorar esses detalhes por completo. O ideal é registrar a mensagem original do erro, e todos os outros detalhes possíveis a fim de auxiliar a correção do erro pelos desenvolvedores. Devem ser registradas informações como a pilha de chamadas, que mostra toda a cadeia de chamada de métodos até chegar no local do erro, o nome do erro (ArgumentException, por exemplo) e quaisquer outras informações que estejam disponíveis. Você sabia que com o objeto SQLExcetion é possível obter as mesmas informações que aparecem quando você executa a procedure ou comando no Query Analyzer?. Outra informação importante é a InnerException. No terceiro artigo que mencionei no começa desse post falo mais sobre ela. Para registrar o erro você poderia gravar em um arquivo texto, um arquivo XML, enviar por email ou gravar em um banco de dados. O importante é escolher o mecanismo que torne mais fácil o acesso a essas informações.

Pra finalizar, você poderia tornar esse tratamento mais fácil criando uma função que recebe o objeto Exception e faça o registro e exibição da mensagem referente ao mesmo. Aí, é só chamar a função em todo bloco catch da aplicação.

quinta-feira, 3 de maio de 2007

[Off-Topic] Google AdSense

Esperava mais do Google AdSense. Achei que ele mostrava propagandas que tivessem relação com o conteúdo do site, mas no meu blog só tá mostrando anúncios para se livrar do alcoolismo e propagandas de Fossas Sépticas! :

Começando em .Net e C#

Desculpem pela demora na postagem, as coisas estão meio corridas pra mim ultimamente.

De vez em quando vejo emails em listas de discussão, ou mesmo alguém me pergunta como começar no .Net . Resolvi então colocar algumas instruções .

Em primeiro lugar, o .Net fornece uma estrutura para o desenvolvimento e execução de aplicações gerenciadas. Gerenciada porque durante a execução da aplicação, o framework controla alguns recursos que a aplicação utiliza, como conexão com o banco de dados e memória utilizada.

Aplicações para esse framework podem ser criadas em diversas linguagens, sendo as principais, que são suportadas pela Microsoft são o C# e o VB.Net. A diferença entre essas duas linguagens é apenas na sintaxe. Todos os recursos do Framework estão disponíveis para qualquer linguagem, então escolha a que melhor agradar. Minha sugestão, aprenda as duas. Não é algo difícil, afinal a base é a mesma, e você terá muito mais flexibilidade profissionalmente.

O Importante então, é aprender o framework, sua estrutua principal.

Um bom lugar pra começar é Programa Desenvolvedor 5 estrelas. Esse programa consiste em uma série de treinamentos, na forma de apresentações com narração, que você pode baixar e estudar. São 3 estrelas principais (as duas últimas se referem à certificação). Cada nível possui um grau diferente de dificuldade e possuem provas online para se certificar que você assimilou o conteúdo do nível (não vale colar, hein :) ) . Acho que não preciso dizer que o ideal é começar do nível 1, e quando tiver dominado os conceitos apresentados, partir para o nível seguinte.
Endereço : http://www.msdnbrasil.com.br/cinco_estrelas/#Treinamento

Depois de ter estudado o programa acima, dê uma olhada no link abaixo, que possui alguns tutoriais interessantes para quem está começando. Ou mesmo para quem já conhece alguma coisa e quer saber algo mais sobre Datagrids, por exemplo.
Endereço : http://www.microsoft.com/brasil/msdn/Tutoriais/default.mspx

Quando estiver um pouco mais experientes, dê uma olhada nos Webcasts da microsoft. Para quem não sabe, webcast é uma apresentação online, onde você além de assitir a apresentação de slides, ouve o apresentador falando e, pelo menos em alguns casos, pode fazer perguntas a ele. Além disso, depois da realização do webcast, você pode fazer o download da apresentação para assistir depois . Claro que nesse caso não vai conseguir perguntar, a não ser que mande um email pro cara. :)
Endereço : http://www.microsoft.com/brasil/msdn/Eventos/Webcasts.mspx

Bom, é isso. Claro que há muito mais material disponível, mas com esses já dá para ser introduzido (sem duplo sentido, por favor) no mundo .Net. É importante que durante seu estudo, na medida do possível, você ponha a mão na massa. Crie programas que apliquem o que você estudou, assim irá fixar e aprender bem melhor.

E sempre haverá o Google ;)
Endereço: Precisa? Tá bom : http://www.google.com.br