Молодые не идут в .net. правда или нет?
Содержание:
.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.
Модели программирования
ASP.NET поддерживает ряд моделей программирования для создания веб-приложений:
- Веб-формы ASP.NET — платформа для создания модульных страниц из компонентов с обработкой событий пользовательского интерфейса на стороне сервера.
- ASP.NET MVC — позволяет создавать веб-страницы с использованием шаблона проектирования модель – представление – контроллер .
- Веб-страницы ASP.NET — упрощенный синтаксис для добавления динамического кода и доступа к данным непосредственно внутри разметки HTML.
- Веб-API ASP.NET — платформа для создания веб-API на основе .NET Framework .
- ASP.NET WebHooks — реализует шаблон Webhook для подписки и публикации событий через HTTP.
- SignalR — среда связи в реальном времени для двунаправленной связи между клиентом и сервером.
Другие расширения ASP.NET включают:
- Обработчик ASP.NET — компоненты, реализующие интерфейс. В отличие от ASP.NET Pages, у них нет файла разметки HTML, нет событий и другой поддержки. Все, что у них есть, — это файл кода (написанный на любом .NET-совместимом языке ), который записывает некоторые данные в HTTP-ответ сервера. Обработчики HTTP похожи на расширения ISAPI .
- ASP.NET AJAX — расширение с компонентами как на стороне клиента, так и на стороне сервера для написания страниц ASP.NET, включающих функциональность Ajax .
- ASP.NET Dynamic Data — расширение каркаса для создания веб-приложений, управляемых данными.
В каких целях был создан NET Framework?
На сегодняшний день .NET Framework необходим для корректной работы всё большего количества программных продуктов, без него разработчики уже не могут обходиться. Помимо удобства и места в рынке, компания преследовала цель расширить функционал рядового программиста, ведь у разных языков особые возможности и отличия.
Для ясности рассмотрим пример: javascript – прототипно-ориентированный сценарий, проще говоря, когда вы видите выполнение динамично меняющихся данных на странице в браузере, зачастую за это отвечает именно NET Framework.
PHP – можно сказать сердце большинства сайтов, он генерирует информацию, представленную на странице, но он не может менять контент асинхронно, то есть без обновления страницы, а если сочетать эти языки, то можно расширить функционал в разы.
Платформа совмещает в себе две части исполняющую среду и библиотеку классов. Исполняющая среда Common Language Runtime (CLR), как следует из названия, призвана взаимодействовать, выполнять серверные или обычные приложения.
Библиотека классов Framework Class Library – это база данных, то есть хранилище информации, всевозможных компонентов для работы со всеми элементами вашего компьютера.
Целью является позволить разработчику заниматься именно приложением, которое он пишет, за счет уже готовых классов, а не заниматься низкоуровневым программированием.
На самом деле .NET предусмотрена для персональных компьютеров на операционной системе Windows, но так же компания расширяет влияние на мобильные устройства, в которых возникает такая же необходимость всё упорядочить, поэтому Framework можно увидеть и на мобильных устройствах.
Аналоги конечно есть и на различных версиях Linux и других системах, благодаря разработкам независимых проектов, основными из которых являются Mono и Portable.NET.
Во избежание возможных проблем с недобросовестными разработчиками, которые имеют в своих целях украсть ваши персональные данные, CLR среда обрабатывает всё это и накладывает жесткие рамки, так работает управляемый код, взаимодействуя с Framework`ом. Соответственно тот код, который не обращается к платформе, называют неуправляемый.
Пакет .NET Framework может быть как бы запущенным изнутри, загружая CLR, неуправляемый код получает возможность создавать как свою программную среду, в которой он сможет пользоваться как средствами управляемого кода, так и неуправляемого. Windows предусмотрела возможность программиста самостоятельно разрабатывать среды выполнения, что делает Framework более гибким.
Чаще всего пользователи не сталкиваются с необходимостью установки этой платформы, так как она прилагается к большинству игр и к многим программным программам, устанавливаясь после завершения основного процесса, но если вы давно ничего не устанавливали, то стоит обновить в ручную. Проблем со скачиванием у вас не возникнет, так как все файлы и данные указаны на сайте производителя Microsoft.
Давайте рассмотрим несколько самых часто задаваемых вопросов, поскольку рядовому пользователю не придется сталкиваться с функциями самого приложения, но есть то, что следует знать об этой платформе.
Общая платформа
Значение зависит от контекста. Общая платформа .NET ссылается на библиотеки, входящие в . В этом случае общая платформа для — это те же библиотеки, что и .
Существуют и другие общие платформы. Общая платформа ASP.NET Core ссылается на библиотеки, включенные в , которые включают BCL и дополнительные API для использования веб-приложениями.
Для , общая платформа состоит из библиотек, которые содержатся в сборках, установленных в папке на компьютере, где выполняется приложение. Для сборки общих платформ включаются в приложение.
Дополнительные сведения см. в разделе Подробные сведения о примитивах .NET Core, часть 2: общая платформа.
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, могут перестать запускаться.
Модели выполнения.
Приложения .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. Существуют и другие реализации для частей фреймворка
Хотя механизм выполнения описан спецификацией ECMA-ISO, другие его реализации могут быть затруднены из-за проблем с патентами ; Стандарты ISO могут включать в себя отказ от ответственности: «Обращается внимание на возможность того, что некоторые элементы этого документа могут быть предметом патентных прав. ISO не несет ответственности за идентификацию каких-либо или всех таких патентных прав»
Сложнее разработать альтернативы FCL, которые не описаны в открытом стандарте и могут подпадать под ограничения авторского права. Кроме того, части FCL имеют функции и поведение, специфичные для Windows, поэтому реализация на платформах, отличных от Windows, может быть проблематичной.
Некоторые альтернативные реализации частей фреймворка перечислены здесь.
- .NET Micro Framework — это платформа .NET для устройств с крайне ограниченными ресурсами. Он включает небольшую версию CLR и поддерживает разработку на C # (хотя некоторые разработчики могли использовать VB.NET , хотя и с некоторой долей взлома и с ограниченными функциями) и отладку (в эмуляторе или на оборудовании), оба с использованием Microsoft Visual Studio . Он также включает подмножество библиотеки классов .NET Framework (около 70 классов с примерно 420 методами), среду графического интерфейса пользователя , основанную на WPF, и дополнительные библиотеки, специфичные для встраиваемых приложений.
- Mono — это реализация CLI и FCL, которая предоставляет дополнительные функции. Это бесплатное программное обеспечение по лицензии MIT . Он включает поддержку библиотек ASP.NET, ADO.NET и Windows Forms для широкого спектра архитектур и операционных систем. Он также включает компиляторы C # и VB.NET.
- Portable.NET (часть DotGNU ) предоставляет реализацию CLI, частей FCL и компилятора C #. Он поддерживает различные процессоры и операционные системы. Проект был прекращен, последний стабильный релиз вышел в 2009 году.
- Инфраструктура общего языка с общим исходным кодом Microsoft — это реализация среды CLR. Однако последняя версия работает только на Windows XP SP2 и не обновлялась с 2006 года. Таким образом, она не содержит всех функций версии 2.0 .NET Framework.
- CrossNet — это реализация CLI и частей FCL. Это бесплатное программное обеспечение, использующее лицензию MIT с открытым исходным кодом .
Над какими интересными проектами на .NET работаете в компании?
ОЛЕГ КИРАСОВ: Каждому, кто работает в iTechArt, хорошо знакома аббревиатура SMG — Solution Management Gate. Так вот, это один из проектов нашей группы. Мы занимаемся его поддержкой. Для тех, кто не знает, SMG — внутренний веб-сервис, который помогает управлять проектами и процессами в компании. Например, планирование и управление ресурсами, тайм-менеджмент и многое другое. У каждого сотрудника компании есть профиль в SMG с контактной информацией и актуальной загрузкой.
Среди коммерческих проектов выделю Dealcloud. Это крупная платформа, которая ускоряет заключение сделок и устраняет присущие традиционным CRM-системам ограничения. Клиенты могут создавать и настраивать динамический пользовательский интерфейс для отслеживания данных и их взаимосвязи.
ЕВГЕНИЙ РАЗУМОВ: Наша группа работает над fintech-проектом ипотечного кредитования в Великобритании. Приложение построено на микросервисной архитектуре с использованием самого свежего стека. На проекте есть модули, написанные на .NET, Java, Python и Go. По-моему, это хороший пример, когда под каждую задачу используется набор тех технологий, которые лучше всего подходят для ее решения. Также у нас есть и проекты-долгожители, которым 5 лет и больше. И хотя некоторые из них по-прежнему используют .NET Framework, задачи от этого не менее интересные.
ДМИТРИЙ АЛЕКСЕЙЧИК: Мы также разрабатываем проект для рынка Великобритании, приложение для оценки кредитоспособности пользователя. Задача — за 60 секунд дать человеку ответ, может ли он получить кредит либо рассрочку на определенные виды товаров. Заказчику нравится, что платформа разрабатывается на .NET, его ведь использование подходов, методологии и шаблонов обеспечивает удобную поддержку проекта в будущем.
Сферы использования .NET
.NET становится всё более универсальной платформой. У себя я также использую .NET для веб-приложений. Его вполне можно разворачивать в облаке. Мы не успели рассмотреть использование .NET на мобильных устройствах, но если вы пользовались Xamarin, то вы уже имеете какое-то об этом представление. А в MAUI мы получим усовершенствованный вариант Xamarin, и с ним можно будет создавать кросс-платформенные приложения на .NET, которые смогут работать где угодно.
Стоит также сказать про сферу применения .NET, о которой часто забывают: игры. Возможно, вы знаете, что Unity работает на C#. Но помимо неё есть отличная опенсорсная платформа MonoGame. О них и о многом другом можно узнать на сайте .NET, там есть специальный раздел, посвященный разработке игр. На этом же сайте есть раздел о машинном обучении. Модели, созданные, скажем, в TensorFlow или ONNX можно преобразовывать в код на .NET. Так что если ваши коллеги занимаются машинным обучением и пишут на Python, вы вполне можете работать с ними, при этом оставаясь на .NET. Что касается десктопных приложений, .NET Core работает с WPF и WinForms.
Есть ещё одна очень интересная область использования .NET Core — это IoT, в частности, Raspberry Pi. Если вы загуглите dotnet raspberry pi и моё имя, то найдёте руководство по созданию кластера Kubernetes на Raspberry Pi.
На кластере запущены приложения ASP.NET. Этот пример демонстрирует, что .NET отлично работает на процессорах ARM. Чтобы дополнительно в этом убедиться, давайте вернёмся к нашей первой демке и выполним в её папке .
Этой командой мы только что создали на Windows приложение .NET для Raspberry Pi, и нам для этого понадобилось не больше минуты. Новый .NET написан так, чтобы вы могли работать с ним в среде, комфортной именно для вас. Главное, что эта платформа опенсорсная, и у неё очень дружелюбное сообщество. В разделе Community на сайте .NET всегда можно узнать о ближайших конференциях и встречах. Мы всегда рады новым людям, так что пишите нам в Twitter или Stack Overflow. Кроме того, в .NET-сообществе мы проводим онлайн-встречи, и стараемся охватить ими как можно больше часовых поясов, чтобы сделать их доступными для всех, в том числе для наших участников из России. Гости со всего мира выступают у нас с онлайн-докладами о .NET, и им можно задавать вопросы. Мы хотим, чтобы вся наша работа была на виду у сообщества и была максимально открытой для вас.
Сторонние фреймворки
При разработке с помощью ASP.NET не обязательно использовать стандартную модель разработки веб-форм. Примечательные фреймворки, разработанные для платформы, включают:
- Base One Foundation Component Library (BFC) — это среда RAD для создания баз данных .NET и приложений распределенных вычислений .
- DotNetNuke — это решение с открытым исходным кодом, которое предоставляет как структуру веб-приложений, так и систему управления контентом, которая обеспечивает расширенную расширяемость с помощью модулей, скинов и поставщиков.
- Castle MonoRail , MVC- фреймворк с открытым исходным кодом с моделью выполнения, аналогичной Ruby on Rails . Фреймворк обычно используется с Castle ActiveRecord , слоем ORM, построенным на NHibernate .
Как скачать NET Framework для Windows 7/10
Многие сторонние программы, требующие для своей работы наличие NET Framework той или иной редакции, способны инициировать скачивание и установку пакета, но целом ряде случаев этим придется заниматься самому пользователю. Найти и скачать NET Framework можно без проблем на официальном сайте Microsoft, перейдя по адресу www.microsoft.com/ru-ru/search?q=NET+Framework и выбрав нужную версию компонента.


Набор библиотек также доступен на сторонних ресурсах, например, на dlltop.ru/soft/135-microsoft-net-framework.

Что же касается процедуры установки, то она почти ничем не отличается от инсталляции большинства десктопных программ. Независимо от того, какую версию Windows вы используете, необходимо, чтобы на вашем компьютере был установлен включающий в себя ранние версии NET Framework 3.5 и отдельно последний на данный момент NET Framework версии 4.7.1.

Развитие Фреймворка
Программа Фреймворк прошла длительный период развития и неоднократных улучшений. Разработчики учитывали специфические задачи, которые усложнялись по ходу развития компьютерной техники. Подобные программы стали особенно востребованы в работе серверов.
Первую версию этой нужной программы выпустили еще в 2000 году. Ее применяли лишь на тех компьютерах, где работа обеспечивалась системами Windows Server 2003, а также Windows XP. После были представлены улучшенные варианты. В 2017 году была выпущена последняя версия Фреймворк 4.7, которая применяется для Windows 10. Сегодня без него не обходится почти любой компьютер.
Версии .NET
Существовало несколько различных .NET: просто .NET для приложений Windows, Xamarin для мобильных приложений, и кросс-платформенный .NET Core. Поскольку .NET не поддерживал параллельное выполнение, при переходе на более позднюю версию .NET работа приложения, использующего .NET, могла быть нарушена. Xamarin был основан на Mono, это написанная с нуля опенсорсная версия .NET, причём у её создателей не было доступа к исходникам .NET. Мы ещё о ней поговорим чуть позже. А .NET Core была создана специально для обеспечения микросервисов, она заточена под максимальное быстродействие бэкенда.
Ситуация, когда было три различных варианта .NET, была терпимой, но то, к чему мы переходим сейчас — однозначно шаг вперёд. Давайте разберёмся, как устроена новая система версий .NET. В нашей папке несколько различных версий .NET.
У меня установлена ознакомительная версия .NET 5.0, а также несколько версий .NET 2 и 3, в том числе 3.1 — версия с долгосрочной поддержкой. Вернёмся в папку нашей демки и введём команду .
Мы увидим, что сейчас мы используем .NET 5. Если мы теперь создадим новую папку для другого проекта, , и проверим версию, мы, как и следует ожидать, снова увидим .NET 5.
Взгляните на путь к выполняемому файлу: . В этом пути никак не указана версия .NET. Теперь выполним . Будет создан файл, который мы откроем в блокноте, и поменяем номер используемой версии .NET.
Обратите внимание, что в папке второй демки нет ничего, кроме этого файла. Если мы теперь снова проверим версию (), то увидим, что используется .NET 3.1.300
Затем вернёмся в папку первой демки ( и проверим версию там: в ней по-прежнему используется 5.0.100. Интересно, не правда ли? Перейдём на рабочий стол и проверим версию там: вновь 5.0.100. Всё дело в том, что у вас может быть множество различных экземпляров .NET. Это очень ценное свойство фреймворка.
В .NET 5 и 6 все три платформы объединены в платформу с единым SDK, единой BCL (базовая библиотека классов) и единым набором инструментов. С помощью этого нового .NET можно будет создавать кросс-платформенные UI, он будет отлично работать в контейнерах и крупномасштабных системах вроде Kubernetes. Что касается времени выхода .NET 5 и 6, новые версии будут выходить каждый год в ноябре, и каждый нечётный год это будут версии с долгосрочной поддержкой. Так что в этом году вы можете поэкспериментировать с .NET 5, а в следующем перейти на .NET 6.
Достоинства
- Вся платформа .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#.
Чего ожидать от .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 к современной и многообещающей разработке с открытым исходным кодом.