Cadastre-se Revistas DevMedia Cursos
 

Space de Ricardo da Silva Coelho
Busca Autor


Últimas 20 atualizações de Ricardo da Silva Coelho

Artigo - Testes Unitários - Revista easy .Net Magazine 22

De acordo com o Aurélio teste significa, dentre outras coisas, “Prova, verificação da eficiência ou bom funcionamento (de máquinas, materiais etc.)”.

Em toda indústria a questão dos testes é de suma importância para a qualidade final dos produtos desenvolvidos. Usemos a indústria automobilística como exemplo.
• O veículo passa por um “crash test” para avaliar o acionamento do air bag.
• O veículo passa por um teste de velocidade para avaliar o funcionamento dos componentes internos do motor.
• O veículo passa por um teste no túnel de vento para avaliar a desempenho aerodinâmico do mesmo.

Pois bem, a indústria de software, assim como as demais, possui diversas técnicas e metodologias empregadas para garantir a qualidade e o bom funcionamento do mesmo. Por exemplo, testes funcionais, testes de carga etc.
Enfim, existe uma infinidade de tipos e técnicas de testes de software, cada uma com o seu propósito. Alguns destes testes devem ser executados por “testes”, outros por usuários comuns e outros pelo próprio desenvolvedor, como é o caso do teste unitário, que veremos neste artigo.

Testes Unitários
O teste unitário é o teste de menor nível no desenvolvimento de software, ou seja, com ele testamos as menores estruturas que temos em nossos softwares, que são os métodos.

Sendo assim, quando estamos falando de testar unitariamente o software, estamos falando em criar métodos para testar os comportamentos de nosso sistema. Por exemplo, se temos um método somar, teríamos o método de testes “somarTest”.
Quando escrevemos um teste unitário para um método, desejamos garantir que o comportamento do mesmo seja exatamente como o esperado nas mais variadas possibilidades. A ideia é pegar os bugs logo que eles nasçam. Além disso, o teste unitário se torna um ativo do projeto, ou seja, pode ser reutilizado e executado diversas vezes sem onerar o seu tempo.

Testes unitários e TDD são coisas diferentes
Um equívoco muito comum que vejo as pessoas cometerem no início de seus estudos sobre testes unitários é a confusão com TDD. No início muita gente acha que escrevendo testes unitários está desenvolvendo orientado a testes.
TDD é mais do que uma técnica, é um processo de desenvolvimento onde todo código novo da aplicação é escrito a partir de um teste falho, ou seja, você primeiro escreve um teste sem que exista o recurso, este teste obviamente falhará, somente então você escreve a implementação do recurso.
Este processo possui três passos simples, conhecidos como Red, Green, Refactor, onde:
• Red: você escreve o teste sem existir o código. Logo ele falhará.
• Green: implementa a solução, escrevendo o código necessário para que o teste passe.
• Refactor: refatora a solução dada no item dois, de acordo com as boas práticas de programação.

Nota do Devman
Refatoração é uma boa prática de desenvolvimento que consiste em uma série de técnicas para melhorar a qualidade e legibilidade do código sem afetar o comportamento conhecido do sistema.

Pois bem, é preciso entender que testes unitários e TDD estão intimamente relacionados, porém são coisas bem diferentes. O fato de você usar testes unitários não significa que você use TDD.
Uma das diferenças chaves, é a ótica do tempo em que são realizados os testes. Se você implementa seu código e depois cria seus testes, você simplesmente usa testes unitários. Agora, a partir do momento em que você começa a escrever seus testes antes mesmos de implementar a solução que eles testarão, aí você está mais próximo do TDD.
Porém, o ponto fundamental é a motivação das duas técnicas. Enquanto testes unitários têm como objetivo principal garantir que cada parte do sistema tenha exatamente o comportamento esperado, o TDD tem como motivação principal o design do código. Um dos grandes benefícios do uso do TDD é o design da solução. Quando se pensa na ótica do consumidor do código antes mesmo do código existir, você se obriga a pensar e avaliar as melhores e mais simples formas de implementação da solução, o que traz um grande benefício para o design da solução.

Nota do Dev ...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
04/05/2012 18:38:00





Artigo - Função para retornar Célula do Excel – C#

Função para retornar Célula do Excel – C#

