Введение в .NET

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

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

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

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

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

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

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

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

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

Исключения — это основная модель обработки ошибок в .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 УТРА Тихоокеанское время.

Экосистема .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.

Следующие шаги