Существует ли уровень абстракции ОС .NET, обеспечивающий кросс-платформенную работу вызовов ОС?
-
01-07-2019 - |
Вопрос
Я очень хочу писать .NET-приложения, которые будут работать на любой платформе (ПК, Linux и Mac).Меня не особо беспокоят возможности пользовательского интерфейса, поскольку в основном это фоновые службы.Я слышал о MONO и о том, что он позволяет писать .NET-приложения, которые работают на Mac и Linux, но я хочу иметь возможность написать одно приложение, которое при компиляции для Windows будет работать как служба, а при компиляции для Linux работать как эквивалент UNIX.Я также хотел бы иметь возможность хранить данные в реестре и работать с этим.Есть ли способ написать по-настоящему независимый от ОС код, подобный этому?... и НЕ говорите, что я должен запустить его в Интернете!:)
Решение
Да, у Mono есть службы Windows, перенесенные на Linux, но вам придется подумать о лучшем способе хранения настроек конфигурации, чем реестр...Например, использование XML-файлов будет кроссплатформенным.
Вам также следует посетить вики mono о том, как разрабатывать портативные приложения. здесь.
Другие советы
Короткий ответ:нет.Вы можете создать приложение, которое будет работать как в Windows, так и в Linux.Но существуют функции, специфичные для платформы, и на данный момент Mono не может автоматически «перевести» их для вас.Служба Windows является хорошим примером этого.