Аспектно-ориентированный подход на службе веб-приложений


The Presentation inside:

Slide 0

Аспектно-ориентированный подход на службе веб-приложений Цытович Павел Леонидович Fuse8, Южно-Уральский государственный университет http://pavel-tsytovich.blogspot.com 3-я конференция .NET разработчиков 25 сентября 2011


Slide 1

План Почему вообще появилась эта тема Паттерн «Стратегия» Стратегия привела к аспектам Как реализованы наши аспекты


Slide 2

Почему вообще появилась эта тема View Model Controller DB Множество Вариантов


Slide 3

Паттерн стратегия 4


Slide 4

От стратегии к аспектам 5 Формирование модели (MVC) Рассылка писем Чтение файлов конфигурации мониторинг транзакции Управление Windows Workflow Сквозная функциональность!


Slide 5

Аспект 6 аспект — это повторно используемый компонент, который инкапсулирует поведение, необходимое множеству классов в проекте


Slide 6

Сравнение АОП и DI АОП & DI Оба добиваются слабой связанности в архитектуре Оба добиваются лучшего разделения функционала Оба разгружают часть проблем с основного кода 7 http://habrahabr.ru/blogs/net/123186/


Slide 7

Сравнение АОП и DI АОП vs DI DI хорош, когда вы имеете зависимость от компонент, причем вам не важно как они реализованы АОП хорош, когда вам необходимо применить какое-то поведение к большому количеству элементов кода. Причем, целевой код не обязательно зависит от этого поведения 8 http://habrahabr.ru/blogs/net/123186/


Slide 8

Наш аспект-фреймворк для ASP.NET MVC Основан на ActionFilter атрибутах ASP.NET MVC Требует реализации интерфейсов IAspectPredicate – условия при котором выполняется аспект IAspectAction – код аспекта, запускаемый при выполнении условия Привязывается к Action-методу с помощью атрибута Aspect Требует, чтобы контроллер наследовался от класса AspectController


Slide 9

[Aspect] 10 Условие выполнения аспекта Аспект Время выполнения (before,calltime,after)


Slide 10

Предикат 11 Определяет условие выполнение аспекта


Slide 11

Аспект 12 Этот метод содержащий код аспекта


Slide 12

Контроллер с поддержкой аспектов 13 Словарь для передачи данных между аспектами и между аспектами и контроллером Метод, запускающий выполнение аспектов calltime Метод-ловушка исключений в аспектах


Slide 13

Демонстрация


Slide 14

Дальнейшее направление работы Поддержка транзакций (возможность отмены действия аспектов) Асинхронные аспекты


Slide 15

Спасибо за внимание Цытович Павел Леонидович Fuse8, Южно-Уральский государственный университет [email protected] http://twitter.com/Dr_P_Watson http://pavel-tsytovich.blogspot.com


×

HTML:





Ссылка: