🗊Презентация Аспектно - ориентированное программирование. Проектирование – определение зависимостей

Нажмите для полного просмотра!
Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №1Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №2Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №3Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №4Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №5Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №6Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №7Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №8Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №9Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №10Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №11Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №12Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №13Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №14Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №15Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №16Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №17Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №18Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №19Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №20Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №21Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №22Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №23Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №24Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №25Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №26

Содержание

Вы можете ознакомиться и скачать презентацию на тему Аспектно - ориентированное программирование. Проектирование – определение зависимостей. Доклад-сообщение содержит 26 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Аспектно - ориентированное программирование
Лекция №6                                  Антонов В.В.
Описание слайда:
Аспектно - ориентированное программирование Лекция №6 Антонов В.В.

Слайд 2





Проектирование – определение зависимостей
Описание слайда:
Проектирование – определение зависимостей

Слайд 3





Интерфейс Performer и его реализацию
Описание слайда:
Интерфейс Performer и его реализацию

Слайд 4





Класс с «советами»
Описание слайда:
Класс с «советами»

Слайд 5





Xml  настройки нашего приложения
Описание слайда:
Xml настройки нашего приложения

Слайд 6





параметре тега pointсut - expression. 
execution означает, что аспект выполняется только при запуске соответствующего метода doSmth. 
Звездочка перед путем означает, что возвращаемое значение может быть любое
две точки в скобочках, что аргументы могут быть любые. 
можно указывать путь к интерфейсу, а не класса. Тогда аспект будет работать для всех классов, которые имплементируют данный интерфейс
Описание слайда:
параметре тега pointсut - expression. execution означает, что аспект выполняется только при запуске соответствующего метода doSmth. Звездочка перед путем означает, что возвращаемое значение может быть любое две точки в скобочках, что аргументы могут быть любые. можно указывать путь к интерфейсу, а не класса. Тогда аспект будет работать для всех классов, которые имплементируют данный интерфейс

Слайд 7





Главный класс
Описание слайда:
Главный класс

Слайд 8





Добавим новые советы
Описание слайда:
Добавим новые советы

Слайд 9





Добавим новые бины
Описание слайда:
Добавим новые бины

Слайд 10


Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №10
Описание слайда:

Слайд 11





Фреймворк PostSharp
это реализация аспектно-ориентированного подхода для .NET. PostSharp в отличие от многих своих аналогов работает как пост-компилятор, то есть он вносит изменения в MSIL (Microsoft Intermediate Language).
PostSharp позволяет легко создавать атрибуты, которые меняют поведение методов, полей и типов. Для этого нужно унаследовать класс атрибута от одного из предоставляемых библиотекой базовых классов, реализовать его виртуальные методы и применить этот атрибут.
Описание слайда:
Фреймворк PostSharp это реализация аспектно-ориентированного подхода для .NET. PostSharp в отличие от многих своих аналогов работает как пост-компилятор, то есть он вносит изменения в MSIL (Microsoft Intermediate Language). PostSharp позволяет легко создавать атрибуты, которые меняют поведение методов, полей и типов. Для этого нужно унаследовать класс атрибута от одного из предоставляемых библиотекой базовых классов, реализовать его виртуальные методы и применить этот атрибут.

Слайд 12


Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №12
Описание слайда:

Слайд 13






Метод OnExit называют советом (advice), он всегда выполняется (даже если выпадет исключение, так как OnExit вызывается из блока finally) после тела метода, к которому применяется атрибут. Помимо него класс OnMethodBoundaryAspect предоставляет ещё три совета:
OnEntry — выполняется перед телом метода;
OnSuccess — выполняется после успешного выполнения тела метода;
OnException — выполнятся после тела метода в случае, если в методе выпало необработанное исключение.
Описание слайда:
Метод OnExit называют советом (advice), он всегда выполняется (даже если выпадет исключение, так как OnExit вызывается из блока finally) после тела метода, к которому применяется атрибут. Помимо него класс OnMethodBoundaryAspect предоставляет ещё три совета: OnEntry — выполняется перед телом метода; OnSuccess — выполняется после успешного выполнения тела метода; OnException — выполнятся после тела метода в случае, если в методе выпало необработанное исключение.

