Поделиться через


Общие сведения о .NET

.NET — это бесплатная кроссплатформенная платформа разработчика с открытым кодом для создания различных видов приложений. Он может запускать программы, написанные на нескольких языках, с C# самым популярным. Она использует высокопроизводительную среду выполнения, которая используется в рабочей среде многих высокомасштабируемых приложений.

Чтобы узнать, как скачать .NET и начать написание первого приложения, см. начало работы.

Платформа .NET разработана для обеспечения производительности, производительности, безопасности и надежности. Она обеспечивает автоматическое управление памятью с помощью сборщика мусора (GC). Это типобезопасный и безопасный для памяти, из-за использования GC и строгих компиляторов языка. Он предлагает параллелизм посредством async/await и примитивов Task. Он включает в себя большой набор библиотек, имеющих широкие функциональные возможности и оптимизированный для производительности в нескольких операционных системах и архитектурах микросхем.

.NET имеет следующие точки разработки :

  • Производительность является полноценной со средой выполнения, библиотеками, языком и инструментами, которые способствуют опыту работы разработчика.
  • безопасный код является основной вычислительной моделью, а небезопасный код обеспечивает дополнительную оптимизацию вручную.
  • статический и динамический код поддерживаются, что позволяет использовать широкий набор различных сценариев.
  • взаимодействие с нативным кодом и аппаратные встроенные функции обеспечивают низкие затраты и высокую точность (сырой доступ к API и инструкциям).
  • Код переносится на разных платформах (архитектура ОС и микросхем), а целевая платформа обеспечивает специализацию и оптимизацию.
  • Адаптация между доменами программирования (облачные, клиентские, игровые) включена с помощью специализированных реализаций модели программирования общего назначения.
  • отраслевые стандарты, такие как OpenTelemetry и gRPC, предпочитаются по сравнению с решениями bespoke.

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

Компоненты

.NET включает следующие компоненты:

  • Среда выполнения — выполняет код приложения.
  • Библиотеки — предоставляют утилитарные функции, такие как синтаксический анализ JSON.
  • Компилятор — компилирует исходный код C# (и других языков) в исполняемый код (время выполнения).
  • Пакет SDK и другие средства — включение создания и мониторинга приложений с помощью современных рабочих процессов.
  • Стеки приложений, такие как ASP.NET Core и Windows Forms, которые позволяют создавать приложения.

Среда выполнения, библиотеки и языки являются основными компонентами стека .NET. Компоненты более высокого уровня, такие как средства .NET и стеки приложений, такие как ASP.NET Core, создаются на основе этих основных компонентов. C# — это основной язык программирования для .NET, и большая часть .NET написана на C#.

C# является объектно-ориентированным, и среда выполнения поддерживает ориентацию объектов. Для C# требуется сборка мусора, и среда выполнения предоставляет сборщик мусора с отслеживанием. Библиотеки (а также стеки приложений) формируют эти возможности в понятиях и объектных моделях, которые позволяют разработчикам эффективно писать алгоритмы в интуитивно понятных рабочих процессах.

Основные библиотеки предоставляют тысячи типов, многие из которых интегрируются с языком C# и подпитывают его. Например, оператор foreach C# позволяет перечислять произвольные коллекции. Оптимизации на основе шаблонов позволяют обрабатывать коллекции, такие как List<T>, просто и эффективно. Вы можете поручить управление ресурсами сборщику мусора, но быструю очистку можно осуществлять с помощью IDisposable и прямой поддержки языка в инструкции using.

Поддержка одновременного выполнения нескольких задач является базовой для практически всех рабочих нагрузок. Это могут быть клиентские приложения, выполняющие фоновую обработку, сохраняя скорость реагирования пользовательского интерфейса, службы, обрабатывающие много тысяч одновременных запросов, устройства, реагирующие на множество одновременных стимулов, или высокопроизводительные компьютеры, параллелизирующие обработку операций с интенсивным вычислением. Асинхронная поддержка программирования — это первоклассная функция языка программирования C#, которая предоставляет ключевые слова async и await, которые упрощают запись и создание асинхронных операций, но по-прежнему получают полные преимущества всех конструкций потока управления, которые могут предложить язык.

Система типа предлагает значительное разнообразие, обеспечивая равное внимание безопасности, описательности, динамизму и взаимодействию с нативными элементами. Прежде всего, система типов позволяет использовать объектно-ориентированную модель программирования. Он включает типы, наследование (один базовый класс), интерфейсы (включая реализации методов по умолчанию) и виртуальный метод для обеспечения разумного поведения для всех уровней типов, которые позволяет ориентация объекта. универсальные типы — это всеохватывающая функция, которая позволяет специализировать классы к одному или нескольким типам.

Среда выполнения .NET обеспечивает автоматическое управление памятью с помощью сборщика мусора. Для любого языка модель управления памятью, скорее всего, является самой определяющей характеристикой. Это верно для языков .NET. .NET имеет самостоятельную настройку, трассировку GC. Цель состоит в обеспечении работы в режиме "без вмешательства" в общем случае, с возможностью настройки для более экстремальных рабочих нагрузок. Текущий GC является результатом многих лет инвестиций и опыта работы с множеством рабочих нагрузок.

Типы значений и блоки памяти, распределяемые в стеке, обеспечивают более прямой, низкоуровневый контроль над данными и взаимодействием с родной платформой, в отличие от типов, управляемых сборщиком мусора в .NET. Большинство примитивных типов в .NET, таких как целые типы, являются типами значений, а пользователи могут определять собственные типы с аналогичной семантикой. Типы значений полностью поддерживаются системой универсальных шаблонов .NET, что означает, что универсальные типы, такие как List<T>, могут предоставлять плоские, без издержек представления памяти для коллекций типов значений.

Reflection — это парадигма "программы в качестве данных", что позволяет одной части программы динамически запрашивать и вызывать другую с точки зрения сборок, типов и членов. Это особенно полезно для поздних моделей программирования и инструментов.

Исключения — это основная модель обработки ошибок в .NET. Исключения имеют то преимущество, что сведения об ошибке не нужно указывать в сигнатурах методов и обрабатываться каждым методом. Правильная обработка исключений необходима для надежности приложений. Чтобы предотвратить сбой приложения, вы можете намеренно обрабатывать ожидаемые исключения в коде. Аварийное приложение является более надежным и диагностическим, чем приложение с неопределенным поведением.

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

Пакет SDK и другие средства позволяют использовать современный интерфейс разработчика как на рабочем столе разработчика, так и для непрерывной интеграции (CI). Современный интерфейс разработчика включает возможность создавать, анализировать и тестировать код. Проекты .NET часто можно создавать с помощью одной команды dotnet build, которая управляет восстановлением пакетов NuGet и сборкой зависимостей.

NuGet — это диспетчер пакетов для .NET. Он содержит сотни тысяч пакетов, реализующих функциональные возможности для многих сценариев. Большинство приложений используют пакеты NuGet для некоторых функций. галерея NuGet поддерживается компанией Майкрософт.

Бесплатный и открытый исходный код

.NET является бесплатным, открытым исходным кодом и является проектом .NET Foundation. .NET поддерживается корпорацией Майкрософт и сообществом на GitHub в нескольких репозиториев.

Исходные файлы и двоичные файлы .NET лицензируются с лицензией MIT. Дополнительные лицензии применяются к Windows.

Поддержка

.NET поддерживается несколькими организациями, которые работают, чтобы обеспечить работу .NET в нескольких операционных систем и поддерживается в актуальном состоянии. Его можно использовать в архитектурах Arm64, x64 и x86.

Новые версии .NET выпускаются ежегодно в ноябре в соответствии с нашими релизами и политиками поддержки. Это обновляется ежемесячно во вторник исправлений (второй вторник), как правило, в 10 утра по Тихоокеанскому времени (PT).

Экосистема .NET

Существует несколько вариантов .NET, каждый из которых поддерживает другой тип приложения. Причина нескольких вариантов отчасти историческая, отчасти техническая.

Реализации .NET:

  • .NET Framework — исходная платформа .NET. Он предоставляет доступ к широким возможностям Windows и Windows Server. Она активно поддерживается и обслуживается.
  • Mono — исходное сообщество и опен-сорс .NET. Кроссплатформенная реализация .NET Framework. Активно поддерживается для Android, iOS и WebAssembly.
  • .NET (Core) — современная .NET. Кроссплатформенная и открытая реализация .NET, переосмыслена для облачного возраста, оставаясь значительно совместимой с .NET Framework. Активно поддерживается для Linux, macOS и Windows.

Дальнейшие действия