D           ynamic   L   anguage        R        untime                          Скриптовые языки на платформе DLR,       ...
Зачем?•   Создание динамических языков на платформе .NET•   Возможность динамического программирования в C# и VB.NET•   Пл...
Dynamic Typing•   Позднее связывание•   Утиная типизация•   Схож с технологией Reflection    (+IDynamicMetaObjectProvider)
Dynamic Invocation CallSite   Binder   Expression
Expression Trees (С#)1. Expression<Func<int, string>> f = i => i.ToString();• Выражение может быть записано только в одну ...
Expression Trees (.NET)•   Набор выражений для создания алгоритмов (тело функции)•   Статическая и динамическая типизация ...
Языки•   IronPython   •   Powershell   •   Nua (Lua)   •   IronSmalltalk•   Phalanger    •   IronJS       •   IronLogo    ...
IronPythonИмплементация языка Python• Имеет REPL• Интеграция в Visual Studio• Отладка• Компоновки в исполняемый файл
PhalangerИмплементация языка PHP• По заявлениям авторов, WordPress работает в 4 раза быстрее,   чем на классическом PHP• К...
IronRubyИмплементация языка Ruby• Имеет REPL• Отладка• Gems
IronJSИмплементация языка JavaScript• ECMAScript 3.0• Половина кода написана на F#• По производительности превзошел IE8• Р...
Xостинг          ScopeRuntime                            Compiled          Engine   Source                             Code
ДемоХостинг в приложении
Безопасность•   Скрипт имеет доступ ко всему, что есть в домене•   Создавайте скриптам отдельный домен (sandboxing)•   Рек...
Автоматизация Работы•   Поддержка большинства сценариев со стандартной библиотекой языка•   Интеграция с WinForms и WPF•  ...
Почитатьhttp://www.ironpythoninaction.com/http://www.ironpython.info/index.php/Main_Pagehttp://ironjs.wordpress.com/
Вопросы?Константин Косухин     k0st1x@ya.ru     konstantin.kosuhinСпециально для GetDev.NET
Upcoming SlideShare
Loading in …5
×

Dynamic Language Runtime

993 views

Published on

Видео и материалы со встречи:
http://getdev.net/Event/dynamic-language-runtime

В докладе рассмотрим скриптовые языки на платформе DLR, способы автоматизации рутинной работы с их помощью, а также интегрирование в конечное приложение.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
993
On SlideShare
0
From Embeds
0
Number of Embeds
266
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Dynamic Language Runtime

  1. 1. D ynamic L anguage R untime Скриптовые языки на платформе DLR, способы автоматизации рутинной работы с их помощью, а также интегрирование в конечное приложениеКосухин Константин
  2. 2. Зачем?• Создание динамических языков на платформе .NET• Возможность динамического программирования в C# и VB.NET• Платформа Java давно это имеет
  3. 3. Dynamic Typing• Позднее связывание• Утиная типизация• Схож с технологией Reflection (+IDynamicMetaObjectProvider)
  4. 4. Dynamic Invocation CallSite Binder Expression
  5. 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. 6. Expression Trees (.NET)• Набор выражений для создания алгоритмов (тело функции)• Статическая и динамическая типизация Blockint i = 2;while(true) { Assign Loop if(i >= 5) { break; } IfThen PostIncrementAssign i++;} GreaterThanOrEqual Break
  7. 7. Языки• IronPython • Powershell • Nua (Lua) • IronSmalltalk• Phalanger • IronJS • IronLogo • DLRBasic• IronRuby • IronScheme
  8. 8. IronPythonИмплементация языка Python• Имеет REPL• Интеграция в Visual Studio• Отладка• Компоновки в исполняемый файл
  9. 9. PhalangerИмплементация языка PHP• По заявлениям авторов, WordPress работает в 4 раза быстрее, чем на классическом PHP• Компоновка в исполняемый файл• Поддержка нативных PHP расширений (x86 only)
  10. 10. IronRubyИмплементация языка Ruby• Имеет REPL• Отладка• Gems
  11. 11. IronJSИмплементация языка JavaScript• ECMAScript 3.0• Половина кода написана на F#• По производительности превзошел IE8• Работает на CLRv2
  12. 12. Xостинг ScopeRuntime Compiled Engine Source Code
  13. 13. ДемоХостинг в приложении
  14. 14. Безопасность• Скрипт имеет доступ ко всему, что есть в домене• Создавайте скриптам отдельный домен (sandboxing)• Рекомендуется выполнять скрипты только с ограниченными правами• DLR помогает просто общаться между доменами — ключевые сервисы наследуются от класса MarshalByRefObject
  15. 15. Автоматизация Работы• Поддержка большинства сценариев со стандартной библиотекой языка• Интеграция с WinForms и WPF• Continuous Integration
  16. 16. Почитатьhttp://www.ironpythoninaction.com/http://www.ironpython.info/index.php/Main_Pagehttp://ironjs.wordpress.com/
  17. 17. Вопросы?Константин Косухин k0st1x@ya.ru konstantin.kosuhinСпециально для GetDev.NET

×