Clovis Coli Jr

Turbinando Visual Studio com ReSharper

O ReSharper é poderoso add-in para o Visual Studio que na minha opinião, sem puxar a sardinha, é melhor IDE de desenvolvimento de software de todas as linguagens que conheço, mas como tudo não é perfeito e pode ser melhorado o pessoal da JetBrains  desenvolveu um plugin que hoje não consigo me imaginar trabalhando no Visual Studio sem ele, o ReSharper.

Lembro de uma vez que trabalhei em uma empresa onde eu era o Arquiteto de Software e precisava fazer com que o código dos desenvolvedores fossem padronizado, então pegando um documento padrão da empresa escrevi umas dez páginas de como seria a padronização de código como: declaração de variáveis, classes, nomenclatura de métodos etc, etc, etc. Duas coisas ocorreram, o código não ficava totalmente padronizado, por que ninguém lembrada de todos os padrões no momento do desenvolvimento e o ninguém tinha tempo para ficar parando e pesquisando no documento de padronização como deveria ser no caso de uma dúvida, resumindo, era inviável.

Enfim, o ReSharper não é apenas um plugin para turbinar o seu Visual Studio, esse é o resultado de algo muito maior para o qual ele é proposto, o ReSharper é capaz de padronizar o código de seus desenvolvedores, e tudo isso pode ser parametrizado, nós criamos nossos padrões como um perfil e podemos especificar como uma variável deve ser declara ou método ou classe etc. Hoje não consigo me ver escrevendo um bom código no Visual Studio sem o auxílio do ReSharper.

Para entender melhor acesse o site da empresa e veja o vídeo abaixo.


What is ReSharper

Injeção de Dependência com .Net Framework 4

Injeção de dependência (Dependency Injection, em inglês) é um padrão de desenvolvimento utilizado quando é necessário manter baixo o nível de acoplamento entre diferentes módulos de um sistema. Nesta solução as dependências entre os módulos não são definidas programaticamente, mas sim pela configuração de uma infraestrutura de software (container) que é responsável por “injetar” em cada componente suas dependências declaradas. A Injeção de dependência se relaciona com o padrão Inversão de controle mas não pode ser considerada um sinônimo deste.

Existem vários Frameworks para realizar a injeção de dependência em C#, dentre os principais posso citar o Spring.Net e o Ninject.  O Spring vai mais além do que um simples framework de injeção de dependência, e para quem às vezes deseja somente realizar a injeção de dependência pode acabar tentando matar uma formiga com uma bala de canhão, o Ninject surgiu para facilitar esse conceito, nada de mágica, nada de configuração xml e etc, ele pode ser uma boa saída para quem deseja algo simples e limpo.

Mas enfim, no Framework 4 existem algumas classes disponibilizadas no assembly System.ComponentModel.Composition que podemos utilizar de forma que eu não precisamos referenciar classes de terceiros em nossos projetos ou até mesmo criar aquelas configurações mirabolantes em xml.

Veja o código abaixo, perceba que em nenhum momento as propriedades MeuComponente e Mensagem são instanciados, mas no momento da execução da aplicação o .net injeta através do container, utilizando a interface e dos atributos export e import, a classe com a implementação da interface. Lembrado que podemos utilizar dessa tecnologia para criação de software componentizados, softwares baseado em plugins dentre outros modelos de arquitetura. (mais…)

C# Calcular Idade

Olá, depois de muito tempo sem escrever um post, comecei a pensar em como manter meu blog atualizado já que meu tempo é muito curto e não me sobra tempo pra escrever artigos, um desafio quase impossível não é? Foi aí que andei matutando aqui com meus neurônios e decidir mudar a estratégia dos posts, ao contrário de escrever grandes e complexos artigos que me tomam muito tempo, vou começar a  fazer pequenos posts de coisas que as vezes perco tempo procurando na internet e me pego várias pesquisando sobre a mesma coisa novamente. Então este será o primeiro de muitos Posts neste sentido, um método de extensão para obter a idade de uma pessoa referente  a uma determinada data.

    public static class Extensions
    {
        public static int GetAge(this DateTime dateOfBirth, DateTime dateAsAt)
        {
            return dateAsAt.Year - dateOfBirth.Year - (dateOfBirth.DayOfYear < dateAsAt.DayOfYear ? 0 : 1);
        }
    }

Simples e útil.


Enfinit - High Tecnology :: Consultoria e Desenvolvimento

Enfinit
Get Adobe Flash playerPlugin by wpburn.com wordpress themes