Как ядро приложения asp.net быть кроссплатформенным?
Обычно приложению требуется среда выполнения. Java, JS, Python, ... вам всегда нужно что-то в целевой системе, чтобы ваше приложение работало. Для ядра asp.net это среда выполнения ядра asp.net, и она доступна для многих платформ. Вот почему вы можете запустить свое приложение на всех этих платформах. См. https://dotnet.microsoft.com/download/dotnet-core/2.2 для доступных пакетов.
Это причина, пустельга?
Kestrel - часть веб-сервера. (Если вы пишете приложение для командной строки, вам не нужен kestrel). Вы можете сравнить это, например, с Tomcat в Java.
Я думаю, что веб-сервер принимает запрос и отправляет Кестрелу бла бла.
В большинстве ситуаций (кроме очень маленьких установок) у нас всегда есть прокси (веб) сервер, который принимает запрос и перенаправляет его на другой веб-сервер. Хотя оба кажутся очень похожими, у них разные роли.
Общая (но только пример) настройка:
- Прокси-сервер (веб): завершение работы TLS, балансировка нагрузки на несколько внутренних веб-серверов.
- Бэкэнд (веб) сервер: Запустите приложение. Но сосредоточимся на этой части. Нет сертификатов TLS для настройки, легко масштабируется, ...
Зачем им пустельга?
Опять же, в то время как некоторые языки / платформы используют модули для существующих серверов (например, PHP), другие используют отдельные серверы (Java, JS, C #,…). Для c # это веб-хост kestrel.