NObjective: различия между версиями
Перейти к навигации
Перейти к поиску
[непроверенная версия] | [непроверенная версия] |
Содержимое удалено Содержимое добавлено
Yuriy75 (обсуждение | вклад) Нет описания правки |
Нет описания правки |
||
Строка 4: | Строка 4: | ||
Существующие мосты (Cocoa#, Monobjc, mobjc) не удовлетворяют более чем по одному параметру: |
Существующие мосты (Cocoa#, Monobjc, mobjc) не удовлетворяют более чем по одному параметру: |
||
* Минимальные непроизводительные издержки. |
* Минимальные непроизводительные издержки. Мост должен потреблять минимум памяти и при этом работать максимально быстро. |
||
* Возможность автоматической генерации кода для Objective-C |
* Возможность автоматической генерации кода для Objective-C оберток. Apple из версии в версию своей операционной системы меняет как существующие Objective-C классы, так и добавляет новые и каждый раз обновлять/исправлять исходники классов оберток как невыгодно по времени так и чревато ошибками свзянанными с человеческим фактором. К примеру в Tiger насчитывается примерно 2000 основных классов и 20000 методов к ним, а в Leopard уже 2300 классов и 23000 методов к ним. Использование кодогенерации позволит примерно за считанные секунды получить сгенерированные обертки на любую новую версию Mac OS. |
||
* Кросс-рантаймовый проброс исключений. Mono обычно не очень довольно longjmp поведением Objective-C исключений. Objective-C тоже на языке стек-фреймов говорит что ему .NET исключения тоже не по душе. |
* Кросс-рантаймовый проброс исключений. Mono обычно не очень довольно longjmp поведением Objective-C исключений. Objective-C тоже на языке стек-фреймов говорит что ему .NET исключения тоже не по душе. Обычно в таких случаях используется LIBFFI, но в этом мосте используется PowerPC и x86 ассемблерные трамплины, позволяющие делать максимально быстрые и защищенные managed<-->unamanged переходы. |
||
* Работа на обеих, наиболее популярных версиях Mac OS X Tiger и Mac OS X Leopard. |
|||
[http://code.google.com/p/objcmapper/ NObjective Web Site] |
[http://code.google.com/p/objcmapper/ NObjective Web Site] |
Версия от 15:01, 15 января 2009
Эта страница требует существенной переработки. |
В этой статье нет ссылок на другие статьи Википедии. |
NObjective — это высокопроизводительный мост связывающий мир неуправляемого Objective-C кода с управляемым кодом .NET.
Существующие мосты (Cocoa#, Monobjc, mobjc) не удовлетворяют более чем по одному параметру:
- Минимальные непроизводительные издержки. Мост должен потреблять минимум памяти и при этом работать максимально быстро.
- Возможность автоматической генерации кода для Objective-C оберток. Apple из версии в версию своей операционной системы меняет как существующие Objective-C классы, так и добавляет новые и каждый раз обновлять/исправлять исходники классов оберток как невыгодно по времени так и чревато ошибками свзянанными с человеческим фактором. К примеру в Tiger насчитывается примерно 2000 основных классов и 20000 методов к ним, а в Leopard уже 2300 классов и 23000 методов к ним. Использование кодогенерации позволит примерно за считанные секунды получить сгенерированные обертки на любую новую версию Mac OS.
- Кросс-рантаймовый проброс исключений. Mono обычно не очень довольно longjmp поведением Objective-C исключений. Objective-C тоже на языке стек-фреймов говорит что ему .NET исключения тоже не по душе. Обычно в таких случаях используется LIBFFI, но в этом мосте используется PowerPC и x86 ассемблерные трамплины, позволяющие делать максимально быстрые и защищенные managed<-->unamanged переходы.
- Работа на обеих, наиболее популярных версиях Mac OS X Tiger и Mac OS X Leopard.
Для улучшения этой статьи желательно:
|