Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visual Studio 2010

1,091 views

Published on

Published in: Technology
  • These are one of the best companies for review articles. High quality with cheap rates. ⇒⇒⇒WRITE-MY-PAPER.net ⇐⇐⇐ I highly recommend it :)
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Разработка модуля для отладки приложений на языке ActionScript 3 в среде Visual Studio 2010

  1. 1. OOO «Ричмедиа» Шайхутдинов Ринат Гаптрафикович Студент группы ПС-51 Руководитель: Малов Алексей Николаевич ст. преподаватель кафедры ИиСП
  2. 2. CodeDrive – ActionScript 3 IDE ООО «Ричмедиа» , iSpring Solutions, Inc. 2 Редактор Кода Управление проектами Управление ресурсами Отладчик Система сборки …
  3. 3. Постановка задачи Разработать модуль предоставляющий асинхронное API для отладки приложений на языке ActionScript 3 и интегрировать данный модуль с Microsoft Visual Studio 2010 в составе продукта Code Drive. ООО «Ричмедиа» , iSpring Solutions, Inc. 3 Основные требования к системе: • Тестируемость • Гибкость • Надежность
  4. 4. Инструменты разработки  .NET Framework 4.0  C# 4.0  LINQ  Code Contracts  Task Parallel Library (TPL)  Асинхронность  Reactive Framework (Rx)  Интеграция в Visual Studio 2010  Visual Studio 2010 SDK  COM Interop  Тестирование  Nunit  Moq  ActionScript 3 ООО «Ричмедиа» , iSpring Solutions, Inc. 4
  5. 5. Одна из проблем синхронных вычислений You could get stuck C# 4.0 covariance (В неблокирующем ожидании) работает
  6. 6. Организация асинхронных вычислений (Reactive Framework)  Менталитет Rx - Push-коллекции  Композиционный стиль + LINQ  Помогает в разработке асинхронных программ  Приложений становится “Реактивным”, само отдает данные, но нужно подписаться на их получение
  7. 7. ActionScript 3 - объектно-ориентированный язык программирования, один из диалектов ECMAScript ООО «Ричмедиа» , iSpring Solutions, Inc. 7 Компилятор ActionScript 3 Flash Player Виртуальная машина ActionScript 3 Flash- приложение Интерактивность Обработка данных … Байт-код Интерактивные мультимедиа приложения Игры …
  8. 8. Основные функции отладчика  Управление потоком выполнения  Управление точками останова  Просмотр и навигация по стеку вызовов  Просмотр / изменение данных  Вычисление выражений  Обработка исключений  Вывод отладочных сообщений ООО «Ричмедиа» , iSpring Solutions, Inc. 8
  9. 9. Debug Flash Player Debug Flash Player Список переменных Вызов функций Вычисление выражений Установка/ Удаление точек останова Конструирование объектов Получение свойств Стек вызовов Управление потоком выполнения
  10. 10. Взаимодействие с Debug Flash Player Очередь задач Поток программы Debug Flash Player Задача Задача Время ожидания истекло Сообщить о неудаче Сокет-соединение. Обмен сообщениями.  Работа в режиме запрос ответ  Недетерминированное время выполнения операций  Отсутствует кэширование  Возможен вариант удаленной отладки  Специфика протокола взаимодействия Debugger API
  11. 11. Отладчик приложений на языке ActionScript 3 ООО «Ричмедиа» , iSpring Solutions, Inc. 11 Отладчик ActionScript 3 Интерпретатор выражений Debug Flash Player Flash- приложение Visual Studio Отладчик ActionScript 3 API Интерпретатора API Отладчика Сокет-соединение. Debug-Flash Player API Visual Studio API Отладчика Требуется интерпретация выражений: watch window, immediate window, conditional breakpoints
  12. 12. Примеры задач с вычислением выражений ООО «Ричмедиа» , iSpring Solutions, Inc. 12 package { /** * ... * @author */ public class Airplanes { private var airplanes:Array = newArray(); public function Airplanes() { } public function add(airplane:IAirplane) { airplanes.push(airplane); } public function remove(airplane:IAirplane) { airplanes.push(airplane); } } } Точка останова Посмотреть значение: this.airplanes[0].toString() Остановиться если: airplanes.length == 4
  13. 13. Интерпретатор выражений ActionScript 3 Debug Flash Player ActionScript 3 Debugger Interpreter Flash- приложение this.airplanes[0].toString() “[Airplane]” Вычисление выражений по спецификации ECMA-262 Таблица символов + вызов функций
  14. 14. Интеграция отладчика с Visual Studio 2010 ООО «Ричмедиа» , iSpring Solutions, Inc. 14 VS Debug Package Session Manager Process Debug Manager ActionScript 3 Debug Engine C# Debug Engine ActionScript 3 Expression Evaluator Expression Evaluator Symbol Provider Debug Flash Player Symbol Provider Модуль расширения Управляет модулями отладки Управляет списком отлаживаемых программ Предоставляет возможности отладки Вычислитель выражений Для отладки некоторых программ требуется таблица символов Program
  15. 15. Заключение Реализован модуль для отладки приложений на ActionScript 3 в среде Visual Studio 2010 и произведена его интеграция с продуктом CodeDrive. Перспективы развития:  Автодополнение в окнах отладчика(Intellisense)  Одновременная отладка нескольких приложений (обход ограничения Debug Flash Player)  Отладка динамических компонентов (Dynamic Shared Library)  Полнофункциональный интерпретатор (ECMA-262 + ECMA-357)  Дизассемблер ООО «Ричмедиа» , iSpring Solutions, Inc. 15
  16. 16. Спасибо за внимание ООО «Ричмедиа» , iSpring Solutions, Inc. 16
  17. 17. LINQ
  18. 18. Точки останова ООО «Ричмедиа» , iSpring Solutions, Inc. 18
  19. 19. Задание условий остановки ООО «Ричмедиа» , iSpring Solutions, Inc. 19
  20. 20. Счетчик срабатыний ООО «Ричмедиа» , iSpring Solutions, Inc. 20
  21. 21. Окно управления точками останова ООО «Ричмедиа» , iSpring Solutions, Inc. 21
  22. 22. Окно просмотра локальных переменных (Locals) ООО «Ричмедиа» , iSpring Solutions, Inc. 22
  23. 23. Окно слежения за переменными (Watch) ООО «Ричмедиа» , iSpring Solutions, Inc. 23
  24. 24. Окно просмотра стека вызовов (Call Stack) ООО «Ричмедиа» , iSpring Solutions, Inc. 24
  25. 25. Immediate window ООО «Ричмедиа» , iSpring Solutions, Inc. 25
  26. 26. Обработка исключений ООО «Ричмедиа» , iSpring Solutions, Inc. 26
  27. 27. Окно просмотра отладочных сообщений ООО «Ричмедиа» , iSpring Solutions, Inc. 27
  28. 28. COM Interop  COM Interop ("Взаимодействие с COM") - технология, включённая в .NET CLR, позволяющий объектам COM взаимодействовать с объектами .NET, и наоборот.  Задачей COM Interop является обеспечение доступа к существующим компонентам COM без необходимости модификации оригинальных компонентов. Даная технология пытается сделать типы .NET эквивалентными типам COM. Кроме того, COM Interop позволяет разработчикам COM получить доступ к управляемым объектам так же просто, как и доступ к другим объектам COM. ООО «Ричмедиа» , iSpring Solutions, Inc. 28
  29. 29. Code Contracts Essential  Контракты для методов  Contract.Requires  Contract.Ensure  Инварианты для объектов  Contract.Invariant  Контракты для интерфейсов  Утилиты  Проверки времени выполнения  Статические проверки  Генерация unit тестов – Pex  Генерация документации  Msbuild Integration  Visual Studio Addin ООО «Ричмедиа» , iSpring Solutions, Inc. 29
  30. 30. Пример ООО «Ричмедиа» , iSpring Solutions, Inc. 30 public WebService(IWarehouse store) { } this.store = store; Contract.Requires(store != null); Contract.Ensures(this.store != null);
  31. 31. Reactive Framework (Rx) Essential  C#  Java  JavaScript  ActionScript 3 ООО «Ричмедиа» , iSpring Solutions, Inc. 31
  32. 32. Essential Interfaces Summary – push versus pull Environment MoveNext Got next? Application OnNext Have next! IEnumerable<T> IEnumerator<T> IObservable<T> IObserver<T> Interactive Reactive
  33. 33. IEnumerable<T> E.g. LINQ toObjects IObservable<T> E.g. LINQ to Events IQueryable<T> E.g. LINQ to SQL Фиксированный (MSIL) Транслируемый (Деревьявыражений) ToQueryable ToObservable ToEnumerable AsQueryable AsEnumerable AsQbservable AsObservable Pull (интерактивный) Push (реактивный) LINQ to *.* Что? Как? Пулы потоков Циклы сообщенийПотоки Распределенные вычисления Двойственность Homo-iconic IQbservable<T> E.g. LINQ to PowerShell ToQbservable
  34. 34. Task Parallel library Essential  Предподчитетельный способ создания многопоточного и параллельного кода  Набор API интерфейсов  Повышает прозиводительность труда разработчиков  Упрощает процесс добавления параллелизма  Увеличивает степень параллелизма динамечески ООО «Ричмедиа» , iSpring Solutions, Inc. 34
  35. 35. Visual Studio 2010 Tools / Programming Models / Runtimes Parallel Pattern Library Resource Manager Task Scheduler Task Parallel Library PLINQ Managed Library Native LibraryKey: Threads Operating System Concurrency Runtime Programming Models Agents Library ThreadPool Task Scheduler Resource Manager DataStructures DataStructures Integrated Tooling Tools Parallel Debugger Toolwindow s Profiler Concurrency Analysis Programming Models Concurrency Runtime
  36. 36. C# 5.0  C# 1.0 Managed code  C# 2.0 Iterators / Generics / Anonymous  C# 3.0 LINQ / Lambda  C# 4.0 Dynamic / PLINQ  C# 5.0 TAP (Task based asynchronous pattern)

×