Слайд 14


Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №14
Описание слайда:

Слайд 15






В чём же преимущество использования АОП в данном примере? Представим, что у нас есть несколько классов, в каждом из которых много методов и нам необходимо реализовать трассировку. Если не использовать АОП, то придётся в теле каждого метода прописывать Trace.WriteLine… Используя же АОП мы выделяем эту сквозную функциональность в отдельную сущность (аспект) и применяем её к методам при помощи атрибута.

PostSharp есть и другие аспекты
OnMethodBoundaryAspect:
EventInterceptionAspect
LocationInterceptionAspect
OnExceptionAspect
…
Описание слайда:
В чём же преимущество использования АОП в данном примере? Представим, что у нас есть несколько классов, в каждом из которых много методов и нам необходимо реализовать трассировку. Если не использовать АОП, то придётся в теле каждого метода прописывать Trace.WriteLine… Используя же АОП мы выделяем эту сквозную функциональность в отдельную сущность (аспект) и применяем её к методам при помощи атрибута. PostSharp есть и другие аспекты OnMethodBoundaryAspect: EventInterceptionAspect LocationInterceptionAspect OnExceptionAspect …

Слайд 16


Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №16
Описание слайда:

Слайд 17





Краткий обзор Unity 2.0

Unity — это блок приложения, доступный как часть проекта Microsoft Enterprise Library, а также в отдельном виде. Microsoft Enterprise Library — это набор блоков приложения, которые снимают часть проблем, связанных с горизонтальным пересечением иерархии и характерных в разработке .NET-приложений (протоколирование, кеширование, шифрование, обработка исключений и др.).
Описание слайда:
Краткий обзор Unity 2.0 Unity — это блок приложения, доступный как часть проекта Microsoft Enterprise Library, а также в отдельном виде. Microsoft Enterprise Library — это набор блоков приложения, которые снимают часть проблем, связанных с горизонтальным пересечением иерархии и характерных в разработке .NET-приложений (протоколирование, кеширование, шифрование, обработка исключений и др.).

Слайд 18





Перехват в Unity 2.0
Основная концепция перехвата в Unity позволяет разработчикам настраивать цепочку вызовов, необходимых для запуска какого-либо метода некоего объекта. 
Иначе говоря, механизм перехвата Unity захватывает вызовы, выдаваемые для настройки объектов, и изменяет поведение целевых объектов, добавляя дополнительный код до, после и вокруг обычного кода методов. 
Перехват — фактически очень гибкий подход к добавлению нового поведения для объекта в период выполнения, не затрагивающий его исходный код и не влияющий на поведение классов в той же цепочке наследования. 
Перехват в Unity — способ реализации популярного проектировочного шаблона Decorator, разработанного для расширения функциональности объекта в период выполнения и в момент его использования. 
Декоратор (decorator) — это объект-контейнер, который принимает (и поддерживает ссылку на) экземпляр целевого объекта и дополняет его возможности.
Описание слайда:
Перехват в Unity 2.0 Основная концепция перехвата в Unity позволяет разработчикам настраивать цепочку вызовов, необходимых для запуска какого-либо метода некоего объекта. Иначе говоря, механизм перехвата Unity захватывает вызовы, выдаваемые для настройки объектов, и изменяет поведение целевых объектов, добавляя дополнительный код до, после и вокруг обычного кода методов. Перехват — фактически очень гибкий подход к добавлению нового поведения для объекта в период выполнения, не затрагивающий его исходный код и не влияющий на поведение классов в той же цепочке наследования. Перехват в Unity — способ реализации популярного проектировочного шаблона Decorator, разработанного для расширения функциональности объекта в период выполнения и в момент его использования. Декоратор (decorator) — это объект-контейнер, который принимает (и поддерживает ссылку на) экземпляр целевого объекта и дополняет его возможности.

