.net? да! самое главное о платформе и ее перспективах
Содержание:
- Модели выполнения.
- NET Framework – для чего он нужен и можно ли удалить
- Лицензирование
- .NET 5.0 doesn’t replace .NET Framework
- Прочее
- 2017
- .NET Framework 1.1
- .NET-код
- Достоинства
- Особые соображения
- Mono
- Какие полезные ресурсы/книги могли бы посоветовать?
- Что такое ASP.NET
- Чего ожидать от .NET 5 в ближайшем будущем?
Модели выполнения.
Приложения .NET запускают управляемый код в среде выполнения, известной как среда CLR.
CLR
.NET CLR — это кроссплатформенная среда выполнения, которая включает поддержку Windows, macOS и Linux. Среда CLR обрабатывает выделение памяти и управление ей. Среда CLR также является виртуальной машиной, которая не только выполняет приложения, но и создает, а также компилирует код с помощью JIT-компилятора.
Для получения дополнительной информации см. Common Language Runtime.
JIT-компилятор и промежуточный язык
Языки .NET более высокого уровня, например C#, компилируются до независимого от оборудования набора инструкций, который называется промежуточным языком (IL). При запуске приложений этот компилятор преобразует IL в машинный код, который понимает обработчик. JIT-компиляция происходит на том же компьютере, на котором будет выполняться код.
Так как JIT-компиляция происходит во время выполнения приложения, время компиляции является частью времени выполнения. Таким образом, JIT-компиляторы должны поддерживать баланс между временем оптимизации кода и экономии, к которой может привести результирующий код. Но JIT-компилятор знает фактическое оборудование и может освободить разработчиков от поставки различных реализаций для различных платформ.
JIT-компилятор .NET может выполнять многоуровневую компиляцию, что означает возможность перекомпиляции отдельных методов во время выполнения. Эта функция позволяет быстро компилировать, сохраняя при этом возможность создания высокоспециализированной версии кода для часто используемых методов.
Дополнительные сведения см. в статьях Управляемый процесс выполнения и .
Компилятор AOT
По умолчанию большинство рабочих нагрузок .NET являются JIT-компилятором, но .NET предлагает две формы компиляции на момент времени (AOT):
- Для некоторых сценариев требуется 100-процентная компиляция AOT. Примером может служить iOS.
- В других сценариях большая часть кода приложения компилируется с помощью AOT, но для некоторых частей используется JIT-компилятор. Некоторые шаблоны кода не распознаются AOT (например, универсальные шаблоны). Примером такой формы компиляции AOT является параметр публикации . Такая форма AOT позволяет использовать преимущества компиляции без ее недостатков.
Автоматическое управление памятью
Сборщик мусора (GC) управляет выделением и освобождением памяти для приложений. Каждый раз, когда код создает новый объект, среда CLR выделяет память для объекта из . Пока в управляемой куче есть доступное адресное пространство, среда выполнения продолжает выделять пространство для новых объектов. Когда остается недостаточное свободное пространство адресов, сборщик мусора проверяет наличие объектов в управляемой куче, которые больше не используются приложением. Затем эта память освобождается.
GC — это одна из служб CLR, которая помогает обеспечить безопасность памяти. Программа является безопасной по памяти, если она обращается только к выделенной памяти. Например, среда выполнения гарантирует, что приложение не обращается к невыделенной памяти за пределами границ массива.
Дополнительные сведения о сборке мусора см. в статьях Автоматическое управление памятью и Основы сборки мусора.
Работа с неуправляемыми ресурсами
Иногда код должен ссылаться на неуправляемые ресурсы. Неуправляемые ресурсы — это ресурсы, которые не обслуживаются средой выполнения .NET автоматически. Например, к неуправляемым ресурсам относятся дескрипторы файлов. Объект FileStream — управляемый, но он ссылается на дескриптор файла, который является неуправляемым ресурсом. После окончания работы с FileStream нужно явным образом освободить дескриптор файла.
В среде .NET объекты, которые ссылаются на неуправляемые ресурсы, реализуют интерфейс IDisposable. После окончания работы с объектом вызовите метод объекта, который отвечает за освобождение неуправляемых ресурсов. В языках .NET имеется удобная инструкция (C#, F#, VB), которая обеспечивает вызов метода .
Дополнительные сведения см. в разделе Очистка неуправляемых ресурсов.
NET Framework – для чего он нужен и можно ли удалить
Мы уже выяснили, что многие программы не будут нормально работать без кое-каких дополнительных модулей, таких как NET Framework. Пользователи Winfows 7/10, наверняка, не раз встречались с этим компонентом, однако вряд ли задумывались о его роли и выполняемых функциях. Спешим восполнить этот пробел.
Итак, что такое Microsoft .NET Framework, для чего он нужен и можно ли без него обойтись? Если говорить простым языком, то NET Framework представляет собой набор DLL-библиотек или универсальный программный код, используемый разными программами. Правда, такое определение вряд ли прольет достаточно света на тему предмета, поэтому мы немного углубимся в историю.
Дело в том, что изначально система Windows, как платформа, была ориентирована на язык программирования С, на котором должны были разрабатываться предназначенные для нее приложения. Однако этот язык оказался не слишком удобным и к тому же мало подходящим для создания сложных конструкций. Появление ОПП и С++ существенно упростило разработку программного обеспечения, но по мере появление новых операционных систем и моделей процессоров программисты всё чаще стали сталкиваться с проблемами несовместимости.
Нужна была некая общая платформа, позволявшая работать самым разным приложениям в разных версиях и редакциях Windows. На тот момент в системе уже имелся набор DLL-библиотек, но они опять же поддерживали только приложения, написанные на языке С. Имелись и более серьезные проблемы, которые предстояло решить Microsoft, например, неуправляемый код, препятствующий разграничению прав для запускаемых программ.
Решением стала интеграция виртуальной машины Java, разработанной компанией Sun и служивший как бы прослойкой между Windows, сторонними приложениями и аппаратной частью компьютера. Однако сотрудничество Microsoft и Sun оказалось недолгим, и в 2001 году компания Microsoft представила собственную универсальную платформу для разработки приложений, получившую название .NET Framework и поставившую точку в вопросе совместимости.
Будучи универсальным, модуль NET Framework позволяет запускать поддерживающие технологию NET программы не только на Windows, но и в других системах, причем программа может быть разработана на любом языке программирования, включая те языки, которая Windows не «понимает». Конечно, для работы такого ПО требуются определенные условия, но сам факт, что такое возможно, является большим плюсом платформы NET Framework.
На вопрос, что это за программа NET Framework и нужна ли она, мы, надо полагать, ответили. Можно ли ее удалить, скажем, ради экономии места на жестком диске? Да, за исключением той версии, которая поставляется вместе с Windows. Делать это, однако, не рекомендуется без особой нужды, так как некоторые сторонние программы, зависящие от NET Framework, могут перестать запускаться.
Лицензирование
Платформы управляемого кода Microsoft и их компоненты лицензируются следующим образом:
Составная часть | Лицензия |
---|---|
.NET Framework (распространяемый пакет) | Проприетарное программное обеспечение |
Эталонный исходный код .NET Framework 4.5 и более ранних версий | Справочная лицензия Microsoft (Ms-RSL) |
Справочный исходный код .NET Framework 4.6 | Лицензия MIT |
Мононуклеоз | Лицензия MIT |
.NET (ранее .NET Core) CoreFX, CoreCLR и CLI | Лицензия MIT |
.NET Micro Framework | Лицензия Apache 2.0 |
Платформа компилятора .NET (кодовое имя Roslyn) | Лицензия MIT |
ASP.NET MVC , веб-API и веб-страницы ( Razor ) | Лицензия Apache 2.0 |
ASP.NET Core | Лицензия Apache 2.0 |
Набор средств управления ASP.NET Ajax | Лицензия BSD |
ASP.NET SignalR | Лицензия Apache 2.0 |
Entity Framework | Лицензия Apache 2.0 |
NuGet | Лицензия Apache 2.0 |
.NET 5.0 doesn’t replace .NET Framework
.NET 5.0 is the main implementation of .NET going forward and .NET Framework 4.x is still supported.
There are no plans to port the following technologies from .NET Framework to .NET 5.0, but there are alternatives in .NET 5.0:
Technology | Recommended alternative |
---|---|
Web Forms | ASP.NET Core Blazor or Razor Pages |
Windows Workflow (WF) | Open-source CoreWF or Elsa-Workflows |
Windows Communication Foundation
The original implementation of Windows Communication Foundation (WCF) was only supported on Windows. However, there is a client port available from the .NET Foundation. It is entirely open source, cross platform, and supported by Microsoft. The core NuGet packages are listed below:
- System.ServiceModel.Duplex
- System.ServiceModel.Federation
- System.ServiceModel.Http
- System.ServiceModel.NetTcp
- System.ServiceModel.Primitives
- System.ServiceModel.Security
The community maintains the server components that complement the aforementioned client libraries. The GitHub repository can be found at CoreWCF. The server components are not officially supported by Microsoft. For an alternative to WCF, consider gRPC.
Прочее
Помимо глобальных улучшений платформы Microsoft также неплохо поработали над отдельными библиотеками.
Например, в новой версии дотнета сильно улучшилась поддержка десктопа. WinForms и WPF наконец-то получили все преимущества .NET Core — классный перфоманс, упаковка всего приложения в один .exe, работа без установленного на машине дотнета и… и нет, не кроссплатформенность. Все это работает только под Windows.
Помимо прочего, для десктопной разработки под Windows также добавили нормальный визуальный дизайнер, тулинг, новые контролы и улучшенную поддержку для старых. Словом — если вы разрабатываете приложения с использованием WinForms или WPF, ваша жизнь станет лучше.
С кроссплатформенностью все осталось по-прежнему. Релиз MAUI перенесли на .NET 6, а других решений для кроссплатформенного десктопа Microsoft пока не предлагает
Так что продолжаем использользовать Авалонию (или можно обратить свое внимание на Uno Platform — перспективно выглядящий фреймворк для разработки на все и сразу)
Еще больше улучшений появилось для фулстек веб-разработки с использованием Blazor. Главное из них это улучшения производительности — Microsoft обещают, что WebAssembly версия Blazor ускорится аж в три раза. Одной из основных причин такого роста производительности стал пререндер на стороне сервера. А еще добавили ленивую подгрузку зависимостей, изоляцию CSS/JS в рамках файла, новые контролы и многое другое. В общем, если вы собирались попробовать Blazor, но все никак не доходили руки — сейчас он выглядит куда более production-ready технологией.
Из оставшихся изменений заметнее всего смотрятся те, которые призваны помочь микросервисам и работе с облачными сервисами в целом. Здесь и , и улучшенная поддержка gRPC, и , и многое другое. Кстати, Azure полностью поддерживает .NET 5 со дня релиза.
А еще Microsoft выкатили Project Tye, который как раз является инструментом для удобного управления микросервисами
На текущий момент трудно сказать, стоит ли использовать Tye в продакшене, но обратить внимание и поиграться с ним в свободное время определенно нужно
2017
Поддержка .NET Core 2.0 продуктами Red Hat
Компания Red Hat 25 августа 2017 года объявила о планах обеспечить поддержку .NET Core 2.0 в рамках своего семейства Open Source технологий. .NET Core 2.0 позволяет создавать приложения .NET для различных платформ и развертывать их как на Red Hat Enterprise Linux, Red Hat OpenShift Container Platform, так и на других платформах.
.NET Core 2.0
.NET Core 2.0 теперь входит в состав Red Hat Developer Program, поддерживает .NET Standard 2.0, что обеспечивает оптимизированную совместимость с платформами и переносимость при использовании любых сред исполнения и рабочих нагрузок .NET. Она также помогает оптимизировать упаковку приложений за счет более удобного доступа к стеку для разработки веб-приложений ASP.NET Core 2.0 и ORM-прослойке Entity Framework Core 2.0. Кроме того, при использовании с Red Hat Enterprise Linux или Red Hat OpenShift Container Platform .NET Core 2.0 позволяет создавать современные контейнеризированные приложения на языках программирования C#, F# и Visual Basic.
Поддержка в продуктах Red Hat
Red Hat предложит полную поддержку .NET Core корпоративного уровня в рамках своего портфолио, предоставив разработчикам возможность использовать .NET Core 2.0 для разработки и развертывания приложений на следующих платформах:
- Red Hat Enterprise Linux
- Red Hat Enterprise Linux Atomic Host
- Red Hat OpenShift Container Platform
- Red Hat OpenShift Online
- Red Hat OpenShift Dedicated
- Red Hat OpenStack Platform
Доступность
В ближайшее время .NET Core 2.0 станет доступна для соответствующих продуктов Red Hat в виде пакетов в репозитории (rpm) или в качестве контейнерных образов.
За счет поддержки .NET на платформе Red Hat Enterprise Linux мы можем предложить рынку полностью открытую платформу разработки, обеспеченную поддержкой корпоративного уровня и гарантирующую надежную промышленную эксплуатацию рабочих нагрузок .NET на системах, отличных от Windows, — заявил Гарри Моуэр (Harry Mower), директор направления Developer Programs, Red Hat. |
Релиз .NET Core 2.0
14 августа 2017 года корпорация Microsoft анонсировала релиз .NET Core 2.0 — модульной платформы .NET с открытым исходным кодом. Данная версия обеспечивает значительное повышение производительности Runtime и Framework. Кроме этого реализована поддержка .NET Standard 2.0, которая более чем удваивает количество API, доступных для разработчиков. .NET Core 2.0 уже доступен в Azure Web Apps.
Список основных изменений:
- Runtime:
- Значительные улучшения производительности Runtime и Framework;
- Внедрён .NET Standard 2.0;
- Обеспечена поддержка еще 6 платформ, включая Debian Stretch, macOS High Sierra и др.;
- RyuJIT — это x86 JIT в .NET Core 2.0;
- Обеспечена предварительная поддержка Linux ARM32.
-
SDK:
- dotnet restore теперь является неявной командой;
- Проекты NET Core и .NET Standard могут ссылаться на пакеты и проекты .NET Framework NuGet;
- .NET Core SDK может быть собран из репозитория открытого исходного кода.
-
Visual Studio:
- Live Unit Testing поддерживает .NET Core;
- Реализованы улучшения навигации по коду;
- C# Azure Functions поддерживаются «из коробки»;
- Обеспечена поддержка CI/CD в контейнерах.
Разработчики могут установить .NET Core 2.0 вместе с .NET Core 1.0 и 1.1. Существующие .NET-приложения, при необходимости, могут продолжать использовать Runtime 1.0 и 1.1.
Исходные тексты компонентов .NET Core распространяются под лицензиями MIT и Apache 2, ASP.NET Core поставляется под лицензией Apache 2. Кроме Windows, заявлена поддержка Red Hat Enterprise Linux 7, CentOS 7, Debian 8/9, Fedora 25/26, SUSE Linux Enterprise Server 12 SP2+, openSUSE 42.2+, Oracle Linux 7, Ubuntu 14.04/16.04/17.04, Linux Mint 17/18, macOS 10.12/10.13.
Презентация версии .NET Core 2.0, 14 августа 2017 года.
.NET Framework 1.1
Версия 1.1 — это первое незначительное обновление .NET Framework. Он доступен отдельно как распространяемый пакет или в комплекте для разработки программного обеспечения и был опубликован 3 апреля 2003 года. Он также является частью второго выпуска Visual Studio .NET 2003 . Это первая версия .NET Framework, которая будет включена в операционную систему Windows и поставляется вместе с Windows Server 2003 . Основная поддержка .NET Framework 1.1 закончилась 14 октября 2008 года, а расширенная поддержка закончилась 8 октября 2013 года. .NET Framework 1.1 является последней версией, поддерживающей Windows NT 4.0 , и обеспечивает полную обратную совместимость с версией 1.0, за исключением редких случаев, когда приложение не запустится, потому что оно проверяет номер версии библиотеки.
Изменения в 1.1 включают:
- Встроенная поддержка мобильных элементов управления ASP.NET , которая ранее была доступна как надстройка.
- Позволяет сборкам Windows Forms выполняться в частично доверенном режиме из Интернета.
- Включает безопасность доступа для кода в приложениях ASP.NET
- Встроенная поддержка ODBC и Oracle Database , которая ранее была доступна как надстройка.
- .NET Compact Framework , версия .NET Framework для небольших устройств
- Поддержка интернет-протокола версии 6 ( IPv6 )
.NET Framework 1.1 поддерживается в Windows 98 , ME , NT 4.0 , , XP , Server 2003 , Vista и Server 2008 .
.NET-код
Давайте теперь посмотрим на .NET-код, и для этого откроем командную строку. Конечно, я мог бы показать вам код в Visual Studio, но мне нравится работать именно через командную строку. Это всё равно, что копаться под капотом автомобиля: значительно лучше видно, как он устроен. Итак, я создаю папку и ввожу в ней команду . В результате на экран выводится список возможных шаблонов и их краткие имена. По большому счёту, это то же самое, что команда File — New Project в Visual Studio. Самое интересное, что здесь можно добавлять свои шаблоны, то есть если я создам опенсорсный проект scott, можно будет ввести команду . Изначально в доступны WPF, Windows Forms, специальный проект для Worker, четыре различных плагина для тестирования, а также множество других шаблонов.
Попробуем ввести команду , а затем откроем текст созданной таким образом программы в блокноте.
Добавим там команду .
Её исполнение будет приостанавливать исполнение программы. Попробуем вначале запустить программу без этой новой команды. Как видим, вывод простого Hello world занимает у нас 2–3 секунды. Давайте разберёмся, почему так долго. Взглянем на содержимое нашей папки с демкой (команда ): как видим, в ней есть папка . Нас будет интересовать исполняемый файл . Если мы запустим его, то Hello world будет выведено практически мгновенно. То есть команда явно делает что-то ещё помимо исполнения собственно файла программы. Интересно, что в папке с исполняемым файлом также лежит библиотека myweirddemo.dll. Если выполнить , то мы снова увидим на экране Hello world. Это значит, что программа на самом деле находится в этой библиотеке, а exe-файл сделан исключительно для вашего удобства и спокойствия. В прошлых версиях .NET exe-файл появлялся только после выполнения команды publish.
Итак, вернёмся к . Почему исполнение этой команды занимает больше секунды для такой простой программы? Дело в том, что она вначале вызывает , затем и лишь затем обращается к dll-файлу программы. Давайте теперь попробуем выполнить нашу программу с добавленной командой . Как и ожидалось, программа выводит на экран Hello world, а затем приостанавливает выполнение в ожидании дополнительных команд. Пока она ожидает, откроем Process Explorer — это продвинутый вариант Task Manager, который можно скачать на Sysinternals.
Мы видим дерево запущенных процессов, в котором можно найти процесс нашей команды.
Оговорюсь, что для работы с .NET вовсе не обязательно знать всю ту подноготную, которую мы с вами сейчас исследуем. Но, на мой взгляд, всегда полезно понимать, как работает устройство, которым вы пользуетесь. Чтобы вызвать такси, вовсе не обязательно знать, как устроен автомобиль, но это знание может оказаться полезным, если автомобиль сломается.
Итак, мы видим, что работающий сейчас процесс .NET расположен в .
Перейдём к его местоположению в командной строке
Обратите внимание, что для перехода к другому каталогу я пользуюсь командой , а не , она значительно удобнее, поскольку не требует вводить имя каталога целиком. Далее, выполним команду , это откроет Explorer, и мы увидим содержимое папки
Здесь будет необходимо небольшое отступление. Прошлые версии .NET работали только под Windows, не были опенсорсными и не поддерживали параллельное выполнение.
Достоинства
- Вся платформа .NET основана на единой объектно-ориентированной модели. Что это значит? Дело в том, что все сервисы, интерфейсы и объекты, которые платформа предоставляет разработчику объединены в единую иерархию классов. Другими словами, все, что может вам потребоваться при создании приложений под платформу .NET будет всегда у вас под рукой. Причем, все это сгруппировано очень удобно и интуитивно понятно.
- Приложение, написанное на любом .NET-совместимом языке является межплатформенным (в идеале). Почему в идеале? Дело в том, что приложение, написанное, скажем, на том же C#, не зависит от платформы, на которой будет выполняться, но зато зависит от наличия платформы .NET. Но согласитесь, что намного легче один раз портировать архитектуру .NET под какую либо систему, после чего без проблем запускать абсолютно любое .NET приложение. Но в настоящий момент платформа .NET портирована только на семейство операционных систем Windows, в том числе на мобильные системы MS Windows mobile.
- В состав платформы .NET входит т.н. «сборщик мусора», который освобождает ресурсы. Таким образом, приложения защищены от утечки памяти и от необходимости освобождать ресурсы. Это делает программирование более легким и более безопасным.
- Приложения .NET используют метаданные, что позволяет им не пользоваться системным реестром Windows.
- Любое .NET приложение является автономным, в том смысле, что не зависит от других программ, в частности от ОС. Установка приложения написанного на одном из .NET языках может быть произведена обычным копированием файлов (исключение составляет создание ярлыков в меня «Пуск» и др. местах).
- Приложения .NET используют безопасные типы, что повышает их надежность, совместимость и межплатформенность.
- Приложение, написанное на любом .NET языке взаимодействует с единой моделью обработки ошибок, что значительно упрощает этот нудный процесс.
- Приложения написанные на разных могут легко взаимодействовать. Например, серверная часть может быть написана на C#, а клиентская на Visual Basic.
- .NET приложения могут быть сертифицированы на безопасность. Это является особенность промежуточного кода, в который преобразуются все .NET приложения.
- Абсолютно все ошибки обрабатываются механизмом исключительных ситуаций. Это позволяет избежать разногласия, который иногда возникал при программировании под Win32.
- Повторное использование кода стало еще удобнее. Это связано с тем, что промежуточный язык MSIL не зависит от языка программирования. Например, вы можете написать программу на C#, а патч к ней писать уже, скажем, на J#.
Особые соображения
Текущие активы, которые используются в подходе нетто-нетто, определяются как активы, которые являются дебиторскую задолженность и запасы. По мере того как бизнес продает товарные запасы, а клиенты отправляют платежи, фирма сокращает объемы товарных запасов и дебиторскую задолженность. Эта способность собирать наличные – истинная ценность бизнеса согласно подходу нетто-нетто.
Оборотные активы уменьшаются на текущие обязательства , такие как кредиторская задолженность, для расчета чистых оборотных активов. Долгосрочные активы и обязательства исключаются из этого анализа, который фокусируется только на денежных средствах, которые фирма может генерировать в течение следующих 12 месяцев.
Mono
Mono является с открытым кодом, которая обычно используется в тех случаях, когда необходима небольшая среда выполнения. Это среда выполнения, которая может работать в приложениях Xamarin на Android, Mac, iOS, tvOS и watchOS. Она предназначена преимущественно для приложений, предусматривающих компактную разработку.
Она поддерживает все текущие опубликованные версии .NET Standard.
Исторически Mono реализовывала крупный API .NET Framework и эмулировала некоторые из наиболее популярных возможностей в Unix. Иногда она использовалась для запуска приложений .NET, которые применяют эти возможности в Unix.
Mono обычно используется с , но также располагает полным , который используется на таких платформах, как iOS.
См. документацию по Mono.
Какие полезные ресурсы/книги могли бы посоветовать?
ОЛЕГ КИРАСОВ: Из русскоязычных источников могу упомянуть Habr, где удобно читать переводы со ссылками на первоисточник. Из книг, на мой взгляд, обязательны к прочтению «CLR via C#» Джеффри Рихтера, а также «Алгоритмы» и «Руководство по разработке» Стивена С. Скиена.
ДМИТРИЙ АЛЕКСЕЙЧИК: Из литературы могу посоветовать «Паттерны проектирования на платформе .NET» и «Design Patterns: Elements of Reusable Object-Oriented Software». Если вам нравятся вебинары, то посетите вот этот сайт, а если все же больше любите читать, то здесь можно найти статьи .NET-разработчиков со всего мира.
Что такое ASP.NET
ASP.NET представляет собой серверную среду веб-приложений с открытым исходным кодом, которая позволяет программистам создавать динамические веб-сайты, веб-приложения и веб-службы. Он также позволяет писать программы на любом языке поддержки .NET. Новейшая технология ASP.NET называется ASP.NET Core. Это новая реализация ASP.NET как модульная структура с другими структурами, такими как платформа Entity.
ASP.NET предоставляет ряд моделей программирования для разработки приложений. Некоторые из них следующие.
ASP.NET MVC — Позволяет создавать веб-страницы в соответствии с моделью, моделью и дизайном контроллера.
Веб-страницы ASP.NET — Позволяет добавлять динамический код и доступ к данным непосредственно внутри разметки HTML
ASP.NET Web Forms — Позволяет создавать модульные страницы из компонентов с событиями пользовательского интерфейса
ASP.NET Web API — Позволяет разрабатывать веб-API поверх .NET Framework
Чего ожидать от .NET 5 в ближайшем будущем?
В .NET Framework ожидаются серьёзные изменения в ноябре 2020 года с выпуском .NET 5. Многие разработчики .NET задаются вопросом, что же произойдёт с .NET Framework, когда будет выпущена .NET 5.
Ожидается, что .NET 5 станет унифицированной платформой, вобравшей в себя лучшие функции .NET Framework и .NET Core. Кроме того, .NET 5 предоставит разработчикам программного обеспечения функции разработки IoT, мобильных и игровых консолей. В результате .NET 5 будет поддерживать стратегию Java «Написано один раз, запускается везде», что устраняет необходимость писать код для каждой платформы отдельно.
.NET 5 получит ещё несколько обновлений, в том числе:
- EF 6 будет заменён Entity Framework Core. Entity Framework Core будет иметь новые функции, такие как поддержка запросов LINQ, миграция схем, SQL Server и SQL Azure, SQLite, Azure Cosmos DB, MySQL, поддержка базы данных PostgreSQL и другие.
- ASP.NET будет заменён на ASP.NET Core. Это упростит создание облачных веб-приложений в Windows, macOS и Linux.
- ASP.NET Core MVC объединит ASP.NET MVC и веб-API. Он будет оптимизирован для использования в ASP.NET Core. Эта технология позволяет создавать динамические веб-сайты с помощью TDD-дружественной разработки и использования новейших веб-стандартов.
- MSIX заменит установщик пакетов MSI, чтобы обеспечить современные возможности упаковки для всех приложений, работающих в Windows.
- Часть API JsonDocument будет заменена на System.Text.Json.JsonDocument, который предоставляет более широкий спектр API.
- Blazor в ASP.NET для создания интерактивных пользовательских веб-интерфейсов, работающих на C #.
- Xamarin распространяется на создание приложений для iOS, Android, macOS и многих других.
- ML.NET — библиотека, используемая для машинного обучения, которая работает на языках программирования C #, F # и Python.
Предстоящая .NET 5 будет включать все необходимые библиотеки, API-интерфейсы и инструменты для создания полноценного кроссплатформенного программного обеспечения с открытым исходным кодом. Он открывает новую эру для роста .NET, переходя от устаревшей версии Windows к современной и многообещающей разработке с открытым исходным кодом.