У меня есть приложение ASP.NET 3.5 SP1 Webforms. Я использую шаблон MVP (контрольный контроллер) с DI (autofac). Мои ведущие обращаются к контрактам репозитория, определенным в моем домене (DDD), которые реализованы в проекте инфраструктуры.
Методы репозитория, которые может вызвать вызов докладчиков, поэтому мне нужно регистрировать исключения, а затем устанавливать сообщение об ошибке в представлении.
В прошлом я бы добавил еще один параметр к конструкторам Presenter, сохранил ссылку в базовом презентаторе и назвал метод журнала в моих блоках Catch. Мне это не очень нравится, но он выполняет свою работу.
Я мог бы пойти по пути использования factory, чтобы получить класс журнала как описано здесь, но я хотел бы изучить AOP сначала, поскольку это кажется довольно интересным.
Я прочел чтение во время компиляции и времени выполнения AOP, и я хотел бы знать, что такое опыт людей с различными решениями, плюсами, минусами, советами и т.д.
Из копания, которое я сделал, похоже, что существует 4 основных фреймворка для АОП в .NET.
- Замок Виндзор - я остался в стороне от этого вообще, потому что он делает много вещей, которые мне действительно не нужны.
- Spring.net - похоже, что у него хороший послужной список, но вызывает страх благодаря его конфигурации xml (мне не нравятся нечеткие конфигурации).
- PostSharp - Приведенный атрибут (мне это нравится), но в какой-то момент имел некоторые номера номеров строк, не уверен, что они все еще существуют
- Единство - множество вещей, которые мне действительно не нужны.
Я вижу еще один вопрос, который содержит несколько хороших ответов, но с полутора лет назад. Существуют ли новые, "лучшие" рамки, которые были разработаны в то же время, или усовершенствования существующих решений, которые следует принимать во внимание?
Для справки я выбрал Autofac для DI, потому что его беглое, простое в использовании, не могло найти никаких негативных комментариев об этом, и оно просто работает.
Есть ли рекомендации, по которым я должен попытаться использовать структуру AOP? Спасибо, что прочитали все это и добавили какие-то мысли.