Как Python и приложения Ruby будут затронуты.NET?

добавить прослушиватели onCreate и onUpgrade.

var theDb = await openDatabase(path,
    version: 14, onCreate: _onCreate, onUpgrade: _onUpgrade);

void _onCreate(Database db, int version) async {
//load your db from assets
print("Created tables");
}
//Drop and create tables onUpgrade or Alter.
FutureOr _onUpgrade(Database db, int oldVersion, int newVersion) {
//code your changes to the db like alter table queries, or drop and create.
}
5
задан Brian Rasmussen 21 January 2009 в 20:43
поделиться

7 ответов

Я ничего не могу сказать о IronRuby, но большинство реализаций Python (как IronPython, Jython и PyPy) пытается быть максимально верным для реализации CPython. IronPython быстро становится одним из лучших в этом отношении хотя, и существует большое движение на Планете Python об этом.

Главным, которое поощрит разработчиков писать код, это отличается от того, что они записали бы в CPython, является отсутствие дополнительных модулей C как NumPy (Это - проблема в Jython и PyPy также).

Интересным проектом бдительно следить за является IronClad, который позволит Вам назвать дополнительные модули C из IronPython. Это должно в конечном счете означать, что можно разработать код под CPython, с помощью любых модулей, которые Вы любите, и он будет работать неизмененный на IronPython.

http://www.resolversystems.com/documentation/index.php/Ironclad

Таким образом отвечать на Ваши вопросы:

Должно быть достаточно легко записать приложения IronPython, которые работают над CPython также, но я, вероятно, стремился бы идти наоборот: программы CPython, которые работают над IronPython также. Тот путь, если это не работает затем, это, более вероятно, будет известная ошибка с известным обходным решением.

Преимущество IronPython, и др. существующего, состоит в том, что они обеспечивают альтернативные реализации языка, которые иногда полезны для определения ошибок в CPython. Они также обеспечивают альтернативные методы для развертывания Ваших приложений Python, если по некоторым причинам Вы оказываетесь в ситуации (как Silverlight), где распределение реализации CPython с Вашим приложением не является соответствующим.

5
ответ дан 13 December 2019 в 22:18
поделиться

Если Вы создаете библиотеку или платформу, люди могут использовать ее на.NET с их кодом.NET. Это довольно прохладно для них, и для Вас!

При разработке приложения при использовании средств.NET с отказом затем, Вы проигрываете "перекрестно-platformity", который является не всегда проблемой.

При обертывании этого использования с внутренним API можно заменить реализации.NET позже чистым Python, перенес C (для CPython), или Java (для Jython) позже.

1
ответ дан 13 December 2019 в 22:18
поделиться

Согласно странице Mono, IronPython совместим с реализацией Mono времени выполнения .NET, таким образом, исполняемые файлы должны работать и над Windows и над Linux.

1
ответ дан 13 December 2019 в 22:18
поделиться

IronPython/IronRuby создаются для работы над виртуальной машиной .NET, таким образом, они - как Вы говорите по существу что конкретная платформа.

По-видимому, они совместимы с Python и Ruby, пока Вы не используете ни одной платформы .NET в Ваших программах.

1
ответ дан 13 December 2019 в 22:18
поделиться

Было бы здорово выполнить Rails/Django под IIS скорее затем решения для типа Apache/полукровки

0
ответ дан 13 December 2019 в 22:18
поделиться

Вы отвечаете на свой первый вопрос со вторым, если Вы ничего не используете от .NET, только оригинал освобождает обеспеченный реализацией языка, Вы могли интерпретировать свой *.py или *.rb файл с другой реализацией, и это должно работать.

Преимущество состояло бы в том, если Ваш .NET делает покупки, Вы обычно заботитесь об установке правильной платформы на клиентской машине и т.д.... хорошо, если Вы хотите Python или код Ruby, теперь необходимо поддерживать другую "платформу", должен распределить установку, заботиться о проблеме версии и т.д... Таким образом, там 2 преимущества, с помощью питания платформы .NET в другом языке + сохраняют распределение/обслуживание максимально простым.

0
ответ дан 13 December 2019 в 22:18
поделиться

Будут ли приложения, написанные на IronPython / IronRuby, быть настолько специфичными для среды .NET, что они, по сути, станут специфичными для платформы?

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

Это означает, что он будет поддерживать практически любое собственное приложение ruby, которое не полагается на расширения C.
Обратной стороной является то, что в IronRuby можно будет писать собственные ruby-приложения, которые не полагаются на CLR, и они будут переносимы на MRI.

Независимо от того, решают ли люди создавать или использовать расширения для своих приложений с помощью CLR, это такой же вопрос, как и создавать или использовать расширения C для MRI - одно не более портативно, чем другое.

Существует побочный вопрос : «Поскольку создавать расширения IronRuby на C # намного проще, чем расширения CRuby на C, будут ли люди создавать расширения там, где им следует придерживаться нативного кода Ruby?» , но это полностью субъективно.

В целом, я думаю, что все, что упрощает создание расширений, является большой победой.


Если они не используют какие-либо функции .NET, тогда в чем преимущество IronPython / IronRuby перед их аналогами, не являющимися .NET?

  1. Производительность: IronRuby уже по большей части быстрее, чем MRI 1.8, и недалеко от MRI 1.9, и в будущем ситуация будет только улучшаться. Я думаю, что python похож в этом отношении.

  2. Развертывание: как уже упоминалось, запуск собственного кросс-платформенного приложения rails ruby ​​внутри IIS является привлекательным предложением для некоторых разработчиков на базе Windows, поскольку это позволяет им лучше интегрироваться с существующими серверами / management Infrastructure / etc

  3. Стабильность: хотя MRI 1.9 намного лучше, чем было 1.8, я не думаю, что кто-то может не согласиться с тем, что у CLR гораздо лучший сборщик мусора и базовая среда выполнения, чем у C ruby.

2
ответ дан 13 December 2019 в 22:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: