Разница, которую можно увидеть в. NET Core 3.0 против. NET Код core 2.2 заключается в том, что NET core 3.0 использует Generi c Host while. NET Core 2.2 используйте веб-хост для веб-приложения. Хост Generi c был включен в ASP. NET CORE 2.1 и стал стандартом де-факто для будущей версии. NET Core. Хотя хост Generi c был включен в. NET core 2.1, но он использовался только для рабочих нагрузок без HTTP. В. NET Core 3.0 он стал универсальным стандартом (рабочие нагрузки HTTP + не HTTP).
Причина перехода от компоновщика WebHost к более универсальному c компоновщику хоста заключается в том, что компоновщик WebHost был более привязан к HTTP-запрос хорошо работает для веб-приложений, но с появлением Microservices и Docker возникла потребность в более универсальном c веб-хосте, поэтому. NET Основная команда обновила его, сделав его пригодным для использования и с консольным приложением. С Generi c Host можно использовать библиотеки ведения журнала, конфигурации и DI в консольном приложении .
Для создания хоста мы можем использовать новый HostBuilder, который имеет набор методов и расширений, аналогичный существующему WebHostBuilder. Есть одно главное отличие, о котором следует знать, и это HostBuilder не делает предоставить метод расширения, который позволяет вам использовать класс запуска как мы можем с WebHostBuilder . Это решение было принято главным образом, чтобы избежать необходимости создавать два отдельных контейнера DI за кулисами. На хосте generi c настраивается один набор служб, который затем используется для построения конечного поставщика услуг.
Причина использования ConfigureWebHostDefaults в том, что Новый Host Builder - Generi c Host Builder, поэтому важно сказать, что мы намерены настроить параметры по умолчанию для веб-хоста.