Санкт-Петербургский государственный университет
Опубликован: 01.07.2013 | Доступ: свободный | Студентов: 448 / 118 | Длительность: 16:00:00
Лекция 14:

Новая версия Windows Azure и аспектно-ориентированное программирование (АОП)

< Лекция 13 || Лекция 14: 1234 || Лекция 15 >

Использование компоновщика аспектов для подмены целевой сборки на сборку с внедренными аспектами перед публикацией в облаке

Новая версия системы Aspect.NET, совместимая с новейшей интегрированной средой MS Vusial Studio 2012, доступна в настоящее время в виде компоновщика аспектов (который реализован как консольное приложение) и набора скриптов для управления процессом сборки решений, таким образом, чтобы обеспечить подмену исходной бинарной сборки на еее новую версию с внедненными аспектами перед публикацией в облаке. В настоящее время версия Aspect.NET Framework для VS 2012 (т.е. графический пользовательский интерфейс) находится в процессе разработки.

Вызов компоновщика в консольном варианте имеет вид:

weaver -aspects MyAspect.dll -in HelloWorld.exe -out AspectHelloWorld.exe

Рассмотрим алгоритм разработки и бесшовной интеграции аспектов в MS VS 2012 с помощью Aspect.NET:

Вход: Проект с исходными текстами целевого приложения, к которому нужно применить аспекты.
  • Создаем отдельный проект для аспекта (типа Class Library) и объединяем его с целевым проектом в рамках общего решения (solution).
  • Чтобы обеспечить интеграцию аспекта с целевой сборкой, в свойствах его проекта на вкладке Build Events добавляем соответствующий скрипт
Выход: Решение (solution) с аспектным и не модифицированным целевым проектом. 
При компиляции аспектного проекта будет происходить внедрение аспектов, 
а при запуске в MS VS - запуск результирующей сборки. 
В свою очередь компиляция и запуск целевого проекта приведет к запуску исходного проекта,
 без внедренных аспектов.

Скрипт для вкладки Build Events:

:: Укажем папку со сборкой целевого проекта
set TargetAssemblyDir=C:\HelloWorld\HelloWorld\bin\Debug\
:: Название его сборки
set TargetAssembly=HelloWorld
:: Ее расширение
set TargetAssemblyExt=.exe
:: Для каждого нового аспекта или целевого проекта необходимо менять лишь 
:: вышеуказанные переменные
  
:: Зададим путь к директории Aspect.NET
set AspectDotNetDir=C:\AspectDotNet
set TargetAssemblyPath=%TargetAssemblyDir%%TargetAssembly%%TargetAssemblyExt%
set TargetAssemblyName=%TargetAssembly%%TargetAssemblyExt% 
cd %AspectDotNetDir%
weaver -aspects $(TargetPath) -in %TargetAssemblyPath% -out  %TargetAssemblyName%
:: Подмена сборки в целевом проекте результирующей
move /Y %TargetAssemblyName% %TargetAssemblyPath%

Резюме

Аспектно-ориентированное программирование и система Aspect.NET успешно применимы для платформы Windows Azure, что показано на содержательных примерах использования АОП для определения и внедрения в облачные приложения в виде аспектов протоколирующих действий, реализованных с помощью библиотеки Microsoft Enterprise Library Integration Pacj for Windows Azure. Применение Aspect.NET позволяет гибко управлять функциональностью ASP.NET – страниц, добавляя вызовы необходимых действий (кода) при выполнении типовых действий над страницами.

В настоящее время в группе проекта Aspect.NET под руководством автора курса разработана библиотека аспектов AspectCloud для облачных вычислений в системе Azure.

Ключевые термины

Аспектно-ориентированное программирование (АОП) – новый перспективный подход к разработке и модернизации программ, предназначенный для поддержки сквозной функциональности (cross-cutting concerns) в программах

Aspect.NET – инструмент АОП для платформы .NET, разработанный группой под руководством автора курса.

Microsoft Enterprise Library Integration Pack for Windows Azure - решение компании Microsoft для выделения "сквозной функциональности" при разработке облачных приложений ( требует для этого модификации их исходного кода).

Краткие итоги

Аспектно-ориентированное программирование и система Aspect.NET успешно применимы для платформы Windows Azure, что показано на содержательных примерах использования АОП для определения и внедрения в облачные приложения в виде аспектов протоколирующих действий, реализованных с помощью библиотеки Microsoft Enterprise Library Integration Pacj for Windows Azure. Применение Aspect.NET позволяет гибко управлять функциональностью ASP.NET – страниц, добавляя вызовы необходимых действий (кода) при выполнении типовых действий над страницами.

Набор для практики

Вопросы

  1. Что такое АОП?
  2. Что такое Aspect.NET?
  3. Каковы методы применения АОП и Aspect.NET для облачных вычислений?
  4. Что такое Microsoft Enterprise Library Integration Pack for Windows Azure?

Упражнения

  1. Разработайте и опубликуйте с использованием Visual Studio свое облачное Web-приложение.Затем, применив систему Aspect.NET (http://www.aspectdotnet.org), разработайте аспект, модифицирующий поведение приложений при загрузке страницы в браузер и других типовых действиях. Опубликуйте в облаке модифицированное приложение и проверьте его в работе
  2. Изучите библиотеку Microsoft Enterprise Library Integration Pack for Windows Azure и попробуйте применить новую версию Aspect.NET для пропуска примеров, описанных в лекции.

Темы для курсовых работ, рефератов, эссе

  1. Применение АОП для облачных вычислений (реферат).
  2. Библиотека Microsoft Enterprise Library Integration Pack for Windows Azure (реферат).

Литература

  1. Safonov V. Using aspect-oriented programming for trustworthy software development. John Wiley & Sons, 2008, 352 pp.
  2. Сафонов В.О. Аспектно-ориентированное программирование. Учебное пособие. – СПб.: ИЗД-ВО СПбГУ, 2011, 104 с.
  3. Сайт проекта Enterprise Library 5.0 Integration Pack for Windows Azure // Режим доступа [проверено 05.15.2013]: http://entlib.codeplex.com/wikipage?title=EntLib5Azure
  4. Григорьев Д.А., Григорьева А.В., Сафонов В.О. Бесшовная интеграция аспектов в облачные приложения на примере библиотеки Enterprise Library Integration Pack for Windows Azure и системы Aspect.NET. - Компьютерные инструменты в образовании, 2012, № 4, 3-15.
< Лекция 13 || Лекция 14: 1234 || Лекция 15 >