Olá pessoal, trabalhando na exportação de uma planilha para o excel me deparei com a necessidade de gerar o relatório com fórmulas, sendo que estas fórmulas iriam variar de acordo com os dados do relatório. Me vi então diante da necessidade de converter uma determinada linha/coluna em uma célula do excel, visto que o número de colunas era dinâmico, chegando facilmente na casa de dezenas. Por exemplo, coluna 30 equivale a coluna AD do excel.

Diante disso criei uma classe com duas funções para atender a esta necessidade, classe esta que venho compartilhar com vocês:

    public class ExcelUtil

    {

        //Array com as letras das colunas

        public static String[] letras = { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M",

                                          "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"};

        //Função que retornar a letra da coluna pelo índice

        public static String GetColumnLetterByIndex(Int32 col){

            String celula = "";

            //Aqui verificamos se a coluna passada é maior do que 26

            //pois 26 equivale a ultima letra do excel, "Z"

            //a partir daí começamos a ter duas letras... AA, AB, AC, AD...

            if (col > 26)

            {

                //Aqui pegamos o valor absoluto do resultado da divisão do numero da coluna por 26

                //Este é o indice da primeira letra de nossa coluna

                //Ex.: Col = 50 -> 50

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
28/09/2010 21:56:00





Artigo - Exportação para o Excel em .Net – Formatando células

Exportação para o Excel em .Net –Formatando células

Olá pessoal, no último artigo nós vimos como fazer uma exportação simples, inserindo valores nas células.

Hoje iremos entrar um pouco mais no detalhe, onde mostraremos como recuperar um conjunto de células e manipular a formatação das mesmas.

Podemos utilizar nosso mesmo projeto para este exemplo. A diferença é que desta vez iremos formatar os títulos das colunas, simulando o cabeçalho de um relatório.

Vou remover do código abaixo os comentários que já foram citados no artigo anterior, deixando apenas comentário nas linhas novas, para evitar que o exemplo fique com a visualização poluída.

No evento onclick de nosso botão, teremos:

private void simpleButton1_Click(object sender, EventArgs e)

        {

            Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();

 

            //Objeto que representa um conjunto de células

            Microsoft.Office.Interop.Excel.Range celulas;

 

            excelApp.Workbooks.Add(Type.Missing);

            excelApp.Visible = true;            //Exportação de colunas

            excelApp.Cells[1,1] = "Codigo";

            excelApp.Cells[1,2] = "Nome";

            excelApp.Cells[1,3] = "Data de Cadastro";

            excelApp.Cells[1,4] = "Percentual de Desconto";

 

            //Vamos agora centralizar os títulos

            celulas = excelApp.get_Range("A1", "D1");

            celulas.HorizontalAlignment = Microsoft.Office.Interop.Excel.Constants.xlCenter;


            //Recuperamos o conjunto de células de A1 até D1

            celulas = excelApp.get_Range("A1", "D1");

            //Após recuperarmos, podemos manipular o conjunto

            //Neste caso, mudaremos a cor para cinza

            celulas.Interior.Color = ColorTranslator.ToWin32(Color.LightGray);

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
28/09/2010 21:31:00





Artigo - Exportação para o Excel em .Net – Realizando uma exportação simples

Exportação para o Excel em .Net – Realizando uma exportação simples

Olá pessoal, no último artigo nós vimos as principais classes utilizadas e aquilo que é necessário para que possamos trabalhar com planilhas do excel em nossa aplicação.

Hoje iremos entrar na codificação, explicando e montando um exemplo de uma exportação simples, já com a formatação básica dos campos.

Para o nosso exemplo, crie um novo projeto WindowsForms e conforme foi falado no último artigo, adicione a referência à biblioteca “Microsoft.Office.Interop.Excel” ao projeto.

Neste exemplo, exportaremos uma série de dados “soltos” na planilha, apenas para demonstrar o básico da exportação.

Insira um botão no formulário e coloque o seguinte código no click do mesmo:

//Não esqueça do Using no namespace

using Microsoft.Office.Interop.Excel;

         private void simpleButton1_Click(object sender, EventArgs e)

        {

            //Aqui criamos um objeto que representa a aplicação, no qual iremos interagir

            //Inicialmente apenas este objeto é suficiente para nossa exportação básica

            Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();

 

            //Adicionamos  um novo WorkBook em nosso documento

            //Type.Missing representa a ausencia de um informação.

            //Usamos para não nenhum template para nosso documento

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
28/09/2010 21:27:00





Artigo - Exportação para o Excel em .Net – Introdução

Exportação para o Excel em .Net – Introdução

Olá pessoal, esses dias tive a necessidade de gerar algumas planilhas no excel e tive uma certa dificuldade de encontrar um material consistente que deve uma geral neste assunto. Encontrei muitos pedaços de exemplo, outras coisas tiveram que ver na marra mesmo, na base da tentativa e erro. Resolvi então fazer um apanhado geral e mostrar para vocês como funciona a integração de aplicações. Net com excel, demonstrando as principais funcionalidades da biblioteca que temos disponível. Faremos nosso exemplo utilizando WindowsForms e C#.

No .Net nós temos as seguintes classes e NameSpaces para manipular arquivos do excel:

Microsoft.Office.Interop.Excel.Application

Microsoft.Office.Interop.Excel.Range

Microsoft.Office.Interop.Excel.Workbook

Microsoft.Office.Interop.Excel.Worksheet

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
28/09/2010 21:24:00





Artigo - Carregando dinamicamente um user control no ASP.NET

Carregando dinamicamente um user control no ASP.NET

 

Olá pessoal, um dia desses tive a necessidade de inserir um controle UserControl e dinamicamente em uma página aspx. Após algumas tentativas cheguei a uma solução no qual apresentarei para vocês.

 

Para o nosso exemplo, crie uma nova aplicação WEB no visual studio. Clique com o botão direito no projeto, Add => New Item. Selecione a opção Web User Control para criamos um novo user control.

           

Insira alguns controles no UserControl, lembrando que carregaremos o mesmo no nosso aspx dinamicamente.

 

Feito isso, vamos agora carregar o conteúdo de webFormTeste dentro do nosso user control que está na nossa página principal. Para isso, digite o seguinte código no Page_Load da página principal.

 

 

    public partial

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
30/06/2010 03:31:00





Dica - Orientação a Objetos (Delphi/C#) - Introdução

Orientação a Objetos (Delphi/C#) - Introdução

 

Olá pessoal, hoje começarei a falar sobre orientação a objetos. Vou procurar abordar os principais conceitos de orientação a objetos, demonstrando exemplos de implementação em Delphi e C#. Falaremos sobre conceito, classes, objetos, encapsulamento, polimorfismo, interfaces dentre outros.

 

O mais importante em orientação a objetos não é saber criar e destruir um objeto ou saber fazer um override e um overload. Isso são apenas detalhes, o importante é dominar o conceito, e principalmente compreender o quão útil e produtivo a orientação a objetos pode ser no nosso dia a dia.

 

Antigamente, no modelo procedural e estruturado, tínhamos rotinas e subrotinas sendo executadas de forma seqüencial a fim de obtermos o processamento de determinada rotina. Basicamente tínhamos variáveis locais e globais, sem definição de escopo para as mesmas.

 

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
30/06/2010 03:28:00





Artigo - Ciclo de vida de uma página ASPX - Parte 1

Ciclo de vida de uma página ASPX - Parte 1

            Olá pessoal, nos artigos anteriores falei sobre o ciclo de vida de uma aplicação ASP.NET, explicando como é realizada a interpretação da requisição pelo servidor web(IIS) e como o ASP.NET procede durante esta requisição. Hoje, começarei a falar sobre o ciclo de vida da página ASP.NET.

            Assim como a aplicação ASP.NET tem um ciclo de vida, a página de uma aplicação ASP.NET também tem seu ciclo de vida. Este ciclo inclui inicialização, instanciação de controles, manutenção de estado, execução de eventos e renderização.

 

            As fases deste ciclo de vida são as seguintes:

           

         

 

Onde em cada uma das fases, temos as seguintes características:

 

Page request  - Ocorre antes do ciclo de vida da página começar. Quando a página é requisitada por um usuário, o ASP.NET determina quando a página precisa ser analisada e compilada(antes do inicio da vida da página), ou uma versão em cachê da página pode ser enviada em resposta sem rodar o ciclo de vida da página.

 

Start

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
30/06/2010 03:20:00





Artigo - Ciclo de vida de uma aplicação ASP.NET – Parte 2

Ciclo de vida de uma aplicação ASP.NET – Parte 2

      Olá pessoal, no primeiro artigo desta série, expliquei como é o tratamento do servidor WEB e como o ASP.NET se comporta quando recebe uma requisição no servidor. Hoje daremos seqüência ao ciclo devida de uma aplicação ASP.NET demonstrando a seqüência de operações que ocorrem no objeto HttpApplication quando o mesmo é instanciado.

Enquanto a requisição é processada, uma série de eventos são disparados. O conhecimento destes eventos é fundamental quando desejamos implementar nossa própria HttpApplication. Estes eventos são:

1.      ValidateRequest() – Responsável por validar a requisição, verificando se a mesma possui algum código malicioso.

2.      Realiza o mapeamento das URL caso as mesmas tenham sido configuradas na seção UrlMappingsSection do web.config.

3.      Dispara o evento BeginRequest()

4.      Dispara o evento AuthenticateRequest()

5.      Dispara o evento PostAuthenticateRequest()

6.      Dispara o evento AuthorizeRequest()

7.      Dispara o evento PostAuthorizeRequest()

8.      Dispara o evento ResolveRequestCache()

9.      Dispara o evento

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
30/06/2010 02:01:00





Artigo - Ciclo de vida de uma aplicação ASP.NET - Parte 1

Ciclo de vida de uma página ASPX - Parte 1

            Olá pessoal, quando comecei a desenvolver aplicações em ASP.NET, um dos primeiros pontos que precisei compreender foi o ciclo de vida de uma aplicação ASP.NET. Isso é fundamental para desenvolvermos aplicações WEB com ASP.NET. Neste artigo, explicarei sucintamente qual o ciclo de vida de uma aplicação ASP.NET, demonstrando a seqüência de eventos que são disparados pela mesma quando realizamos uma requisição ao servidor.

            Tudo começa quando realizamos uma requisição do browser para o servidor web. O servidor então recebe esta requisição, verifica a extensão do arquivo e com isso determina como será processada essa requisição, redirecionando a mesma para a extensão ISAPI correpondente, no nosso caso ASP.NET.

            Quando o ASP.NET recebe a primeira requisição da aplicação, uma classe chamada ApplicationManager cria uma instância de application domain. Application domain representa o domínio da aplicação, o que permite que cada aplicação seja descarregada separadamente.

            Depois que o application domain é criado, ele instancia um objeto chamado HostingEnvironment e então o ASP.NET cria

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
30/06/2010 01:40:00





Artigo - Trabalhando com arquivos e diretórios no DotNet – Parte 1

Trabalhando com arquivos e diretórios no DotNet – Parte 1

 

Olá pessoal, hoje começaremos a falar sobre como interagir e trabalhar com arquivos e diretórios, criando, abrindo, excluindo e obtendo informações a respeito dos mesmos.

 

O namespace System.IO  é o namespace que usamos para trabalhar com arquivos. Neste namespace nós temos tudo o que precisamos para interagir com arquivos e diretórios. Neste namespace nós temos a classe FileInfo. Com esta classe conseguimos extrair informações do arquivo, como por exemplo data de criação, tamanho, nome, último acesso dentre outras.

 

Vamos começar apresentando algumas propriedades da classe FileInfo.

 

CreationTime – Esta propriedade retorna a data e hora de criação do arquivo.

 

Directory – Retorna o diretório no qual o arquivo está inserido

 

DirectoryInfo – Retorna o path completo do diretório no qual está inserido

 

Exists – Retorna true quando o arquivo existe ou false quando o mesmo não existe.

 

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
31/05/2010 20:45:00





Artigo - Trabalhando com arquivos e diretórios no DotNet – Parte 2

Trabalhando com arquivos e diretórios no DotNet – Parte 2

 

Olá pessoal, hoje seguiremos falando sobre como interagir e trabalhar com arquivos e diretórios. No último artigo demonstramos as propriedades e métodos da classe FileInfo. Hoje falaremos sobre diretórios.

 

Para lidar com diretórios, nós temos a classe DirectoryInfo. Ela encapsula todo o comportamento e estado necessários para lidar com diretórios.

 

Vamos começar apresentando algumas propriedades da classe FileInfo.

 

CreationTime – Esta propriedade retorna a data e hora de criação do arquivo.

 

Exists – Retorna true quando o arquivo existe ou false quando o mesmo não existe.

 

FullName – Retorna o nome completo do arquivo, incluindo o diretório.

 

IsReadOnly – Indica se o arquivo é somente leitura ou não

 

Name – Retorna o nome do arquivo

 

LastAccessTime – Retorna a data e

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
31/05/2010 20:45:00





Artigo - Criptografia com MD5 no DotNet - Parte 2

Criptografia com MD5 no DotNet - Parte 2  

 

Olá pessoal, hoje mostraremos como implementar a verificação de um valor criptografado com algoritmo MD5 em uma aplicação C# com windowsForms.

 

Olá pessoal, vimos no último artigo, que a framework .Net possui classes que facilitam nossa vida quando o assunto é criptografia. Vimos como implementar como criptografar  um valor usando o algoritmo MD5. Como todos já devem saber, não existe algoritmo para descriptografar o MD5, ou seja, não tem como revertermos uma criptografia realizada.

 

Se não é possível descriptografar um hash MD5, como podemos então verificar se uma senha é válida por exemplo. Simples. Nós temos que criptografar o valor a ser verificado e comparar com o MD5 armazenado.

 

Para este nosso exemplo, vamos usar a aplicação do último artigo. Apenas adicione mais um TextBox e renomeie o mesmo para TxtVerificaValor. Adicione também um novo botão. A idéia neste exemplo é digitar um valor em TxtValor, clicar no botão para criptografar, assim o valor de TxtValorCriptografado será preenchido. Depois vamos digitar um valor qualquer em txtVerificaValor e clicaremos no botão verificar, que irá comparar o hash gerado com o hash do valor a ser verificado.

 

Crie o método abaixo que será responsável por verificar o valor passado se coincide com o Hash me questão.

 

// Verifica se o valor é compativel com o hash passado

public bool verifyMd5Hash(string valor, string valorCriptografado)

{

    // Criptografamos o valor passado como parâmetro

    // utilizando o mesmo método citado no artigo anterior

    string NovoValorCriptografado = GerarMD5(valor);

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
31/05/2010 19:20:00





Artigo - Criptografia com MD5 no DotNet – Parte 1

Criptografia com MD5 no DotNet – Parte 1

 

Olá pessoal, hoje mostraremos como implementar o algoritmo de criptografia MD5 no .Net em uma aplicação C# com windowsForms.

 

Olá pessoal, a framework .Net possui classes que facilitam nossa vida quando o assunto é criptografia. Hoje nós veremos como implementar uma rotina de criptografia utilizando o algoritmo MD5. Estas classes ficam no namespace System.Security.Cryptography.      

 

Para este nosso exemplo, crie uma nova aplicação WindowsForms e adicione dois edits e um botão no formulário principal. Renomei um dos edits para TxtValor e o outro para txtValorCriptografado.

 

A idéia é digitarmos o valor a ser criptografado no TxtValor e exibir o mesmo já criptografado no txtValorCriptografado.

 

Crie o método  abaixo que será responsável por efetuar a criptografia.

 

// Nosso método recebe como parâmetro o valor a ser criptografado e retorna o mesmo

public string GerarMD5(string valor)

{

    // Cria uma nova intância do objeto que implementa o algoritmo para

    // criptografia MD5

    MD5 md5Hasher = MD5.Create();

 

    // Criptografa o valor passado

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
31/05/2010 19:18:00





Artigo - Alterando a senha do SYSDBA no Firebird

Alterando a senha do SYSDBA no Firebird

Olá pessoal, hoje mostraremos como alterar a senha do usuário SYSDBA em um banco de dados Firebird.


Todos que trabalham com firebird sabem que diferentemente de outros SGDBs, durante sua instalação não temos a opção de informar a senha “mestre” do banco de dados. No firebird, esta senha, que é a senha mestre do usuário SYSDBA que é o usuário mais forte do SGDB, só pode ser alterada depois, através de um utilitário de linha de comando disponibilizado pelo FBServer.

Manter a senha padrão é um tanto quanto complicado, pois todos sabem que a senha de SYSDBA é masterkey, sendo assim, sua base fica extremamente exposta. Para minimizar os riscos de exposição de sua base de dados, podemos alterar a senha do usuário SYSDBA.

Para isso, abra o prompt de comando do windows e navegue até o diretório bin da pasta de instalação do seu firebird server. No meu caso, o mesmo está instalado em “C:\Arquivos de programas\Firebird\Firebird_1_5”, neste caso utilizarei o seguinte comando no prompt de comando para navegar até a pasta:

cd “C:\Arquivos de programas\Firebird\Firebird_1_5\bin”


Nesta pasta, temos alguns utilitários do Firebird para administração do servidor. Dentre eles temos o gsec que é quem utilizaremos para alterar a senha do usuário SYSDBA.

Para isso, ainda no prompt de comando, vamos logar no gsec, através da seguinte linha de comando:

gsec -user sysdba -password masterkey


Com este comando, vamos logar no gsec. Após logar, basta executarmos mais uma linha para alterar a senha do SYSDBA. Para isso digite o comando abaixo:

modify sysdba -pw newpasswd

Onde newpasswd é a nova senha definida para o usuário SYSDBA.

Vamos ficando por aqui, espero que tenham gostado e que as informações passadas sejam úteis no seu dia-a-dia. Fiquem a vontade para deixar comentários, enviar emails, com dúvidas, críticas e sugestões de temas.


Um grande abraço.
Ricardo Coelho. -->">
31/05/2010 15:06:00





Artigo - Implementando um Captcha Básico em ASP.NET

Olá pessoal, hoje mostraremos como implementar um captcha básico em uma aplicação WebForm com ASP.NET.

 

Para nosso exemplo, vamos criar uma nova ASP.NET WebApplication.

 

Após criada, crie uma nova página e chame-a de Captcha.aspx.

No evento OnLoad desta página, insira o seguinte código:

 

Bitmap objBMP = new System.Drawing.Bitmap(60, 20);

Graphics objGraphics = System.Drawing.Graphics.FromImage(objBMP);

objGraphics.Clear(Color.SkyBlue);

objGraphics.TextRenderingHint = TextRenderingHint.AntiAlias;

// Fonte configurada para ser usada no texto do captcha

Font objFont = new Font("Times New Roman", 10, FontStyle.Strikeout);

string captchaValue = "";

int[] valuesArray = new int[8];

int x;

//Cria o valor randomicamente e adiciona ao array

Random autoRand = new Random();

for (x = 0; x < 8; x++)

{

    valuesArray[x] = System.

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
31/05/2010 02:59:00





Artigo - Implementando AutoComplete no TextBox – WindowsForms

Olá pessoal, hoje mostraremos como implementar o recurso de AutoComplete em um TextBox em uma aplicação WindowsForms.

 

O TextBox nos fornece propriedades para que possamos implementar facilmente este recurso de autocomplete.

 

Vamos fazer um exemplo para demonstrar o uso destas propriedades. Crie uma nova aplicação WindowsForms e adicione um novo textBox ao formulário.

 

As propriedades AutoCompleteSource e AutoCompleteMode, nos permite configurar o recurso de autocomplete. Estas propridades possuem os seguintes valores:

 

AutoCompleteSource


AllSystemResources – Equivalente ao FileSystem e AllUr.

AllUrl – Equivalente ao HistoryList e RecentlyUsedList.

CustomSource – Exibe uma lista personalizada, definida em AutoCompleteCustomSource.

FileSystem – Exibe items do sistema de arquivos como fonte.

FileSystemDirectories – Determina que apenas nomes de diretórios serão exibidos. Ignorando nomes de arquivos.

HistoryList – Exibe o histórico de todas as URLs como fonte.

None – Determina que o recurso de AutoComplete não será habilitado.

RecentlyUsedList – Exibe lista de URL’s mais usadas recentemente.

 

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
31/05/2010 02:57:00





Artigo - Tratamento de Exceções em C# - Parte 1

Toda linguagem que se preze, nos fornece meio de tratar uma exceção. O tratamento de exceções é algo fundamental para a qualidade de nossos sistemas, porém, muitas das vezes acabamos por não fazer o nosso dever de casa e isso nos traz sérios problemas na manutenção de nossos sistemas. Hoje mostraremos como é o tratamento de exceções no C#.

 

No C#, o tratamento de exceções é feito através do seguinte bloco de código:

 

    try

    {

        //Rotinas a serem executadas por sua aplicação

    }

    catch (Exception E)

    {

        //Bloco executado caso ocorra alguma exceção

    }

    finally {

        //Bloco sempre executado ao final, independentemente de

        //ter ocorrido erro ou não

    }

 

O bloco de código acima, demonstra a estrutura do tratamento de exceções no C#. Dentro do bloco try, temos o que chamamos de “código protegido“. Abaixo, no catch, nós temos o código a ser executado caso ocorra alguma exceção no nosso código protegido. Por fim, temos o bloco finally, que sempre será executado.

 

Crie uma aplicação WindowsForms, inclua um botão no formulário e no

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
31/05/2010 01:09:00





Artigo - Pecado capital no tratamento de exceções - ”síndrome-do-falou-tudo-e-não-disse-nada”

Pecado capital no tratamento de exceções - ”síndrome-do-falou-tudo-e-não-disse-nada”

 

Olá pessoal, hoje falaremos sobre um pecado capital cometido por muitos desenvolvedores no tratamento de exceções.

 

Um tratamento de exceções eficiente é aquele que impede que o sistema pare por completo e que nos ajuda a diagnosticar o problema ocorrido e não um que mascare o erro.

 

Pois bem, apesar desse conceito ser óbvio, não é isso que vemos muitas das vezes. É comum vermos desenvolvedores “tratando” exceções, de forma que acaba atrapalhando a análise do problema ou então mascarando o mau funcionamento do sistema.

 

Vou mostrar para vocês um erro muito comum e que deve sempre ser evitado no tratamento de exceções.

 

É o que chamo de ”síndrome-do-falou-tudo-e-não-disse-nada”. É aquela velha história, quando alguém te fala alguma coisa, mas na verdade acaba não dizendo nada, ou seja, você continua com os mesmos questionamentos anteriores ao diálogo.

Essa síndrome se caracteriza pelo seguinte cenário:

 

try

{

    //executa rotina 1

    //executa rotina 2

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
31/05/2010 01:07:00





Artigo - Construindo uma SplashScreen em Windows Forms com C#

Construindo uma SplashScreen em Windows Forms com C#

 

Olá pessoal, hoje demonstraremos uma forma de construirmos uma SplashScreen em Windows Forms com C#.

 

SplashScreen é aquela tela inicial de nossa aplicação, que é exibida para o usuário durante um certo tempo, enquanto carregamos algumas configurações, abrimos conexão, dentre outras rotinas necessárias na inicialização de nossa aplicação.

 

Para o nosso exemplo, crie uma nossa aplicação WindowsForms no VisualStudio. Altere o nome do formulário, que já criado por padrão junto com o projeto, para FrmPrincipal. Adicione um novo formulário ao projeto, este novo formulário será a nossa SplashScreen.

 

Renomei este formulário para FrmSplahScreen e adicione um componente PictureBox no mesmo. Carregue uma imagem qualquer no componente através de sua propriedade Image.

 

Altere a propriedade FormBorderStyle para none, para que nosso formulário não tenha bordas.

 

Agora, precisamos escrever o código para carregar o nosso formulário. Para isso, abra o arquivo principal de nosso projeto WindowsForms, o responsável por executar a aplicação. O arguivo Program.cs. Altere o mesmo de forma que fique como descrito abaixo:

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Windows.Forms;

using System.Threading;

 

namespace WindowsFormsApplication1

{

    static class Program

    {

        /// <summary>

        /// The main entry point for the application.

        /// </summary>

        [STAThread

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
31/05/2010 01:06:00





 

rcoelhorj@gmail.com

Graduado em Analise de Sistemas, Pós-graduando em Engenharia de software, mais de 7 anos de experiência em desenvolvimento de software, onde atuou em projetos de diversos seguimentos como varejo, telecomunicações, ERPs etc e nas mais variadas plataformas(Desktop, Web e Mobile). Articulista do portal devmedia e das revistas ClubeDelphi e Easy .net Magazine. Entusiasta de métodos ágeis, atualmente atua como ScrumMaster em projetos de software voltados para a área de petróleo e gás além de se dedicar ao aprofundamento de seus estudos na área de GIS e Mobile.
Arquivo de atualizações
 2012
 2010
 2009

Estatísticas do Autor:
Número de posts: 139
Características dos posts deste autor:
Conteúdo:
Utilidade:
33 0
 
DevMedia Group - Tel: (21) 3382-5038 - www.devmedia.com.br
Todos os Direitos Reservados a DevMedia Group