Запуск и отладка .net framework / asp.net (mvc/web api) приложений на macOS/Linux/(etc unix-based OS) или же как я VS Code Remote Development over SSH осваивал.
Здравствуйте всем, мне как человеку, который перешел на unix системы в году этак 2010, но любящего .net всегда не хватало главного: писать и отлаживать код который я хочу на системе которая мне нравится. С 2010 по 2020 Microsoft проделала уйму работы, что бы это стало само собой разумеющимся, но вот не задача, существует много легаси проектов на .net framework (далее .net fx) , как же с ними быть? Меня мучал этот вопрос уже как несколько лет и вот я его наконец решил...
Встречайте: Microsoft Visual Studio Code: Remote Development over SSH
Суть весьма проста, на самом то деле:
1. VS Code по SSH подключается к хосту.
2. Разворачивает там свой сервер и подключается к нему.
3. Выполняет все команды на хосте и прокидывает порты запущенного софта на ваш компьютер(клиент в данном контексте).
VS Code выступает эдаким клиентом, который нативно(на сколько этот термин применим к electron.js приложениям) существует на вашем компьютере.
Сам по себе опыт использования напоминает обычный запуск отладки asp.net на вашем компьютере. (В нашем контексте это asp.net, но ограничения на технологию у VS Code нет)
Итак, приступим к настройке:
Первым делом нам следует установить openSSH server на наш windows. Microsoft любезно предоставляет вполне простую инструкцию в несколько команд на PowerShell. Для ленивых, я продублирую команды которые работают на состояние 15.11.2020, но рекомендую использовать первоисточник, потому что во времени, когда вы это читаете, всё может измениться и официальную инструкцию обновят. А вот эту статью я могу и забыть обновить под новые реалии.
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Start-Service sshd # OPTIONAL but recommended: Set-Service -Name sshd -StartupType 'Automatic' # Confirm the Firewall rule is configured. It should be created automatically by setup. Get-NetFirewallRule -Name *ssh* # There should be a firewall rule named "OpenSSH-Server-In-TCP", which should be enabled # If the firewall does not exist, create oneNew-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
Вторым шагом, нам следует настроить конфигурационные файлы VS Code для запуска команд и отладки. На коренном каталоге у вас должна быть папочка .vscode, если нет.то вам следует её создать, обычно на этом же уровне есть папки .idea и .vs, в этой папке вам следует создать 2 файла: launch.json & tasks.json:
YourSolutionRootFolder:
-- .idea
-- .vs
-- .vscode:
-- launch.json
-- tasks.json
Третий шаг, нам следует в файле tasks.json добавить задачу, в которой вы укажите путь до вашего msbuild и что ему делать. По сути это и есть тот самый "удаленный" запуск софта на машине к которой вы подключились. Эта задача будет нам собирать проект.
и с какими параметрами ему следует запуститься. Обычно конфиг файл нагенеривает вам Visual Studio или Rider. В моём случае я использую файл от Rider.
P.S
Я впервые пишу подобного рода статью/гайд/мануал, по этому любая конструктивная критика по улучшению приветствуется в телеграмме @the_RAMZAY
Comments
Post a Comment