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

Содержание

Слайд 2

План

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

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

Слайд 3

Почему вообще появилась эта тема

View

Model

Controller

DB

Множество Вариантов

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

Слайд 4

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

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

Слайд 5

От стратегии к аспектам

Формирование модели (MVC)

Рассылка писем

Чтение файлов конфигурации

мониторинг

транзакции

Управление Windows Workflow

Сквозная функциональность!

От стратегии к аспектам Формирование модели (MVC) Рассылка писем Чтение файлов конфигурации

Слайд 6

Аспект

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

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

Слайд 7

Сравнение АОП и DI

АОП & DI
Оба добиваются слабой связанности в архитектуре
Оба

Сравнение АОП и DI АОП & DI Оба добиваются слабой связанности в
добиваются лучшего разделения функционала
Оба разгружают часть проблем с основного кода

http://habrahabr.ru/blogs/net/123186/

Слайд 8

Сравнение АОП и DI

АОП vs DI
DI хорош, когда вы имеете зависимость

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

http://habrahabr.ru/blogs/net/123186/

Слайд 9

Наш аспект-фреймворк для ASP.NET MVC

Основан на ActionFilter атрибутах ASP.NET MVC
Требует реализации интерфейсов
IAspectPredicate

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

Слайд 10

[Aspect]

Условие выполнения аспекта

Аспект

Время выполнения (before,calltime,after)

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

Слайд 11

Предикат

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

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

Слайд 12

Аспект

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

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

Слайд 13

Контроллер с поддержкой аспектов

Словарь для передачи данных между аспектами и между аспектами

Контроллер с поддержкой аспектов Словарь для передачи данных между аспектами и между
и контроллером

Метод, запускающий выполнение аспектов calltime

Метод-ловушка исключений в аспектах

Слайд 14

ДЕМОНСТРАЦИЯ

ДЕМОНСТРАЦИЯ

Слайд 15

Дальнейшее направление работы

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

Дальнейшее направление работы Поддержка транзакций (возможность отмены действия аспектов) Асинхронные аспекты
Имя файла: Аспектно-ориентированный-подход-на-службе-веб-приложений.pptx
Количество просмотров: 123
Количество скачиваний: 0