Мне интересно, что там хорошего для AOP/сквозного в .Net, по линиям AspectJ. Я вижу, что у Microsoft есть Policy Injection Application Block; нибудь другой хороший материал там я должен взглянуть?Программирование АОП в .Net?
ответ
PostSharp, вероятно, самый популярный вариант, хотя я считаю, что Sprint.NET довольно распространен.
Вот ссылка на мои заметки о презентации AOP/PostSharp Майкла Холла, если кому-то интересно: http://www.truewill.net/iacodecamp2009/hall.htm – TrueWill
Я знаю PostSharp, который, кажется, делает много AOP-вещей, которые действительно хорошо используют атрибуты.
Я использую Microsoft Unity, но есть также StructureMap, Spring.NET, Castle Windsor и, самый популярный, PostSharp.
PostSharp - это, безусловно, AOP, но я бы назвал Unity и StructureMap IoC Container framework. Виндзор и весна делают IoC и многое другое, я думаю. – TrueWill
Оба Unity StructureMap имеют возможности для AOP (см. Ссылки, которые я привел для некоторых примеров). В зависимости от проблемы, которую нужно решить, они являются жизнеспособными решениями. – jason
Delphi Prism поддерживает компилятор АОП
Spring.Net имеет структуру АОП, которая может использоваться с или без рамок IoC в Spring. Если вы также ищете структуру IoC, Spring.Net делает убедительный случай и является бесплатным и открытым исходным кодом.
Еще один плюс для Spring.Net IMO заключается в том, что документация и поддержка форума действительно превосходны. Один отрицательный комментарий о Spring.Net, который я видел несколько раз, заключается в том, что конфигурация XML многословна и ее трудно читать, что верно. Это, по крайней мере, непротиворечиво, так что как только вы узнаете, как это работает для одного блока, вы можете легко применить его к другим блокам.
Давайте не забудем LinFU. Скотт Гензельман сделал отличный interview about it, включая множество основ АОП.
Interception расширение для Microsoft Unity дает вам AOP. Кроме того, см. Policy Injection как одно из привычных способов перехвата.
В этом наборе Hands-on Labs содержатся хорошие примеры и учебные пособия.
Посмотрите на этот список: http://en.wikipedia.org/wiki/Aspect-oriented_programming#cite_note-5 –