Могу ли я запустить Visual Studio и. Net Framework в контейнере docker на Ma c? - PullRequest
6 голосов
/ 19 февраля 2020

У меня есть приложение Visual Studio Code (Angular /.Net Core Web Api) для работы, и я могу разрабатывать, отлаживать и запускать его на своем персональном компьютере Ma c, когда я подключаюсь к VPN в сети моих компаний.

У меня также есть рабочий стол P C на сайте моей компании и удаленный рабочий сервер, на котором я могу использовать RDP для выполнения всей своей работы, но я предпочитаю свою личную Ма c!

Теперь мне нужно создать приложение. Net Web Api (NON. Net Core), которое мое. Net Приложение Core должно вызывать через http (для веб-служб WCF, которые не будут работать на. Net Core), поэтому я создал веб-приложение Visual Studio. Net Framework на одном из моих рабочих компьютеров Win P C, и я могу одновременно запускать оба проекта (код Visual Studio и Visual Studio) на моем P C, но не на моей Ma c.

Есть ли способ получить приложение. Net Framework, работающее на моей Ma c? ех. в Docker контейнере или, может быть, даже просто запустив приложение в контейнере, чтобы мое. Net Core приложение могло его вызывать?

Еще одна идея, которая у меня есть, но я не уверен, если это возможно - Когда я запускаю . Net Базовое приложение на моей маме c Я VPN в сети моих компаний. Если я запусту веб-приложение. Net на своем рабочем столе или на удаленном сервере, смогу ли я подключиться к нему со своего Ma c?

Ответы [ 2 ]

4 голосов
/ 22 февраля 2020

Visual Studio Code - это приложение JavaScript, которое делает его портативным (и довольно медленным). Visual Studio Framework - это другое животное; тот, который очень территориален. Скомпилированные приложения, предназначенные для платформы. NET, абсолютно не будут работать на MacOS, или Linux, или на Solaris, или ..... на чем-то, что не Windows. . NET ядро ​​переносимо для MacOS.

Согласно этому сообщению ( Можете ли вы устанавливать и запускать приложения, созданные на платформе. NET на Ma c? ), существует возможность использования Mono для перекомпиляции кода и запустить его на Ма c. К сожалению, он не поддерживает полную. NET Framework и, вероятно, требует некоторых нетривиальных изменений в коде, чтобы заставить его работать. Если вы go этот маршрут, вы либо будете ограничены областями Framework, которые поддерживаются Mono, либо вам придется поддерживать 2 разные версии одной и той же базы кода. Ни один из вариантов не звучит мне очень хорошо.

Что касается работы в Docker, это не будет работать. Docker в основном связан с операционной системой хоста из-за использования пространств имен ядра для обеспечения изоляции процессов и других системных ресурсов. Он не предоставляет того же API ядра, который требуется для. NET Framework.

Если вы абсолютно уверены, что хотите продолжить разработку Ma c, лучшим вариантом, вероятно, будет использование толстой виртуальной машины с полной копией Windows. У этого есть очевидные недостатки: он намного дороже (как с точки зрения системных ресурсов, так и затрат на лицензирование программного обеспечения), и в конечном итоге вы все равно используете Windows (так что вы можете просто использовать RDP для реального Windows автомат). Возможно, это не тот ответ, на который вы надеялись (и я бы хотел, чтобы кто-то перечислил некоторые из пропущенных мной опций), но я думаю, что вы в конечном итоге сделаете какую-то работу в Windows.

0 голосов
/ 27 февраля 2020

Вы не можете запустить. NET Framework, потому что при работе с архитектурой слоев из оперативной системы при запуске очень много библиотек находятся в процессе миграции и теперь работают в ядре . NET через nuget Рекомендуется использовать официальный net образ ядра от Microsoft или запустить docker через серверную систему Microsoft.

...