Подтвердить что ты не робот

Какие библиотеки AOT-ориентированного программирования (AOP) для .NET все еще активно развиваются?

Я пытаюсь найти достаточно зрелую/стабильную и свободно доступную (желательно с открытым исходным кодом) библиотеку для выполнения АОП в .NET. Я искал немного и нашел продукты ниже; однако большинство из них кажутся мертвыми:

  • PostSharp — это решение АОП, обычно рекомендуемое для .NET, однако это коммерческий продукт, и поэтому применяются некоторые ограничения использования. (Тем не менее, он, похоже, является бесплатным для личных или открытых проектов.)

  • Spring.NET — не исключительно об АОП, поэтому он, вероятно, слишком силен, если только хочет сделать АОП. (?)

  • Блок приложений для инъекций — от Microsoft, я ожидаю, что это будет, по крайней мере, поддерживаться.

  • Castle Windsor вместе с DynamicProxy — не в первую очередь библиотеку AOP, но, по-видимому, она может быть использована для этой цели.

  • Аспект # — это кажется мне совершенно мертвым.

  • Aspect.NET — это также кажется мне совершенно мертвым.

  • NAop — по-видимому, больше не поддерживается.

  • AOP.NET — это должно было быть преемником NAop, а также похоже, что он умер некоторое время назад.

Возможно, еще больше. Из приведенного выше списка я понимаю, что единственными реальными вариантами для AOP на .NET являются PostSharp (хотя это коммерческий продукт), Spring.NET, Microsoft Application Application Block или Windsor.

Я забыл какой-нибудь важный вариант?


См. также вопрос Предложения для аспектно-ориентированной библиотеки с открытым исходным кодом для С# здесь, в StackOverflow. Я опубликовал новый вопрос, потому что меня особенно интересует состояние разработки/поддержки различных решений AOP для .NET.

4b9b3361

Ответ 1

Вам не нужно, чтобы Windsor использовал DynamicProxy. Windsor использует DynamicProxy для своих целей, как и NHibernate, RhinoMocks, Moq или другие библиотеки/приложения/фреймворки. Если вам нужен только AOP времени выполнения, без контейнера IoC, используйте только Caste DynamicProxy.

Он активно развивается, последний релиз был выпущен 2 недели назад, в этом месяце ожидается финальный выпуск (v2.5).

Примечание. В предыдущих версиях (до версии 2.2) DynamicProxy использовался для самостоятельной сборки Castle.DynamicProxy.dll. Позднее он был перемещен в Castle.Core.dll, и теперь для его использования не требуется никаких других сборок. Источник

Ответ 2

Был также Aurum (доступен www.machinaaurum.com.br), который был построен на Unity. Источник доступен на Codeplex.