SlideShare a Scribd company logo
1 of 17
D           ynamic   L   anguage        R        untime
                          Скриптовые языки на платформе DLR,
                              способы автоматизации рутинной
                                 работы с их помощью, а также
                          интегрирование в конечное приложение



Косухин Константин
Зачем?
•   Создание динамических языков на платформе .NET
•   Возможность динамического программирования в C# и VB.NET
•   Платформа Java давно это имеет
Dynamic Typing
•   Позднее связывание
•   Утиная типизация
•   Схож с технологией Reflection
    (+IDynamicMetaObjectProvider)
Dynamic Invocation
 CallSite   Binder   Expression
Expression Trees (С#)
1. Expression<Func<int, string>> f = i => i.ToString();
• Выражение может быть записано только в одну строку
2. dynamic
• Код, записанный с использованием переменной такого типа, собирается в
    Expression с runtime байндингом



dynamic d = GetFoobar();   Expression                        Привязка к .NET
   d.CallMethod(42);                      DLR/CLR                 коду
                              Tree
Expression Trees (.NET)
•   Набор выражений для создания алгоритмов (тело функции)
•   Статическая и динамическая типизация


                                                 Block

int i = 2;
while(true) {                         Assign             Loop
  if(i >= 5) {
    break;
  }                                            IfThen    PostIncrementAssign
  i++;
}
                                   GreaterThanOrEqual     Break
Языки
•   IronPython   •   Powershell   •   Nua (Lua)   •   IronSmalltalk
•   Phalanger    •   IronJS       •   IronLogo    •   DLRBasic
•   IronRuby     •   IronScheme
IronPython
Имплементация языка Python
• Имеет REPL
• Интеграция в Visual Studio
• Отладка
• Компоновки в исполняемый файл
Phalanger
Имплементация языка PHP
• По заявлениям авторов, WordPress работает в 4 раза быстрее,
   чем на классическом PHP
• Компоновка в исполняемый файл
• Поддержка нативных PHP расширений (x86 only)
IronRuby
Имплементация языка Ruby
• Имеет REPL
• Отладка
• Gems
IronJS
Имплементация языка JavaScript
• ECMAScript 3.0
• Половина кода написана на F#
• По производительности превзошел IE8
• Работает на CLRv2
Xостинг
          Scope


Runtime


                            Compiled
          Engine   Source
                             Code
Демо
Хостинг в приложении
Безопасность
•   Скрипт имеет доступ ко всему, что есть в домене
•   Создавайте скриптам отдельный домен (sandboxing)
•   Рекомендуется выполнять скрипты только с ограниченными правами
•   DLR помогает просто общаться между доменами — ключевые сервисы
    наследуются от класса MarshalByRefObject
Автоматизация Работы
•   Поддержка большинства сценариев со стандартной библиотекой языка
•   Интеграция с WinForms и WPF
•   Continuous Integration
Почитать
http://www.ironpythoninaction.com/
http://www.ironpython.info/index.php/Main_Page
http://ironjs.wordpress.com/
Вопросы?
Константин Косухин

     k0st1x@ya.ru


     konstantin.kosuhin

Специально для GetDev.NET

More Related Content

What's hot

IronRuby: внутренности и примеры использования
IronRuby: внутренности и примеры использованияIronRuby: внутренности и примеры использования
IronRuby: внутренности и примеры использованияAlexander Byndyu
 
Алексей Федоров
Алексей ФедоровАлексей Федоров
Алексей ФедоровCodeFest
 
Введение в Python и Django
Введение в Python и DjangoВведение в Python и Django
Введение в Python и DjangoTaras Lyapun
 
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Ontico
 
Flask как хорошее решение для веб проекта
Flask как хорошее решение для веб проектаFlask как хорошее решение для веб проекта
Flask как хорошее решение для веб проектаPython Meetup
 
Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.Max Lapshin
 
Что такое Robot Framework?
Что такое Robot Framework?Что такое Robot Framework?
Что такое Robot Framework?Mykhailo Poliarush
 
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...CodeFest
 
Отличие Erlang от объектных языков
Отличие Erlang от объектных языковОтличие Erlang от объектных языков
Отличие Erlang от объектных языковMax Lapshin
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин ОсиповCodeFest
 
Опыт использования Erlang в разработке многопользовательской игры
Опыт использования Erlang в разработке многопользовательской игрыОпыт использования Erlang в разработке многопользовательской игры
Опыт использования Erlang в разработке многопользовательской игрыYuri Zhloba
 
Erlang for Yandex
Erlang for YandexErlang for Yandex
Erlang for YandexMax Lapshin
 
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"Yandex
 
14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?
14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?
14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?HappyDev-lite
 
разработка бизнес приложений (8)
разработка бизнес приложений (8)разработка бизнес приложений (8)
разработка бизнес приложений (8)Alexander Gornik
 
Rubinius: Ruby написанный на Ruby
Rubinius: Ruby написанный на RubyRubinius: Ruby написанный на Ruby
Rubinius: Ruby написанный на RubyIvan Samsonov
 

What's hot (20)

IronRuby: внутренности и примеры использования
IronRuby: внутренности и примеры использованияIronRuby: внутренности и примеры использования
IronRuby: внутренности и примеры использования
 
Алексей Федоров
Алексей ФедоровАлексей Федоров
Алексей Федоров
 
Введение в Python и Django
Введение в Python и DjangoВведение в Python и Django
Введение в Python и Django
 
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
Пайплайн машинного обучения на Apache Spark / Павел Клеменков (Rambler&Co)
 
Erlang&rails
Erlang&railsErlang&rails
Erlang&rails
 
PHP: SAPI
PHP: SAPIPHP: SAPI
PHP: SAPI
 
Flask как хорошее решение для веб проекта
Flask как хорошее решение для веб проектаFlask как хорошее решение для веб проекта
Flask как хорошее решение для веб проекта
 
Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.Erlyvideo — сервер потокового видео.
Erlyvideo — сервер потокового видео.
 
Что такое Robot Framework?
Что такое Robot Framework?Что такое Robot Framework?
Что такое Robot Framework?
 
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
CodeFest 2012. Липский Н. — JIT vs. AOT. Единство и борьба динамического и ст...
 
Отличие Erlang от объектных языков
Отличие Erlang от объектных языковОтличие Erlang от объектных языков
Отличие Erlang от объектных языков
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
Erlang ruby
Erlang rubyErlang ruby
Erlang ruby
 
Sivko
SivkoSivko
Sivko
 
Опыт использования Erlang в разработке многопользовательской игры
Опыт использования Erlang в разработке многопользовательской игрыОпыт использования Erlang в разработке многопользовательской игры
Опыт использования Erlang в разработке многопользовательской игры
 
Erlang for Yandex
Erlang for YandexErlang for Yandex
Erlang for Yandex
 
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
Руслан Гроховецкий "Как Python стал делать погоду в Яндексе"
 
14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?
14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?
14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?
 
разработка бизнес приложений (8)
разработка бизнес приложений (8)разработка бизнес приложений (8)
разработка бизнес приложений (8)
 
Rubinius: Ruby написанный на Ruby
Rubinius: Ruby написанный на RubyRubinius: Ruby написанный на Ruby
Rubinius: Ruby написанный на Ruby
 

Similar to Dynamic Language Runtime

Scripting languages
Scripting languagesScripting languages
Scripting languagesLev Panov
 
Dynamic Language Runtime
Dynamic Language RuntimeDynamic Language Runtime
Dynamic Language RuntimeSQALab
 
Evgeny Rybak Presentation
Evgeny Rybak PresentationEvgeny Rybak Presentation
Evgeny Rybak Presentationsef2009
 
Aspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHPAspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHPAlexander Lisachenko
 
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел КрынецкийJSC “Arcadia Inc”
 
Опыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событияхОпыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событияхVasil Remeniuk
 
Платформа .NET Core глазами PHP-разработчика
Платформа .NET Core глазами PHP-разработчикаПлатформа .NET Core глазами PHP-разработчика
Платформа .NET Core глазами PHP-разработчикаГеоргий Драк
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)Pavel Tsukanov
 
