Существует ли уровень абстракции ОС .NET, обеспечивающий кросс-платформенную работу вызовов ОС?

StackOverflow https://stackoverflow.com/questions/109070

Вопрос

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

Это было полезно?

Решение

Да, у Mono есть службы Windows, перенесенные на Linux, но вам придется подумать о лучшем способе хранения настроек конфигурации, чем реестр...Например, использование XML-файлов будет кроссплатформенным.

Вам также следует посетить вики mono о том, как разрабатывать портативные приложения. здесь.

Другие советы

Короткий ответ:нет.Вы можете создать приложение, которое будет работать как в Windows, так и в Linux.Но существуют функции, специфичные для платформы, и на данный момент Mono не может автоматически «перевести» их для вас.Служба Windows является хорошим примером этого.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top