Подтвердить что ты не робот

Зачем использовать полную .NET Framework с ASP.NET Core?

С выпуском ASP.NET Core 1.0 можно запускать либо .NET Core, либо полную .NET Framework для документации здесь. Я пытаюсь понять последний вариант того, почему нужно выбрать ASP.NET Core + полную платформу .NET Framework?

Я понимаю разницу между полной .NET Framework и .NET Core. Однако, если бы я хотел использовать полную .NET Framework, почему бы просто не использовать ASP.NET 4.6? Я думал, что идея - это 1-2 удара с ASP.NET Core поверх .NET Core, что позволяет использовать множество преимуществ, таких как кросс-платформенное развертывание, модуляция, возможность развертывания в контейнере Docker, производительность и т.д. Без .NET Core я не делаю Не верьте, что что-либо в этом списке все еще актуально, так что же является прецедентом для всей платформы .NET + ASP.NET Core? Что сам ASP.NET Core по-прежнему предоставляет мне без .NET Core?

4b9b3361

Ответ 1

.NET Core позволяет множество преимуществ, таких как кросс-платформенное развертывание, модуляция, возможность развертывания в контейнере Docker, производительность и т.д. Без .NET Core. Я не верю, что что-либо в этом списке все еще актуально.

Единственное преимущество, которое у вас нет, если вы выберете полную платформу .NET поверх .NET Core, будет кросс-платформой. Все остальные преимущества развертывания, модуляции, докера, производительности и т.д. Все еще актуальны.

Фактически мы запускаем наше веб-приложение ASP.NET Core на полной основе, и теперь мы наслаждаемся преимуществами Injection Dependency как гражданина 1-го класса, имеющего встроенный NuGet, с безнадежным конвейером HTTP-запросов, который улучшает нашу производительность, open sourced (так что все проблемы могут быть решены путем короткого посещения GitHub), модульности (до сих пор приходится сталкиваться с тем, что мы не могли настроить для своих собственных нужд через почти год) и т.д. И мы знаем, что нам не нужно развертывать какие-либо другие ОС, кроме Windows, поэтому мы все еще можем использовать все преимущества полной структуры.

Обновление от Tseng

Ну, вы все равно можете настроить полную платформу .NET Framework под Linux. Там вам нужно установить моно 4.6. Есть некоторые ограничения, поскольку не все классы реализованы в моно, но большинство есть и вокруг угла дела (например, шифрование), вы должны работать

Обновление с atconway

Также стоит отметить, что VB.NET не поддерживается .NET Core, если это требование.

Ответ 2

Однако, если бы я хотел использовать полную .NET Framework, почему бы просто не использовать ASP.NET 4.6?

Если я использую ASP.NET 4.6 вместо ASP.NET Core 1, то я не смогу использовать ASP.NET Core MVC. Ни одна из функций на этой странице документации не будет доступна мне! Мне нужно было бы создать приложение MVC5. Boooo!

Я пытаюсь понять последний вариант того, почему нужно выбрать ASP.NET Core + полную .NET Framework?

Я предполагаю, что другой способ спросить об этом будет следующим: "Почему бы вам взять красный путь, когда вы можете взять коричневый путь?"

введите описание изображения здесь

Одним из аргументов для этого является развертывание. Если у вас есть куча существующих серверов Windows с IIS на них, вам нужно будет установить дополнительное программное обеспечение для каждого из них и настроить их для запуска приложений Core. IIS просто становится обратным прокси для вашего приложения .NET Core.

Однако, если эти приложения были построены на .Net Framework, вам не нужно будет этого делать. Вы могли бы использовать веб-развертывание (например), чтобы переместить их на серверы. Возможно, у вас есть другие существующие параметры конфигурации IIS, которые вы не хотите переносить.

С помощью ASP.NET Core 1.0, ориентированного на .NET Framework, вы можете воспользоваться преимуществами новых функций в ASP.NET Core MVC без необходимости изменять существующую инфраструктуру.

Ответ 3

Одним из важных преимуществ использования Full.NET framework с ядром Asp.Net является наличие зрелых библиотек и фреймворков, которые разработаны в основном для целевой версии .NET.

Но, пройдя время и внедряя все больше и больше библиотек, предназначенных для ядра .NET, и разрабатывая больше возможностей для ядра .NET, это преимущество может исчезнуть.

Ответ 4

Привлечение к использованию устаревших технологий, таких как OLE DB, которые никогда не будут реализованы в NET Core System.Data - еще одна причина.

Ответ 5

Следует учитывать, что это может быть путь миграции. Скажем, например, у вас есть существующее приложение ASP.NET 4.6, которое вы планируете перенести на .NET Core. Вы хотите использовать возможности ASP.NET Core, такие как TagHelpers, Dependency Injection и т.д., Но вы не готовы или не можете использовать платформу .NET Core. Итак, вы разрабатываете приложение ASP.NET Core, ориентируясь только на .NET framework. Затем вы делаете следующий шаг и многоцелевую задачу, как для .NET full framework, так и для платформы .NET Core. Это дает вам гибкость для простого развертывания в IIS с полной каркасной платформой или межплатформенной платформой. Оттуда вы можете решить, хотите ли вы исключить полную структуру или нет.