Теория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямТеория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямSergey Staroletov
 
The basic design of the PHP language
 The basic design of the PHP language The basic design of the PHP language
The basic design of the PHP languageVladimir Burdaev
 
Caché Native Access. InterSystems Meetup 2014
Caché Native Access. InterSystems  Meetup 2014Caché Native Access. InterSystems  Meetup 2014
Caché Native Access. InterSystems Meetup 2014InterSystems
 
Разговор про Java 9. Extended version
Разговор про Java 9. Extended versionРазговор про Java 9. Extended version
Разговор про Java 9. Extended versionIvan Krylov
 
Клиент-серверные приложения на iPhone
Клиент-серверные приложения на iPhoneКлиент-серверные приложения на iPhone
Клиент-серверные приложения на iPhonePavel Bashmakov
 
Cocoa Networking
Cocoa NetworkingCocoa Networking
Cocoa Networkingguest57eb8a
 
Programming history. Algorithm
Programming history. AlgorithmProgramming history. Algorithm
Programming history. AlgorithmIhor Porotikov
 
Компьютерная графика. Введение в Processing
Компьютерная графика. Введение в ProcessingКомпьютерная графика. Введение в Processing
Компьютерная графика. Введение в ProcessingTatiana Volkova
 
Внедрение аспектов в PHP с помощью библиотеки GO! AOP
Внедрение аспектов в PHP с помощью библиотеки GO! AOPВнедрение аспектов в PHP с помощью библиотеки GO! AOP
Внедрение аспектов в PHP с помощью библиотеки GO! AOPAlexander Lisachenko
 
