Enterprise Library 5.0 está chegando!

05/01/2010 01:21

DevGuide_PDC_Preview_CSharp_Edition_small

O time do patterns & practices responsável pela Enterprise Library está a todo vapor preparando a nova versão. Já é possível baixar um preview do guia Zen and the Art of Managing Crosscutting Concerns in Enterprise Software Development. Outra novidade é que a versão do Unity 2.0 também está a caminho.

No blog do Grigori Melnik tem um vídeo de quase 1 hora com um preview das novidades da Enterprise Library 5.0, vale a pena conferir.

Segundo Melnik a nova versão está levando em consideração os seguintes aspectos:

  • Melhor experiência para o usuário;
  • Fácil de usar;
  • Código com maior consistência;
  • Suporte melhorado para o estilo de desenvolvimento com DI (injeção de dependência);
  • Foco em testabilidade e manutenabilidade.

Particularmente, estou ansioso para ver o que a Enterprise Library 5.0 trará de útil para utilizarmos com o .NET Framework 4.0, já te temos inúmeras novidades a caminho. Vamos aguardar.

Enterprise Library



Décimo quarto encontro do grupo .Net Architects

06/09/2009 16:37

Ontem participei de outro encontro do .Net Architects onde o Luciano Condé (arquiteto de soluções da Microsoft) falou pra nós sobre o Application Architecture Guide, tivemos a oportunidade de discutir sobre arquitetura e experiências vividas pelos presentes na reunião. Gostei muito do encontro, a palestra do Condé foi excelente!

Ele já postou em seu blog o ppt utilizado na apresentação. No ano passado eu havia postado sobre o Application Architecture Guide aqui e aqui, pois como o guia faz parte do patterns & practices da Microsoft vale a pena a leitura (mesmo que só para criticar e dar feedback para a comunidade).

.Net Architects, Enterprise Library ,



Blocos da Enterprise Library que não vingaram…

16/08/2009 22:07

Alguém já usou?

Asynchronous Invocation Application Block


Se sim, por favor, comente aqui.

Enterprise Library



Comparativo entre frameworks de IoC

14/07/2009 23:40

Durante minha palestra sobre Injeção de Dependência com o Unity no DNAD 2009 o Juliano Oliveira comentou sobre um estudo comparativo realizado entre alguns frameworks de DI.

Ele enviou-me o link depois do evento, que compartilho a seguir:

http://www.codinginstinct.com/2008/04/ioc-container-benchmark-unity-windsor.html

Valeu Juliano!

Enterprise Library ,



EntLib (parte 7) – Configurando InterceptionExtension no Unity

17/05/2009 23:45

No meu último post da série sobre a Enterprise Library expliquei como podemos utilizar a extensão de biblioteca InterceptionExtension do Unity para aplicar interceptação na chamada da interface ILogger aplicando uma característica AOP no container. O exemplo levava em consideração que a definição fosse realizada em tempo de execução. Veremos agora como podemos modificar o exemplo anterior colocando todas as definições no arquivo de configuração da aplicação.

Dentro do arquivo de configuração, adicione dentro da sessão typeAliases os tipos descritos abaixo:

<typeAliases>
 
    ...

    <typeAlias 
        alias="GUIDAttribute" 
        type="Reverb.Handlers.GUIDAttribute, Reverb.InterceptionSample" />
    <typeAlias 
        alias="GUIDHandler" 
        type="Reverb.Handlers.GUIDHandler, Reverb.InterceptionSample" />
    <typeAlias 
        alias="interface" 
        type="Microsoft.Practices.Unity.InterceptionExtension.InterfaceInterceptor, Microsoft.Practices.Unity.Interception, Version=1.2.0.0" />
</typeAliases>

Em seguida adicione um novo container dentro da sessão Containers, conforme descrito abaixo:

<container name="InterfaceInterceptionContainer">
    <extensions>
        <add type="Microsoft.Practices.Unity.InterceptionExtension.Interception, Microsoft.Practices.Unity.Interception" />
    </extensions>
    <extensionConfig>
        <add name="interception"
            type="Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionConfigurationElement, Microsoft.Practices.Unity.Interception.Configuration">
            <interceptors>
                <interceptor type="interface">                                
                    <key type="ILogger"/>
                </interceptor>                            
            </interceptors>
        </add>
    </extensionConfig>
    <types>
        <type type="ILogger" mapTo="ConsoleLogger" />
    </types>
</container>

Por fim o construtor da classe Servico deve ser alterado da seguinte forma:

public Servico()
{
    container = new UnityContainer(); 
    section = (UnityConfigurationSection)ConfigurationManager.GetSection("unity");
    
    section.Containers["InterfaceInterceptionContainer"].Configure(container);            
    
    logger = container.Resolve<ILogger>();
}

Repare que modificamos o código anterior retirando toda a configuração para ser usada em tempo de execução e colocando em seu lugar a linha 6 que diz qual configuração utilizaremos para adicionarmos a extensão de interceptação do Unity. Assim, é possível conferir maior facilidade para alterações nas definições de interceptação, sem a necessidade de recompilar toda a aplicação (a menos, é claro, que você adicione um novo handler).

Até o próximo post da série.

Enterprise Library, Arquitetura , ,