Каков текущий статус Mono Платформа Invoke для Linux? И на Solaris?
P/Invoke в Mono
Ответ 1
Работает, годна к употреблению и стабильна. Он хорошо протестирован, так как довольно много монофункциональных низкоуровневых функций должно быть подключено к нему в базовую операционную систему.
Есть несколько P/Invoke extensions по сравнению с реализацией Microsoft.Net(в конце концов, они имеют дело с одним семейством ОС и тремя архитектурами на большинство). Наиболее заметным из них было бы то, что сопоставления библиотек преобразуют имя библиотеки в варианты, специфичные для ОС (например, mylib.dll
выполняет поиск mylib.so
в Linux, mylib.dylib
в OS X и т.д.) И учитывают различные другие условные обозначения системы, Существует также расширение DLLMap, которое может быть использовано, если переводов имен по умолчанию недостаточно. Обычно удобно иметь один и тот же API двоичной библиотеки, открытый в разных ОС, поэтому для миграции между платформами требуется только изменение кода C, а не .Net.