основы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеосновы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеYakubovichDA
 

Similar to Dynamic Language Runtime (20)

Scripting languages
Scripting languagesScripting languages
Scripting languages
 
Dynamic Language Runtime
Dynamic Language RuntimeDynamic Language Runtime
Dynamic Language Runtime
 
Evgeny Rybak Presentation
Evgeny Rybak PresentationEvgeny Rybak Presentation
Evgeny Rybak Presentation
 
DLR Hosting
DLR HostingDLR Hosting
DLR Hosting
 
Aspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHPAspect-Oriented Programming in PHP
Aspect-Oriented Programming in PHP
 
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
 
Опыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событияхОпыт использования Spark, Основано на реальных событиях
Опыт использования Spark, Основано на реальных событиях
 
Платформа .NET Core глазами PHP-разработчика
Платформа .NET Core глазами PHP-разработчикаПлатформа .NET Core глазами PHP-разработчика
Платформа .NET Core глазами PHP-разработчика
 
Интегрированная среда разработки для функционального языка Refal
Интегрированная среда разработки для функционального языка RefalИнтегрированная среда разработки для функционального языка Refal
Интегрированная среда разработки для функционального языка Refal
 
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
 
Теория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямТеория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциям
 
The basic design of the PHP language
 The basic design of the PHP language The basic design of the PHP language
The basic design of the PHP language
 
Caché Native Access. InterSystems Meetup 2014
Caché Native Access. InterSystems  Meetup 2014Caché Native Access. InterSystems  Meetup 2014
Caché Native Access. InterSystems Meetup 2014
 
Разговор про Java 9. Extended version
Разговор про Java 9. Extended versionРазговор про Java 9. Extended version
Разговор про Java 9. Extended version
 
Клиент-серверные приложения на iPhone
Клиент-серверные приложения на iPhoneКлиент-серверные приложения на iPhone
Клиент-серверные приложения на iPhone
 
Cocoa Networking
Cocoa NetworkingCocoa Networking
Cocoa Networking
 
Programming history. Algorithm
Programming history. AlgorithmProgramming history. Algorithm
Programming history. Algorithm
 
Компьютерная графика. Введение в Processing
Компьютерная графика. Введение в ProcessingКомпьютерная графика. Введение в Processing
Компьютерная графика. Введение в Processing
 
Внедрение аспектов в PHP с помощью библиотеки GO! AOP
Внедрение аспектов в PHP с помощью библиотеки GO! AOPВнедрение аспектов в PHP с помощью библиотеки GO! AOP
Внедрение аспектов в PHP с помощью библиотеки GO! AOP
 
основы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеосновы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программирование
 

More from GetDev.NET

Leap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущееLeap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущееGetDev.NET
 
Гирлянда для программистов
Гирлянда для программистовГирлянда для программистов
Гирлянда для программистовGetDev.NET
 
Mind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучшеMind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучшеGetDev.NET
 
Что нового в Visual Studio 2015
Что нового в Visual Studio 2015Что нового в Visual Studio 2015
Что нового в Visual Studio 2015GetDev.NET
 
Docker контейнерная революция
Docker контейнерная революцияDocker контейнерная революция
Docker контейнерная революцияGetDev.NET
 
Windows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиковWindows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиковGetDev.NET
 
PhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗКPhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗКGetDev.NET
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web APIGetDev.NET
 
Что нового в Visual Studio 2013
Что нового в Visual Studio 2013Что нового в Visual Studio 2013
Что нового в Visual Studio 2013GetDev.NET
 
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...GetDev.NET
 
Lego Mindstorms
Lego MindstormsLego Mindstorms
Lego MindstormsGetDev.NET
 
Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8GetDev.NET
 
Async Javascript
Async JavascriptAsync Javascript
Async JavascriptGetDev.NET
 
XAML - язык разметки приложений
XAML - язык разметки приложенийXAML - язык разметки приложений
XAML - язык разметки приложенийGetDev.NET
 
JavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработкиJavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработкиGetDev.NET
 
Roslyn - компилятор как сервис
Roslyn - компилятор как сервисRoslyn - компилятор как сервис
Roslyn - компилятор как сервисGetDev.NET
 

More from GetDev.NET (20)

Go
GoGo
Go
 
Leap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущееLeap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущее
 
Гирлянда для программистов
Гирлянда для программистовГирлянда для программистов
Гирлянда для программистов
 
Mind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучшеMind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучше
 
Что нового в Visual Studio 2015
Что нового в Visual Studio 2015Что нового в Visual Studio 2015
Что нового в Visual Studio 2015
 
Docker контейнерная революция
Docker контейнерная революцияDocker контейнерная революция
Docker контейнерная революция
 
Windows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиковWindows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиков
 
PhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗКPhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗК
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
Что нового в Visual Studio 2013
Что нового в Visual Studio 2013Что нового в Visual Studio 2013
Что нового в Visual Studio 2013
 
AngularJS
AngularJSAngularJS
AngularJS
 
TypeScript
TypeScriptTypeScript
TypeScript
 
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
 
Lego Mindstorms
Lego MindstormsLego Mindstorms
Lego Mindstorms
 
Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8
 
Async Javascript
Async JavascriptAsync Javascript
Async Javascript
 
XAML - язык разметки приложений
XAML - язык разметки приложенийXAML - язык разметки приложений
XAML - язык разметки приложений
 
JavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработкиJavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработки
 
Roslyn - компилятор как сервис
Roslyn - компилятор как сервисRoslyn - компилятор как сервис
Roslyn - компилятор как сервис
 
ASP.NET MVC 4
ASP.NET MVC 4ASP.NET MVC 4
ASP.NET MVC 4
 

Dynamic Language Runtime

  • 1. D ynamic L anguage R untime Скриптовые языки на платформе DLR, способы автоматизации рутинной работы с их помощью, а также интегрирование в конечное приложение Косухин Константин
  • 2. Зачем? • Создание динамических языков на платформе .NET • Возможность динамического программирования в C# и VB.NET • Платформа Java давно это имеет
  • 3. Dynamic Typing • Позднее связывание • Утиная типизация • Схож с технологией Reflection (+IDynamicMetaObjectProvider)
  • 4. Dynamic Invocation CallSite Binder Expression
  • 5. Expression Trees (С#) 1. Expression<Func<int, string>> f = i => i.ToString(); • Выражение может быть записано только в одну строку 2. dynamic • Код, записанный с использованием переменной такого типа, собирается в Expression с runtime байндингом dynamic d = GetFoobar(); Expression Привязка к .NET d.CallMethod(42); DLR/CLR коду Tree
  • 6. Expression Trees (.NET) • Набор выражений для создания алгоритмов (тело функции) • Статическая и динамическая типизация Block int i = 2; while(true) { Assign Loop if(i >= 5) { break; } IfThen PostIncrementAssign i++; } GreaterThanOrEqual Break
  • 7. Языки • IronPython • Powershell • Nua (Lua) • IronSmalltalk • Phalanger • IronJS • IronLogo • DLRBasic • IronRuby • IronScheme
  • 8. IronPython Имплементация языка Python • Имеет REPL • Интеграция в Visual Studio • Отладка • Компоновки в исполняемый файл
  • 9. Phalanger Имплементация языка PHP • По заявлениям авторов, WordPress работает в 4 раза быстрее, чем на классическом PHP • Компоновка в исполняемый файл • Поддержка нативных PHP расширений (x86 only)
  • 10. IronRuby Имплементация языка Ruby • Имеет REPL • Отладка • Gems
  • 11. IronJS Имплементация языка JavaScript • ECMAScript 3.0 • Половина кода написана на F# • По производительности превзошел IE8 • Работает на CLRv2
  • 12. Xостинг Scope Runtime Compiled Engine Source Code
  • 14. Безопасность • Скрипт имеет доступ ко всему, что есть в домене • Создавайте скриптам отдельный домен (sandboxing) • Рекомендуется выполнять скрипты только с ограниченными правами • DLR помогает просто общаться между доменами — ключевые сервисы наследуются от класса MarshalByRefObject
  • 15. Автоматизация Работы • Поддержка большинства сценариев со стандартной библиотекой языка • Интеграция с WinForms и WPF • Continuous Integration
  • 17. Вопросы? Константин Косухин k0st1x@ya.ru konstantin.kosuhin Специально для GetDev.NET