Я потерялся. Что случилось с ASP.NET MVC 5?

Я долго работал над различными проектами, и, по всей видимости, Microsoft была занята внесением некоторых больших изменений, и это меня до чертиков сбивает с толку. Я впервые обратил внимание на ASP.NET Core, когда в прошлом году установил Visual Studio 2017 и пошел создавать новый проект, и внезапно у меня появился выбор из .NET Framework, .NET Standard и .NET Core. Поэтому я немного изучил их и увидел, что последние два в некотором роде являются сокращенными версиями полного фреймворка. Я прочитал этот пост Скотта Хансельмана ASP.NET 5 мертв - знакомство с ASP.NET Core 1.0 и .NET Core 1.0. Я также нашел это, которое отвлекло меня от ASP.NET Core: Выберите между ASP.NET и ASP.NET Core. Мой вывод был таким: «Ядро новое, вы можете продолжать использовать полную структуру». Поэтому я создал новый сайт ASP.NET MVC, используя .NET Framework 4.6.2 и Microsoft.AspNet.Mvc 5.2.3.

С момента создания этого проекта я обнаружил, что казалось некоторыми ошибками как в MVC, так и в Entity Framework, только чтобы обнаружить, что единственное упоминание о них в сети, похоже, находится в Core, и это единственное место, где они считаются исправленными.

Сегодня я пытаюсь найти документацию по System.Web.Mvc.Controller и System.Web.Mvc.JsonResult, но ее нет, за исключением документации Core. Я наконец выкопал его здесь, где написано, что он больше не поддерживается?

Я понял этого достаточно о Core и сказал: «Хорошо, а какое мне дело? Я собираюсь продолжать делать то, что делаю, и проверять это, когда это будет сделано». Но теперь кажется, что 4.6.2 даже больше не поддерживается. Может кто-нибудь объяснить, что происходит? Мой проект NET 4.6.2 / MVC 5.2.3 устарел еще до того, как я закончил его писать? Если нет, то почему документация была удалена и спрятана? Я беспокоюсь, что некоторые из моих зависимостей могут быть даже недоступны или совместимы с Core.

Я не могу ответить на все ваши вопросы, но думать о .NET Core как о «сокращенной версии полной платформы» - это очень неправильно - во многих отношениях .NET Core сейчас опережает развитие .NET Framework; ни один из них не является частью другого. Краткая версия будет: «Да, .NET Framework никуда не денется, но: если вы можете, вам следует спланировать переход на .NET Core». Проблема зависимости, о которой вы упомянули, нетривиальна, но большинство распространенных библиотек уже поддерживают .NET Core или .NET Standard. Но никто не заставит вас двигаться, и многие приложения будут продолжать использовать .NET Framework бесконечно.

Marc Gravell 18.07.2018 00:29

Вы можете настроить проект ASP, Net Core MVC для работы на полной платформе .Net Framework.

jmoerdyk 18.07.2018 00:33

Спасибо @MarcGravell. Я просто продолжаю читать, что в ядре отсутствуют определенные функциональные возможности и что оно не работает с некоторыми вещами, потому что оно перестраивается с нуля, но это еще не завершено, но никто никогда не говорит конкретно, что это за вещи. Это следующая версия .Net или фреймворк разделен на две части? Я бы не хотел использовать ядро, а затем обнаружило, что оно не поддерживает некоторые важные функции, которые были доступны в прошлых версиях.

xr280xr 18.07.2018 00:35

Кажется, у меня возникла некоторая путаница в различии между ASP.NET Core и .NET Core.

xr280xr 18.07.2018 00:41

@MarcGravell «вам следует запланировать переход на .NET Core» - мне было бы очень неудобно, если бы настольные приложения пришлось мигрировать на DNX: моим пользователям не нужны дополнительные 20 МБ времени выполнения и зависимостей для каждого из моих сравнительно крошечных пакетов приложений. А как насчет обновлений безопасности для основной среды выполнения? Поскольку приложения DNX изолированы и живут в собственном изолированном пространстве, невозможно обновить общие компоненты сразу, как это можно сделать с .NET Framework. DNX действительно подходит только для серверных приложений, которые можно легко перестроить из исходного кода, а не для настольных приложений, предназначенных для конечных пользователей.

Dai 18.07.2018 07:11

@Dai .NET Core имеет - вариант автономного развертывания (в настоящее время экспериментальный), но вам не нужно его использовать. Возможно, таким образом проще развернуть на клиентах, что, по нашему мнению, может быть заманчивым для клиентских приложений. Тем не менее: ядро ​​.NET набирает обороты намного быстрее, чем .NET framework; если скажете, что вы, вероятно, получите исправления Быстрее для ядра .NET. Но да, тогда возникает вопрос: развернуто ли это исправление?

Marc Gravell 18.07.2018 09:34
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
100
6
42 188
1

Ответы 1

В этом ответе мы попытаемся сосредоточиться только на ASP.NET MVC 5 и как можно меньше на ASP.NET Core.

Жизненный цикл продукта

Microsoft по-прежнему поддерживает это (так что, к счастью, это не «недолговечный» выпуск из другого ответа), и еще нет объявления об окончании срока службы,

https://www.asp.net/support

Framework/Product Retirement

ASP.NET MVC 4 July 1st, 2019

ASP.NET MVC 5

Так что, если хотите, вы можете продолжать использовать его (например, пользователи VB6 и классического ASP, которые все еще поддерживаются Microsoft).

.NET Framework 4.5.2 и более поздние версии по-прежнему полностью поддерживаются, если вы все же ознакомитесь с документацией Microsoft по жизненному циклу продукта.

Обслуживание

Однако вам нужно заметить, что ASP.NET MVC 5 находится в режиме обслуживания, так как сейчас почти все ресурсы разработки находятся на ASP.NET Core.

Вы получаете,

  • Непредсказуемые выпуски исправлений от NuGet.org.

Если вы отслеживаете соответствующие пакеты NuGet, вы должны заметить, что даже недавно Microsoft обновляет их для устранения уязвимостей безопасности и так далее.

  • Закрытая документация.

Уведомление, которое вы видели в Microsoft Docs, на самом деле подчеркивает самое первое предложение: «Мы больше не обновляем этот контент регулярно». Это имеет смысл, поскольку ASP.NET MVC 5 надежен как скала, поэтому вам не следует ожидать добавления новых материалов.

  • Очень ограниченные исправления ошибок и новые функции.

Вы сказали: «С момента создания этого проекта я обнаружил некоторые ошибки как в MVC, так и в Entity Framework, но обнаружил, что единственное упоминание о них в Интернете, похоже, находится в Core, и это единственное место, где они считаются исправленными. . "

Ну, это действительно зависит от того, о каких «ошибках» вы говорите. Как я уже сказал ранее, проблемы, связанные с безопасностью, все еще исправляются, но ошибки с обходными путями или функциональными ограничениями вряд ли будут исправлены. Это проект с открытым исходным кодом, поэтому, если вы действительно хотите, вы можете исправить проблемы самостоятельно, в крайнем случае.

Что касается новых функций, Microsoft действительно переносит некоторые функции из ASP.NET Core, такие как внедрение зависимостей, новая система конфигурации, чтобы упростить миграцию в определенной степени. Но не ждите многого.

Миграция

Если есть возможность, подумайте о переходе на ASP.NET Core.

Другие вопросы по теме