Cadastre-se Revistas DevMedia Cursos
 

Space de RICARDO DA SILVA COELHO
Busca Autor


Últimas 20 atualizações de RICARDO DA SILVA COELHO

Artigo - Trabalhando com Interfaces em .NET - Revista Easy .Net Magazine 28

[rotulo] Artigo do tipo Tutorial
Recursos especiais neste artigo:
Contém nota Quickupdate, Conteúdo sobre boas práticas. [/rotulo] [lead]Trabalhando com Interfaces em .NET
Neste artigo vamos explorar o uso de interfaces no .NET, explicando os principais conceitos à cerca da mesma e demonstrando através de um exemplo prático como podemos obter maior reuso e desacoplamento em nossos projetos com o uso deste recurso.O uso de interfaces é fundamental para conseguirmos aumentar a abstração de nossas aplicações e reduzir o acoplamento de nosso código, sendo este recurso fundamental para a compreensão de padrões de projeto e diversos outros conceitos importantes de engenharia de software.

Em que situação o tema é útil
Através do uso de interfaces podemos abstrair detalhes concretos deixando a aplicação mais independente destas implementações e com uma manutenção mais fácil, desta forma, os conceitos apresentados aqui são úteis no desenvolvimento de qualquer software orientado a objetos, além de ajudar o leitor a compreender melhor alguns frameworks disponíveis no mercado e algumas funcionalidades do próprio .NET.[/lead]

A orientação a objetos dispõe de recursos que nos permitem aumentar a abstração de nossas aplicações, reduzindo o acoplamento e aumentando o reuso da mesma, tornando nossos códigos mais legíveis, aderentes ao mundo real e mais fáceis de manter.

Um dos principais recursos da orientação a objetos para isso são as Interfaces, sendo esta fundamental para abstração de nossos aplicativos.

Quando falamos em interface logo nos vêm à cabeça o conceito de interface com o usuário, nos remetendo às telas de nossa aplicação. Pois bem, as telas de nossa aplicação não deixam de ser uma interface de comunicação com o usuário final, mas não é deste tipo de interface que estamos falando aqui.

Neste artigo veremos o conceito da estrutura chamada Interface, que visa abstrair comportamentos comuns a diversos objetos de forma que nossa aplicação possa fazer referência à estes comportamentos e não aos objetos concretos em si.

[subtitulo]Classe x Interface[/subtitulo]

A primeira coisa que precisamos ter em mente é a diferença entre uma classe e uma interface. Ambos representam tipos d

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
14/02/2013 00:00:00





Artigo - Fundamentos básicos de Orientação a Objetos – Revista easy .Net Magazine 26

Atualmente existem dois paradigmas principais de desenvolvimento de software na mente dos desenvolvedores e no mercado. Temos o paradigma estruturado, que antes dominava o mercado, e o paradigma da orientação a objetos (O.O), que cada vez mais vai ganhando seu espaço.

O fato é que a orientação a objetos vem tendo sua adoção numa crescente no mercado, mas por outro lado na maioria das vezes ela é subutilizada. É muito comum vermos equipes de desenvolvimento que desconhecem alguns fundamentos básicos da orientação a objetos, que são os pilares da mesma, como por exemplo a diferença entre uma classe e um objeto, os conceitos de value types e reference types, o conceito de abstração com heranças e interfaces, dentre outros.

A ideia deste artigo é apresentar alguns dos conceitos mais básicos e fundamentais da orientação a objetos com exemplos pontuais e aplicados ao C#. Vamos aproveitar também para falar sobre algumas palavras reservadas do C# que estão relacionadas aos conceitos que vamos apresentar.

Programação estruturada VS Programação Orientada a Objetos
Antigamente, há algumas décadas atrás, o paradigma que predominava no desenvolvimento de software era o da programação estruturada. Basicamente os softwares eram compostos por rotinas e sub-rotinas que chamavam umas às outras, além de variáveis que tinham escopo local (dentro de rotinas / sub-rotinas) ou global. Assim como todo paradigma, o paradigma estruturado tinha seus prós e contras e foi bastante eficiente no que se propôs durante seus anos de domínio no mercado, além de ter sido bastante importante para a evolução da engenharia de desenvolvimento de software.

Com o passar dos anos surgiu o paradigma da orientação a objetos, que também não é tão novo como muitos pensam, mas que veio a ganhar mais força na última década.

A orientação a objetos surgiu com o objetivo de tornar o desenvolvimento de software menos complexo e mais produtivo. A ideia é termos estruturas de dados que possuem estado e comportamento e que colaboram entre si. Dessa forma deixaríamos de ter todas as rotinas e sub-rotinas “espalhadas” pelo sistema e passaríamos a aloca-las nestas estruturas de dados, de forma coesa, cada qual com sua responsabilidade. Além disso, encapsularíamos as variáveis nestas mesmas estruturas, controlando o acesso às mesmas e tornando público apenas aquilo que for pertinente.

O paradigma da orientação a objetos possui três conceitos fundamentais:
• Encapsulamento – Prevê o isolamento a determinados elementos do objeto (métodos /atributos) de acordo com a necessidade de acesso a eles. Este conceito parte da premissa de que nem todo método e atributo precisam estar visíveis e acessíveis publicamente. Existem elementos que são pertinentes apenas ao próprio objeto, outros pertinentes aos objetos filhos e outros que são pertinentes a todos os objetos associados. O encapsulamento se dá através dos modificadores de acesso, que veremos mais a frente.
• Abstração – É a capacidade de focar nos pontos mais importantes do domínio de aplicação do sistema e abstrair os detalhes menos relevantes. Na modelagem de um sistema orientado a objetos, uma classe tende a ser a abstração de entidades existentes no mundo real (domínio da aplicação). Ex.: Cliente, Funcionário, Conta Bancária.
• Polimorfismo – É a capacidade de um elemento assumir diferentes formas. Na orientação a objetos, chamamos de polimorfismo a possibilidade que temos de mudar o comportamento de um mesmo método de um objeto dentro da sua hierarquia.

Além disso, podemos citar os seguintes elementos com sendo os alguns dos principais da orientação a objetos:
• Classe – Uma classe é um tipo de dado que representa tudo aquilo que um objeto deste tipo poderá ter/fazer. Na classe determinamos o que será armazenado em seu estado e quais comportamentos ele terá. Ela funciona como uma estrutura de referência para a criação de objetos.
• Objeto – Um objeto é uma instância de uma classe. É a estrutura completa, criada em memória, que irá representar a classe com tudo o que foi definido nela, inclusive com os valores armazenados nos seus respectivos atributos.
• Atributos – Os atributos representam o estado e as características de um objeto. É neles que armazenaremos as informações de nossos objetos. Ex.: Nome, Idade, Endereço etc.
• Métodos – Representam os comportamentos de nossos objetos o

...
Exibição do post interrompida. Para ler conteúdo completo, clique aqui
14/11/2012 17:33:00





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 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 - 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 - 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





 

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 editor geral das revistas .NET Magazine e Easy .NET Magazine. Entusiasta de métodos ágeis, atualmente trabalha como ScrumMaster em projetos .NET voltados para a área de petróleo e gás além de se dedicar ao aprofundamento de seus conhecimentos na área de GIS e Mobile, com o desenvolvimento de soluções em Android.
Arquivo de atualizações
 2013
 2012
 2010
 2009

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