О
разработке IronRuby Microsoft объявила в 2006 г. На разработку ушло
более трех лет, и в апреле группа IronRuby сообщила о первой стабильной
версии IronRuby: версия 1.0. IronRuby поддерживает весь набор
функциональности языка Ruby с уникальным добавлением: интеграцией кода
Ruby с кодом .NET Framework. Эта интеграция реализована практически
бесшовно и требует немногим больше простой загрузки сборки .NET
Framework в контекст Ruby. Например, следующий код на IronRuby загружает
сборку System.Windows.Forms и использует преимущества ее классов: Эта интеграция возможна благодаря 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 и др. Ruby
— динамический язык, и IronRuby является таким же. Это означает
отсутствие компилятора под рукой, и большинство операций в статических
языках, выполнявшихся при компиляции и сборке, осуществляется в период
выполнения. Это открывает самые разнообразные возможности, которые
трудно или вообще нельзя реализовать в большинстве современных
статических языков. Взаимодействие с объектами .NET Framework
Язык Ruby имеет множество реализаций: MRI (изначальная реализация),
JRuby, Rubinius, MacRub, IronRuby и др. Что выделяет IronRuby из толпы,
так это его способность без проблем взаимодействовать с объектами .NET
Framework. Это взаимодействие является двухсторонним:объекты .NET
Framework доступны из кода на IronRuby, а объекты IronRuby — из кода
.NET Framework. Динамическая типизация Типы
переменных IronRuby определяются в период выполнения, пожэтому указывать
их в коде нет нужды. Однако это не означает, что в IronRuby нет типов.
Они есть, и каждый тип подчиняется своим правилам, как и типы в
статических языках. Следующий код демонстрирует механизм динамической
типизации: Интерактивная консоль По аналогии с
командной строкой Windows интерактивная консоль является приложением,
которое принимает код на IronRuby и немедленно исполняет его. Этот поток
выполнения также известен под названием Read-Evaluate-Print-Loop
(REPL). Вы можете определять переменные, методы и даже классы, загружать
файлы IronRuby или сборки .NET Framework и мгновенно использовать их.
Например, на рис. 1 показан простой сеанс работы в консоли, в котором класс создается и тут же используется.
Благодаря IronRuby миры .NET и Ruby теперь
соединены. Это открывает бескрайние возможности, и преимущества такого
соединения прямо-таки феноменальны.
В этой статье я намерен
рассказать об одном из преимуществ, важных для разработчиков как для
.NET Framework, так и Ruby: вы можете использовать IronRuby в Windows
Phone 7.Что такое IronRuby?
require 'System.Windows.Forms'
include System::Windows::Forms
form = Form.new
form.height = 200
form.width = 400
form.text = "IronRuby Window"
form.show_dialogКлючевые средства 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"
Категория: Мобильные новости | Просмотров: 566 | Теги: