Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемБогдан Шкловский
1 IronRuby: внутренности и примеры использования Рахматиллаев Тимур IndyCode 3-я конференция.NET разработчиков 25 сентября 2011
2 Ruby – он такой… Динамический Рефлективный Интерпретируемый Объектно-ориентированный С динамической и утиной типизациями Развитые механизмы метапрограммирования
3 Железные рубины из копей Microsoft IronRuby – реализация языка программирования Ruby на платформе Microsoft.NET, основанная на использовании библиотеки DLR.
4 Нужно больше динамики! Dynamic Language Runtime (DLR) – библиотека, предоставляющая сервисы для реализации спецификации любого языка программирования. Основана на подходе представления функциональности конструкций языка с помощью узлов абстрактного синтаксического дерева.
5 DLR и IronRuby IronRuby Программа на Ruby Синтаксический разбор текста DLR ТекстAST FCL/BCL Binder CIL-код ВМ CLR Выполнение CIL-кода
6 Возможности DLR
7 Взгляд на Ruby со стороны
8 Вызов кода на IronRuby из.NET (C#) Создание экземпляра среды исполнения IronRuby Загрузка файлов с кодом (и их выполнение) или выполнение строк кода Операции вызова методов, получения объектов, работы с переменными (локальными и глобальными)
9 Можно все!
10 А если наоборот? Загружаем необходимую сборку (сборки) Создаем экземпляры CLR-классов и вызываем их методы ????? PROFIT Можно использовать методы расширения и грабить корованы
11 Когда использовать IronRuby
12 Рост сложности программной системы На начальном этапе разработки всю систему легко удержать в голове Объем кода, реализующего логику бизнес- процессов, растет Выделение новых слоев абстракции не дает четкого видения логики из-за недостаточности выразительных средств
13 Головокружительная абстракция
14 Domain Specific Language Позволяет задавать правила поведения объектов в соответствии с бизнес-логикой в декларативном представлении Качественно новый уровень абстракции Сложность/простота определения решения задачи, стоящей перед DSL, полностью зависит от выразительности его синтаксических средств
15 IronRuby как SDK для создания DSL Процесс написания DSL (с нуля): Определение абстрактного синтаксиса Определение конкретного синтаксиса Определение правил горизонтальной и вертикальной трансформации Написание синтаксического анализатора и транслятора Возможно, написание интерпретатора
16 IronRuby как SDK для создания DSL Написание DSL с помощью IronRuby Определение конкретного синтаксиса
17 Описываем ферму ферма { морковка 2.шт баклажан 2.кг свинья уровень: 80 }
18 Итоги IronRuby позволяет быстро создавать языки предметной области Предоставляет механизмы синтаксического разбора исходного кода Осуществляет вертикальную трансформацию Имеет поддержку во многих редакторах Используя метапрограммирование можно добиться высокой гибкости и разнообразия языковых конструкций DSL
19 Это работает!
20 Проект Gestalt Silverlight-приложение, использующее DLR для предоставления возможности использовать IronRuby как замену JavaScript в качестве языка для работы с DOM-деревом
21 Ruby… в теге script?! def onclick(s,e) window.alert "Hello, World!" end document.sayhello.attach_event('onclick', System::EventHandler [ System::Windows::Browser::HtmlEventArgs ].new(method(:onclick)) )
22 Немного алхимии Используем Gestalt
23 Ссылки Сайт проекта IronRuby Сайт проекта Gestalt Раздел IronRuby на Ruby Forum
24 Спасибо за внимание Тимур Рахматиллаев IndyCode twitter.com/eskat0n
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.