Аспектно-ориентированное программирование в C # [закрыто]
Вопрос
Есть ли какие-нибудь полезные ресурсы, чтобы обернуть голову вокруг Аспектно-ориентированного программирования?
PS: мне нужно понимать программирование AO, а не библиотеки или фреймворки, доступные для .NET или C # :)
Решение
Просто чтобы обдумать это: это способность перехватывать события, такие как: создание объектов, установка свойств и т. д., и прикрепление к ним общих функций, которые будут заполняться соответствующий контекст.
Поскольку в C # нет встроенного средства для этого, вам нужна среда, такая как PostSharp, для выполнения «переплетения байт-кода» (т. е. просто написания кода для фактических вызовов непосредственно для ваших классов) для его моделирования. р>
Другие советы
Аспектно-ориентированное программирование означает наличие мета-уровня, на котором вы можете определять функции ведения журналов или безопасности / контроля доступа для переплетения с вашим кодом вместо того, чтобы реализовывать эти функции в самом коде. Поэтому вместо того, чтобы быть одномерным, вы должны программировать двумерное.
Я знаю, что это может звучать очень экзотично, но это легко, когда вы это поняли.
AOP часто работает с прокси-классами, которые перехватывают вызовы и работают в фоновом режиме.
Какой своевременный вопрос?
Здесь - подкаст, который стоит прослушать.
Это даст вам хороший обзор того, что такое АОП? где это можно использовать?
Надеюсь, это поможет.
Ниже приведена хорошая ссылка, показывающая, как создать собственную структуру AOP. К сожалению, все ваши потребляющие классы должны наследоваться от MarshalByRefObject
(через ContextBoundObject
). Р>
проверьте это, он описывает, как реализовать AOP (журнал, время, трассировка, обработка исключений ...) с использованием postsharp