Слайд 19





Перехват объекта в действии (в Unity 2.0)
Описание слайда:
Перехват объекта в действии (в Unity 2.0)

Слайд 20





Настройка перехвата
перехват реализуется простым добавлением нового расширения к контейнеру, чтобы описать, как будет разрешаться объект.
Описание слайда:
Настройка перехвата перехват реализуется простым добавлением нового расширения к контейнеру, чтобы описать, как будет разрешаться объект.

Слайд 21





добавить в конфигурационный файл
Цель этого сценарного кода — расширение схемы конфигурации новыми элементами и псевдонимами, специфичными для подсистемы перехвата
Описание слайда:
добавить в конфигурационный файл Цель этого сценарного кода — расширение схемы конфигурации новыми элементами и псевдонимами, специфичными для подсистемы перехвата

Слайд 22





Определение контейнера
Перехватчик интерфейса (interface interceptor) — это перехватчик экземпляра, ограниченный в своих действиях до прокси только одного интерфейса объекта. Такой перехватчик создает класс прокси с помощью генерации динамического кода. Элемент поведения interception в конфигурации указывает внешний код, который должен выполняться вокруг перехватываемого экземпляра объекта.
Описание слайда:
Определение контейнера Перехватчик интерфейса (interface interceptor) — это перехватчик экземпляра, ограниченный в своих действиях до прокси только одного интерфейса объекта. Такой перехватчик создает класс прокси с помощью генерации динамического кода. Элемент поведения interception в конфигурации указывает внешний код, который должен выполняться вокруг перехватываемого экземпляра объекта.

Слайд 23






Класс TraceBehavior нужно конфигурировать декларативно, чтобы контейнер мог разрешать его и любые его зависимости. Чтобы сообщить контейнеру о классе TraceBehavior и его конструкторе вы используете элемент <register>:
Описание слайда:
Класс TraceBehavior нужно конфигурировать декларативно, чтобы контейнер мог разрешать его и любые его зависимости. Чтобы сообщить контейнеру о классе TraceBehavior и его конструкторе вы используете элемент <register>:

Слайд 24


Аспектно - ориентированное программирование. Проектирование – определение зависимостей, слайд №24
Описание слайда:

Слайд 25






Класс поведения реализует IInterceptionBehavior, который в основном состоит из метода Invoke. Этот метод содержит всю логику, нужную для любого метода, который находится под контролем перехватчика. Если вы хотите сделать что-то до вызова целевого метода, то делаете это в начале метода. Когда вам требуется перейти к целевому объекту (или, точнее, к следующему поведению, зарегистрированному в конвейере), вы вызываете делегат getNext, предоставляемый инфраструктурой.
Описание слайда:
Класс поведения реализует IInterceptionBehavior, который в основном состоит из метода Invoke. Этот метод содержит всю логику, нужную для любого метода, который находится под контролем перехватчика. Если вы хотите сделать что-то до вызова целевого метода, то делаете это в начале метода. Когда вам требуется перейти к целевому объекту (или, точнее, к следующему поведению, зарегистрированному в конвейере), вы вызываете делегат getNext, предоставляемый инфраструктурой.

Слайд 26





Гибкость конфигурирования
Перехват и AOP в целом открывают целый ряд интересных возможностей. Например, перехват позволяет добавлять обязанности в индивидуальные объекты без модификации всего класса, благодаря чему решение получается гораздо более гибким, чем при использовании шаблона Decorator.
Описание слайда:
Гибкость конфигурирования Перехват и AOP в целом открывают целый ряд интересных возможностей. Например, перехват позволяет добавлять обязанности в индивидуальные объекты без модификации всего класса, благодаря чему решение получается гораздо более гибким, чем при использовании шаблона Decorator.



Похожие презентации
Mypresentation.ru
Загрузить презентацию