Встроенный АОП в С# - это в пути?

В больших приложениях я действительно хочу, чтобы у меня были встроенные средства АОП. Поскольку на С# лучше всего работать, это фабрики и платформы RealProxys, PostSharp, ICorDebug, ICorProfiler или инъекции. Нет чистого встроенного способа AOP.

Есть ли какие-либо указания в любом месте (сообщение в блоге/внутреннее обсуждение), что указывает на то, что АОП находится на пути?

Ответ 1

Роменские ответы покрывают (почти:) отлично текущие решения. Что касается будущей поддержки, Андерс Хейлсберг ранее заявил, что они были в ожидании и смотрят режим об АОП.

Мы можем только надеяться, что с управляемой переработкой csc и "Компилятор как услуга" можно было бы подключить к компилятору и там добавить там аспекты.

Ответ 2

Я не слышал о "чистом встроенном способе создания АОП". Но, как вы сказали, уже существует множество "чистых способов создания АОП", используя зрелые и мощные структуры, такие как PostSharp или Замок DynamicProxy.

Используя BCL, один очевидный способ сделать AOP, с довольно сильными ограничениями, заключается в использовании прозрачных и реальных прокси из стека .NET Remoting.

Другим способом является использование System.Reflection.Emit для динамического создания прокси-серверов, например, hum, DynamicProxy из Castle.

Наконец, есть еще одно официальное решение Microsoft с флагом, которое поставляется с корпоративной библиотекой. Я говорю о блоке приложений для внедрения политики. Unity также предлагает некоторые возможности перехвата, которые используют PIAB.

Ответ 3

Spring.NET также предоставляет АОП. Он требует большой конфигурации, но после его настройки он работает хорошо.

Ответ 4

Майский выпуск Delphi Prism поддерживает AOP на уровне языка.

Подробнее об этом можно узнать здесь.

http://prismwiki.codegear.com/en/Cirrus

Существует также библиотека с открытым исходным кодом аспектов из этого местоположения

http://code.remobjects.com/p/prismaspects/