Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Safonov / AMPN_course_7.pptx
Скачиваний:
102
Добавлен:
16.04.2015
Размер:
425.38 Кб
Скачать

Диаграмма классов

примера

Фильтрация точек внедрения

Декомпилированные результаты внедрения

BankAccount account1 = new BankAccount();

Aspect.InternalSetArgsTypes("float");

Aspect.InternalSetMemberName("BankManagement.BankAccount.d

eposit");

Aspect.InternalSetTargetObject(account1);

UsageLicensingAspect.DepositWrapper(20f);\\instead of \\account1.deposit(20)

Aspect.InternalSetArgsTypes("float");

Aspect.InternalSetMemberName("BankManagement.BankAccount.wi

thdraw“)

Aspect.InternalSetTargetObject(account1);

UsageLicensingAspect.WithdrawWrapper(20f); \\instead of

\\account1. withdraw(20)

Console.WriteLine("Final balance is {0}", account1.Balance);

(C) Сафонов В.О. 2012

Microsoft Phoenix (http://connect.microsoft.com /phoenix)

и его использование в Aspect.NET

Возможностей рефлексии недостаточно для

инструментовки MSIL-сборок (даже в .NET 2.0)

Microsoft Phoenix – окружение для построения

компиляторов и шарокого диапазона инструментов для анализа, оптимизации и

тестирования программ

Phoenix обеспечивает высокоуровневыую

инструментовку MSIL-кода

Инструменты, использующие Phoenix, могут быть реализованы в виде фаз компиляцииPhoenix позволяет работать с отладочной информацией более надежными средствами, чем использование неуправляемого COM API - DIA

Phoenix используется в Aspect.NET для

внедрения аспектов и модификации целевых

сборок

Мы сотрудничаем с разработчиками Phoenix из Microsoft Research

(C) Сафонов В.О. 2012

Проблемы АОП и их решения в Aspect.NET

Ясность, наглядность, простотаПоведение целевых приложений после внедрения должно

быть предсказуемым (Aspect.NET: визуализация точек

внедрения на уровне исходного кода)

Процесс внедрения должен быть простым для понимания

(Aspect.NET: Простой метаязык)

Интеграция с существующими инструментами и процессами разработки программ (Aspect.NET: add-in к

Visual Studio)

Возможность отладки целевых приложенийОтладка в терминах исходного кода весьма важна

(Aspect.NET: мы планируем эту возможность)

Тестирование

АОП может привести к ошибкам и отказам (Aspect.NET:

возможно автоматизированное тестирование модулей в Visual Studio)

Эволюция

Производительность (Aspect.NET: Наша технология

статического внедрения практически не требует накладных расходов времени выполнения)

(C) Сафонов В.О. 2012

Литература по АОП

1.http://aosd.net – основной Web-сайт АОП 2.http://aspectj.org – Web-сайт AspectJ 3.Safonov V. O. Using aspect-oriented programming for trustworthy software development . – Wiley, 2008. 4.http://dotnet.sys-con.com/author/1330safono

v.htm - V.O

. Safonov’s “.NET Developer’s Journal” blog Web-страницы проекта Aspect.NET:

5. http://www.facultyresourcecenter.com/curriculum/ pfv.aspx?ID=6801

6.http://www(C) Сафонов.aspectdotnetВ.О. 2012 .org

Вопросы и домашнее задание к лекции 7

1.Сравните в теории и на практике подходы к АОП, реализованные в AspectJ и в Aspect.NET

2.Скачайте и инсталлируйте Aspect.NET, изучите и пропустите прилагаемые к реализации примеры (samples)

3.Разработайте в системе Aspect.NET аспект, выполняющий вставки проверок безопасности (security checks) в Ваше .NET-приложение.

4.В чем, по-Вашему, перспективность и недостатки АОП?

(C)Сафонов В.О. 2012

Соседние файлы в папке Safonov