O que é um aspecto no AOP?
Um aspecto na programação orientada a aspectos pode ser definido como a modularização de uma preocupação. Na POO, você alcança modularidade aproveitando as vantagens das classes. No AOP, você consegue modularidade aproveitando os aspectos. Um aspecto pode ser o registro em log ou a autenticação, por exemplo. No AOP, o objetivo seria lidar com todo o registro ou autenticação do seu aplicativo em um só lugar.
A essência do AOP é encapsular funcionalidades comuns e, ao mesmo tempo, permitir que seu aplicativo aproveite essas funcionalidades conforme necessário. Essas funcionalidades comuns ou preocupações transversais incluem registro em log, autenticação, notificações, gerenciamento de transações, gerenciamento de exceções, etc. Estruturas AOP populares para .NET e C# incluem Castle Windsor, Microsoft Unity, Policy Injection Block e PostSharp.
Conceitos-chave de AOP
Ao trabalhar com AOP, você deve estar familiarizado com alguns dos conceitos-chave do paradigma. Isso inclui o seguinte: