Каково будущее поддержки Mono веб-форм ASP.NET?

Как вы знаете, Microsoft купила Xamarin и теперь вместе с ним отвечает за текущую разработку Mono. Кроме того, в ноябре они выпустят .NET 5, который является кроссплатформенным преемником .NET Framework. Они говорят, что ASP.NET Core будет единственной платформой ASP.NET, и отказываются от поддержки веб-форм.

Когда это произойдет, откажутся ли фреймворки Mono и веб-формы или они будут продолжать развиваться?


person arilogue    schedule 06.05.2020    source источник


Ответы (2)


Альтернативный ответ. «Когда это произойдет, из фреймворка Mono также откажутся веб-формы или они будут продолжать развиваться?» Если от Mono нужно отказаться, то ваш вопрос может стать полностью недействительным.

Откатитесь на 200x. Изначально Mono поддерживал ASP.NET WebForms, но в то время ASP.NET 1.x / 2.x / 3.x было достаточно просто для клонирования, а команде Mono было мало что делать с другими частями. Лично я считаю, что это было лучшее время для ASP.NET на Mono / Linux. Однако когда в ASP.NET 4.x было внесено множество важных изменений (асинхронная модель и т. Д.), Начали появляться пробелы, и многие из них так и не были заполнены (поскольку команда сместила акцент на мобильные платформы) .

Я не знаю, как вы сегодня используете приложения WebForms на Mono, но если вы были серьезным пользователем, вы, вероятно, уже столкнулись с множеством проблем и знали, насколько сложной была ситуация. Итак, вам не следует рассматривать Mono / Linux как среду производственного уровня для запуска ваших приложений WebForms, и вам следует вернуться к .NET Framework / Windows или полностью перейти на ASP.NET Core.

Рост популярности Xamarin и приобретение Microsoft сильно изменили ландшафт Mono, поэтому все, что используется продуктами Xamarin (Mono CLR и BCL), продолжает обновляться, а также другие компоненты (включая MonoDevelop, GTK #, XSP, и ASP.NET WebForms) остались позади. Поскольку в .NET 5 переносится только Mono CLR, это можно рассматривать как конец Mono.

Конечно, проект с открытым исходным кодом не умрет легко. Например, с февраля 2020 года MonoDevelop был прекращен, но была группа людей, пытающихся его возродить (включая меня). Но как далеко может зайти Mono, неясно и ненадежно.

В настоящее время Мигель с оптимизмом смотрит в будущее, но не все думают так же.

person Lex Li    schedule 07.05.2020

Когда это произойдет, откажутся ли фреймворки Mono и веб-формы или они будут продолжать развиваться?

Короткий ответ: да, они тоже откажутся от веб-форм. Вам следует считать, что веб-формы устарели - как с точки зрения .NET 5, так и с точки зрения будущих версий среды выполнения Mono. Вы по-прежнему сможете запускать веб-формы в устаревших версиях Mono и .NET Framework - по крайней мере, в той мере, в какой вы можете это делать сегодня, - но эта поддержка не будет перенесена в будущие версии.


Чтобы лучше понять это, полезно понять взаимосвязь между .NET 5, CoreBCL, CoreCLR и Mono. Это стало немного нечетким, поскольку CoreCLR теперь работает на нескольких платформах, таким образом перекрывая большую часть территории, ранее обрабатываемой Mono.

На высоком уровне .NET 5 будет использовать недавно унифицированный Библиотека базовых классов .NET Core (или .NET Core BCL). Этот BCL заменит многие библиотеки классов, которые ранее обрабатывались различными реализациями .NET, включая Mono. Однако Mono по-прежнему будет использоваться в качестве среды выполнения для .NET 5 в средах, в которых размер имеет более высокий приоритет, чем производительность, таких как мобильные устройства и WebAssembly. Напротив, более быстрый (но намного больший) CoreCLR будет (по-прежнему) использоваться в других других средах, таких как приложения для настольных компьютеров и веб-серверов. .NET Core BCL будет работать в верхней из этих сред выполнения.

Другими словами, в .NET 5 не будет отдельных библиотек классов для Mono, как сегодня. Все будут использовать одну и ту же библиотеку базовых классов. И, кроме того, у вас будут дополнительные библиотеки классов, например, ASP.NET, WPF, Xamarin и т. Д. Это будет полностью независимо от того, какую среду выполнения они используют. В результате, поскольку ASP.NET Core 5 не поддерживает веб-формы, это означает, что Mono тоже не будет, поскольку теперь они будут использовать те же самые библиотеки классов.

Есть отличное интервью с Мигелем де Икаса на InfoQ, которое стоит Прочтите, чтобы лучше понять направление среды выполнения Mono и ее связь с .NET 5. (Мигель является первоначальным автором Mono, соучредителем Xamarin и продолжает руководить разработкой Mono). В нем не говорится о веб-формах. в частности, но хорошо проясняет отношения между Mono и .NET 5.

person Jeremy Caney    schedule 06.05.2020
comment
Спасибо, что ответили и изменили заголовок. Сейчас намного лучше :) - person arilogue; 07.05.2020
comment
@arilogue: К вашему сведению: я добавил новый абзац к своему ответу, чтобы лучше объяснить, почему замена MonoBCL на CoreBCL имеет значение и как это связано с более конкретными библиотеками классов, такими как те, которые будут использоваться ASP.NET 5 . - person Jeremy Caney; 07.05.2020
comment
ASP.NET 5 - это довольно двусмысленный термин, и я не знаю, что именно вы имеете в виду. Как бы то ни было, я предложил альтернативный ответ, поскольку вы, похоже, проигнорировали многие важные факты. - person Lex Li; 07.05.2020
comment
К вашему сведению: я обновил свой ответ, указав на ASP.NET Core 5 вместо ASP.NET 5, чтобы избежать двусмысленности. (Справочная информация: следующей версией .NET Core будет .NET 5, следующей версией ASP.NET Core будет ASP.NET Core 5). - person Jeremy Caney; 04.09.2020