IronRuby в Windows Phone 7

Изъять человека из мира .NET можно, но изъять мир .NET из него нельзя. Так что, как только я прознал о том, что Microsoft разрабатывает свою реализацию языка Ruby — под названием IronRuby — поверх инфраструктуры Microsoft .NET Framework, я почувствовал сильное волнение и с головой окунулся в него.

Благодаря IronRuby миры .NET и Ruby теперь соединены. Это открывает бескрайние возможности, и преимущества такого соединения прямо-таки феноменальны.

В этой статье я намерен рассказать об одном из преимуществ, важных для разработчиков как для .NET Framework, так и Ruby: вы можете использовать IronRuby в Windows Phone 7.

Что такое IronRuby?

О разработке IronRuby Microsoft объявила в 2006 г. На разработку ушло более трех лет, и в апреле группа IronRuby сообщила о первой стабильной версии IronRuby: версия 1.0.

IronRuby поддерживает весь набор функциональности языка Ruby с уникальным добавлением: интеграцией кода Ruby с кодом .NET Framework. Эта интеграция реализована практически бесшовно и требует немногим больше простой загрузки сборки .NET Framework в контекст Ruby. Например, следующий код на IronRuby загружает сборку System.Windows.Forms и использует преимущества ее классов:

require 'System.Windows.Forms'

include System::Windows::Forms

form = Form.new
form.height = 200
form.width = 400
form.text = "IronRuby Window"
form.show_dialog

Эта интеграция возможна благодаря Dynamic Language Runtime (DLR) — уровню, который добавлен в инфраструктуру .NET Framework и предоставляет общие сервисы динамическим языкам, написанным на основе этой инфраструктуры. DLR размещается поверх CLR и значительно упрощает реализацию динамических языков в .NET. Это одна из основных причин появления множества динамических языков в .NET Framework, которое мы наблюдаем в последнее время.Вспомним хотя бы IronRuby, IronPython, IronJS, Nua, ClojureCLR и др.


Эта интеграция возможна благодаря Dynamic Language Runtime (DLR) — уровню, который добавлен в инфраструктуру .NET Framework и предоставляет общие сервисы динамическим языкам, написанным на основе этой инфраструктуры. DLR размещается поверх CLR и значительно упрощает реализацию динамических языков в .NET. Это одна из основных причин появления множества динамических языков в .NET Framework, которое мы наблюдаем в последнее время.Вспомним хотя бы IronRuby, IronPython, IronJS, Nua, ClojureCLR и др.

Ключевые средства IronRuby

Ruby — динамический язык, и IronRuby является таким же. Это означает отсутствие компилятора под рукой, и большинство операций в статических языках, выполнявшихся при компиляции и сборке, осуществляется в период выполнения. Это открывает самые разнообразные возможности, которые трудно или вообще нельзя реализовать в большинстве современных статических языков.

Взаимодействие с объектами .NET Framework Язык Ruby имеет множество реализаций: MRI (изначальная реализация), JRuby, Rubinius, MacRub, IronRuby и др. Что выделяет IronRuby из толпы, так это его способность без проблем взаимодействовать с объектами .NET Framework. Это взаимодействие является двухсторонним:объекты .NET Framework доступны из кода на IronRuby, а объекты IronRuby — из кода .NET Framework.

Динамическая типизация Типы переменных IronRuby определяются в период выполнения, пожэтому указывать их в коде нет нужды. Однако это не означает, что в IronRuby нет типов. Они есть, и каждый тип подчиняется своим правилам, как и типы в статических языках. Следующий код демонстрирует механизм динамической типизации:

# Declaring a numeric variable
a = 1

# The variable is of a numeric type
# and therefore numeric operations are available
a = a * 2 + 8 / 4

# The next line will raise an exception
# because it is not possible to add a string to a number
a = a + "hello"

# However, the next line is entirely legit and will result
# in changing the variable type to String


a = "Hello"

Интерактивная консоль По аналогии с командной строкой Windows интерактивная консоль является приложением, которое принимает код на IronRuby и немедленно исполняет его. Этот поток выполнения также известен под названием Read-Evaluate-Print-Loop (REPL). Вы можете определять переменные, методы и даже классы, загружать файлы IronRuby или сборки .NET Framework и мгновенно использовать их. Например, на рис. 1 показан простой сеанс работы в консоли, в котором класс создается и тут же используется.


Категория: Мобильные новости | Просмотров: 566 | Теги: IronRuby, windows, phone
Вверх