Моно и среда выполнения Dotnet ⇐ Android
-
Anonymous
Моно и среда выполнения Dotnet
По данным источников MS,
https://learn.microsoft.com/en-us/xamar ... chitecture https://learn.microsoft.com/en-us/dotne ... at-is-maui
Mono (https://github.com/mono/mono) — это среда выполнения, используемая для Xamarin.Forms и MAUI. В отличие от среды выполнения dotnet: https://github.com/dotnet/runtime
Поэтому, когда у меня есть система, состоящая из API и приложения Xamarin.Forms, у меня есть одно приложение, работающее в dotnet, в Windows (проект API .NET 6), а другое в Mono, на Android (.Net Standard). 2.0 Xamarin.Forms).
Каковы будут различия в поведении этих двоичных файлов, поскольку они работают в разных средах выполнения? Если у меня есть одинаковые классы, выполняющие идентичные операции в обоих проектах, будет ли какое-либо потенциально различное поведение, основанное на том факте, что один работает в dotnet, а другой в Mano?
В качестве примера я ссылаюсь на этот раздел документации Mono: https://www.mono-project.com/docs/advan ... ally-from- управляемый код
Здесь, говоря об обработке исключений, говорится:
Эти исключения генерируются из управляемого кода с помощью «throw» или «перегенерировать» инструкции CIL. JIT-компилятор переведет их в вызов вспомогательной функции под названием «mono_arch_throw/rethrow_Exception».
Эти вспомогательные функции не существуют во время компиляции, они создаются динамически во время выполнения с помощью кода в файлах исключений-.c.
Оно явно относится к функции mono_arch_throw/rethrow_Exception, которая не существует во время компиляции, а создается динамически во время выполнения. В этом типе поведения и заключается суть моего вопроса. Если Mono создаст эту функцию во время выполнения, как я узнаю, чем эквивалентная реализация в dotnet отличается от того, что происходит в Mono? И каковы последствия различий во времени выполнения для меня как разработчика мобильных приложений?
По данным источников MS,
https://learn.microsoft.com/en-us/xamar ... chitecture https://learn.microsoft.com/en-us/dotne ... at-is-maui
Mono (https://github.com/mono/mono) — это среда выполнения, используемая для Xamarin.Forms и MAUI. В отличие от среды выполнения dotnet: https://github.com/dotnet/runtime
Поэтому, когда у меня есть система, состоящая из API и приложения Xamarin.Forms, у меня есть одно приложение, работающее в dotnet, в Windows (проект API .NET 6), а другое в Mono, на Android (.Net Standard). 2.0 Xamarin.Forms).
Каковы будут различия в поведении этих двоичных файлов, поскольку они работают в разных средах выполнения? Если у меня есть одинаковые классы, выполняющие идентичные операции в обоих проектах, будет ли какое-либо потенциально различное поведение, основанное на том факте, что один работает в dotnet, а другой в Mano?
В качестве примера я ссылаюсь на этот раздел документации Mono: https://www.mono-project.com/docs/advan ... ally-from- управляемый код
Здесь, говоря об обработке исключений, говорится:
Эти исключения генерируются из управляемого кода с помощью «throw» или «перегенерировать» инструкции CIL. JIT-компилятор переведет их в вызов вспомогательной функции под названием «mono_arch_throw/rethrow_Exception».
Эти вспомогательные функции не существуют во время компиляции, они создаются динамически во время выполнения с помощью кода в файлах исключений-.c.
Оно явно относится к функции mono_arch_throw/rethrow_Exception, которая не существует во время компиляции, а создается динамически во время выполнения. В этом типе поведения и заключается суть моего вопроса. Если Mono создаст эту функцию во время выполнения, как я узнаю, чем эквивалентная реализация в dotnet отличается от того, что происходит в Mono? И каковы последствия различий во времени выполнения для меня как разработчика мобильных приложений?
Мобильная версия