Artigo .net Magazine 59 - Aspect Oriented Programming
Artigo da Revista .NET Magazine - Edição 59.
Artigos .NET Artigo .net Magazine 59 - Aspect Oriented Programming
Esse artigo faz parte da revista .NET Magazine edição 59. Clique aqui para ler todos os artigos desta edição
th=579>
· O que é Programação Orientada a Aspectos;
· AOP em .Net;
· O que é o PostSharp e como utilizá-lo para aplicar AOP.
· Aplicar técnicas de Programação Orientada a Aspectos, diminuindo assim o acoplamento e facilitando o reuso de código através de aspectos.
· A maior parte das aplicações possuem operações de Log, tratamento de exceções, entre outras que não dizem respeito diretamente ao negócio, e que são utilizadas em toda a aplicação. Esse tipo de operação se torna mais fácil de realizar e manter com o uso da AOP.
AOP ou Programação Orientada a Aspectos é uma técnica de programação utilizada para execução paralela de código como, por exemplo, manipular exceções sem a necessidade de blocos "try{...}catch{...}", efetuar log de execução da aplicação e até mesmo debug com acesso a todas as informações do trecho de código que está sendo executado e inspecionado.
Os aspectos, parte central da AOP, caracterizam os chamados "pointcuts", ou pontos de corte, que serão feitos na aplicação de forma a possibilitar a execução "paralela" de código sem que tenhamos que alterar nossos métodos ou as funções que os invocam.
Para abordarmos AOP na plataforma .Net, iremos utilizar um framework chamado PostSharp, que nos dará todo o suporte necessário para criação e aplicação de aspectos em uma aplicação exemplo. Esta aplicação cobrirá as mais importantes características desta fantástica técnica de programação.
Ao desenvolver um software sempre nos preocupamos em mantê-lo bem desacoplado a fim de podermos aumentar o reuso das partes de nossa aplicação. Mas sabemos que em grandes aplicações essa é muitas vezes uma tarefa bastante árdua devido à forte dependência de classes de log, tratamento de exceções, etc. Neste artigo conheceremos um pouco sobre Orientação a Aspectos, as opções existentes para aplicá-la ao .Net e focaremos no PostSharp, uma framework que possibilita a aplicação dos conceitos de AOP (Aspect Oriented Programming) em nossos projetos.
O que é Programação Orientada a Aspectos?
A Programação Orientada a Aspectos começou a ser difundida em 2001 quando um grupo de desenvolvedores da PARC, na época uma subdivisão da Xerox, apresentaram o AspectJ, uma extensão para Java que permitia o uso de aspectos.
Aspectos podem ser definidos como comportamentos comuns a várias partes da sua aplicação. O termo mais utilizado em AOP é o de pointcuts ou "pontos de corte" da aplicação, este termo diz respeito aos pontos da aplicação que receberão trechos de código iguais como, por exemplo, um trecho que efetue o log de uma operação. Deste modo temos que a programação orientada a aspectos é a técnica de identificar e tratar de forma desacoplada ações comuns a vários pontos da nossa aplicação.
AOP para .Net
Hoje existem várias implementações de AOP para .Net que vão desde frameworks como o PostSharp, Rapier-LOOM, Gripper-LOOM, EOS, SetPoint entre outros, até compiladores específicos para prover uma sintaxe mais parecida com o AspectJ, como o NKalore que é baseado no compilador de C# do Mono.
Neste artigo abordaremos a AOP utilizando o PostSharp, uma framework de uso simples e que provê as principais funcionalidade da orientação a aspectos para aplicações .Net.
O PostSharp trabalha alterando o assembly que é gerado, resultando em código intermediário (IL – intermediate language) diferente do que a que foi escrita no código, em um processo que chama-se weaving. Não se preocupe com relação à isso, o código introduzido no assembly pelo PostSharp é bastante otimizado. Você pode ver o weaving acontecendo na janela de Output do Visual Studio, e o seu resultado pode ser conferido com um descompilador, como o .Net Reflector.
Preparação do ambiente para o PostSharp
Para iniciarmos, devemos baixar e instalar o PostSharp que está disponível no site do projeto (http://www.postsharp.org). A versão disponível até o momento da escrita deste artigo é a 1.0 RTM (final). A instalação é bastante simples, do tipo next-next-finish, e não exige nenhuma configuração avançada.
Depois de termos instalado o PostSharp, vamos criar um novo projeto do tipo Windows Forms Application com C#, seu nome não importa (esto usando AOP.Net), e adicionar ao projeto a referência (Figura 1) para duas bibliotecas do PostSharp: PostSharp.Public e PostSharp.Laos (Figura 2). Atenção: Se você baixou a versão não instalável, ou seja, somente binários, você precisará incluir a referência através da aba Browse da janela de adição de referências, visto que através da versão instalável as dlls são registradas no GAC e nos pontos do registro necessários à referência automaticamente, e assim disponibilizadas na aba .Net da janela de adição de referências.
Nota: Estaremos utilizando um projeto Windows Forms, mas nada impede que o desenvolvedor utilize um projeto de outro tipo, como ASP.Net Web Application, para seguir este artigo.