Глоссарий по .NET

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

AOT

Компилятор AOT.

Аналогично JIT, этот компилятор также преобразует IL в машинный код. В отличие от JIT-компиляции AOT-компиляция происходит до выполнения приложения и обычно осуществляется на другом компьютере. Так как цепочки средств AOT не компилируются во время выполнения, им не нужно сокращать время, затрачиваемое на компиляцию. Это означает, что они могут тратить больше времени на оптимизацию. Так как контекстом AOT является все приложение, AOT-компилятор также выполняет межмодульное связывание и анализ всей программы. Это означает, что соблюдаются все ссылки и создается один исполняемый файл.

См. разделы CoreRT и .NET Native.

Модель приложения

API для конкретной рабочей нагрузки. Далее приводятся некоторые примеры.

  • ASP.NET
  • ASP.NET Web API
  • Entity Framework (EF)
  • Windows Presentation Foundation (WPF)
  • Windows Communication Foundation (WCF)
  • Windows Workflow Foundation (WF)
  • Windows Forms (WinForms)

ASP.NET

Исходная реализация ASP.NET, которая поставляется с платформа .NET Framework, также известная как ASP.NET 4.x и ASP платформа .NET Framework.

Иногда ASP.NET используется как общий термин, который относится как к исходной платформе ASP.NET, так и к ASP.NET Core. Значение, которое термин содержит в любом конкретном экземпляре, определяется контекстом. Обратитесь к ASP.NET 4.x в тех ситуациях, когда важно избежать путаницы, поскольку термин ASP.NET может относиться к обеим реализациям.

См. документацию по ASP.NET.

ASP.NET Core

Кроссплатформенная, высокопроизводительная, основанная на открытом исходном коде реализация ASP.NET.

См. документацию по ASP.NET Core.

сборка

Файл .dll или .exe, который содержит коллекцию API-интерфейсов, вызываемых приложениями или другими сборками.

Сборка содержит такие типы, как интерфейсы, классы, структуры, перечисления и делегаты. Сборки в папке bin проекта иногда называют двоичными файлами. См. также библиотека.

BCL

Библиотека базовых классов.

Набор библиотек, которые составляют пространства имен System.* (и в некоторой степени Microsoft*). BCL — это универсальная платформа низкого уровня, которая является основой платформ приложений более высокого уровня, например ASP.NET Core.

Исходный код BCL для .NET содержится в репозитории среды выполнения .NET. Большинство этих API-интерфейсов BCL также доступны в .NET Framework, поэтому вы можете считать этот исходный код вилкой исходного кода BCL .NET Framework.

Следующие термины часто относятся к одной коллекции API, которая называется BCL:

CLR

Общеязыковая среда выполнения.

Точное значение зависит от контекста. Среда CLR обычно относится к среде выполнения платформа .NET Framework или среды выполнения .NET.

Среда CLR обрабатывает выделение памяти и управление ею. Среда CLR также является виртуальной машиной, которая не только выполняет приложения, но и создает, а также компилирует код с помощью JIT-компилятора.

Реализация CLR для .NET Framework доступна только для Windows.

Реализация СРЕДЫ CLR для .NET (также известная как Core CLR) создается из той же базы кода, что и среда CLR платформа .NET Framework. Первоначально Core CLR была средой выполнения Silverlight и была разработана для работы на нескольких платформах, в частности в Windows и OS X. Она по-прежнему является кросс-платформенной средой выполнения, включая поддержку многих дистрибутивов Linux.

См. также раздел Среда выполнения.

Core CLR

Среда CLR для .NET.

См. раздел CLR.

CoreRT

В отличие от среды CLR CoreRT не является виртуальной машиной, поэтому она не включает средства для создания и выполнения кода "на лету", так как в ней отсутствует JIT. Но она поддерживает сборку мусора и возможности идентификации типа среды выполнения (RTTI) и отражения. Ее система типов разработана таким образом, что метаданные для отражения не требуется. Отсутствие необходимости в метаданных обеспечивает наличие цепочки инструментов AOT, которая может связать лишние метаданные и (что более важно) определить код, который приложение не использует. CoreRT находится в разработке.

См. разделы Введение в CoreRT и Лаборатория среды выполнения .NET.

кросс-платформенный

Возможность разрабатывать и выполнять приложение, которое можно использовать в разных операционных системах, например в Linux, Windows и iOS, без необходимости переписывать его специально для каждой из них. Это позволяет повторно использовать код и обеспечивает согласованность приложений на разных платформах.

См. раздел Платформа.

экосистема

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

Термин "экосистема .NET" отличается от аналогичных терминов, таких как "стек .NET", тем, что включает сторонние приложения и библиотеки. Ниже приведен пример термина в предложении.

  • "Платформа .NET Standard была создана для того, чтобы повысить согласованность в экосистеме .NET".

платформа

Обычно это всеобъемлющая коллекция API-интерфейсов, которая упрощает разработку и развертывание приложений, основанных на определенной технологии. В этом общем смысле ASP.NET Core и Windows Forms являются примерами платформ приложений. Слова "платформа" и библиотека часто используются как синонимы.

Слово "платформа" имеет разное значение в следующих терминах.

Иногда "платформа" относится к реализации .NET.

Библиотеки платформы

Значение зависит от контекста. Может ссылаться на библиотеки платформы для .NET, в этом случае он ссылается на те же библиотеки, к которым ссылается BCL . Он также может ссылаться на библиотеки платформы ASP.NET Core , которые создаются на основе BCL и предоставляют дополнительные API для веб-приложений.

GC

Сборщик мусора.

Сборщик мусора является реализацией автоматического управления памятью. Сборщик мусора освобождает память, занятую объектами, которые больше не используются.

См. Сборка мусора.

IL

Промежуточный язык.

Языки .NET более высокого уровня, например C#, компилируются до независимого от оборудования набора инструкций, который называется промежуточным языком (IL). IL иногда называют MSIL (Microsoft IL) или CIL (общим IL).

JIT

JIT-компилятор.

Аналогично AOT, этот компилятор преобразует IL в машинный код, который понимает обработчик. В отличие от AOT, JIT-компиляция происходит по требованию и осуществляется на том же компьютере, где должен выполняться код. Так как компиляция JIT возникает во время выполнения приложения, время компиляции является частью времени выполнения. Таким образом, JIT-компиляторы должны поддерживать баланс между временем оптимизации кода и экономии, к которой может привести к результирующий код. Но JIT знает фактическое оборудование и может освободить разработчиков от поставки различных реализаций.

реализация .NET

Реализация .NET включает в себя:

  • Одна среда выполнения или несколько. Примеры: CLR, CoreRT.
  • Библиотека классов, реализующая версию .NET Standard, и может включать дополнительные API. Примеры: списки BC для платформа .NET Framework и .NET.
  • (Необязательно) Одна платформа приложений или несколько. Примеры: ASP.NET, Windows Forms и WPF включены в платформа .NET Framework и .NET.
  • (Необязательно) Средства разработки. Некоторые средства разработки, являются общими для нескольких реализаций.

Примеры реализаций .NET:

Дополнительные сведения см . в разделе о реализации .NET.

библиотека

Коллекция интерфейсов API, которые могут быть вызваны приложениями или другими библиотеками. Библиотека .NET состоит из одной или нескольких сборок.

Слова "библиотека" и платформа часто используются как синонимы.

Mono

открытый код Реализация кроссплатформенной платформы.NET, которая используется при необходимости небольшой среды выполнения. Это среда выполнения, которая управляет приложениями Xamarin в Android, Mac, iOS, tvOS и watchOS и ориентирована в основном на приложения, требующие небольшого объема.

Она поддерживает все текущие опубликованные версии .NET Standard.

Исторически Mono реализовывала крупный API .NET Framework и эмулировала некоторые из наиболее популярных возможностей в Unix. Иногда используется для запуска приложений .NET, использующих эти возможности в Unix.

Mono обычно используется с JIT-компилятором, но также располагает полным статическим компилятором (заблаговременная компиляция), который используется на таких платформах, как iOS.

Дополнительные сведения см. в документации по Mono.

Собственный AOT

Режим развертывания, в котором приложение является автономным и заранее компилируется в машинный код во время публикации. Собственные приложения AOT не используют компилятор JIT во время выполнения. Они могут работать на компьютерах, на которых не установлена среда выполнения .NET.

Дополнительные сведения см. в статье о развертывании AOT в машинном коде.

.NET

.NET имеет два значения, и тот, который предназначен, зависит от контекста:

  • .NET можно использовать в качестве зонтичного термина для .NET Standard и всех реализаций и рабочих нагрузок .NET.
  • .NET чаще относится к кроссплатформенной, высокопроизводительной реализации .NET, которая использовалась для вызова .NET Core. Он также может называться .NET 5 (и .NET Core), а также более поздними версиями или просто .NET 5+.

Например, первое значение предназначено в фразах, таких как "реализации .NET". Второе значение предназначено в именах, таких как пакет SDK для .NET и .NET CLI. В отсутствие контекста, указывающего первое значение, предполагается, что второй смысл предназначен.

Более ранние версии .NET называются .NET Core 1–3.1. Номера версий пропускают 4, и версия, следующая за 3.1, называется .NET 5, удаляя "Core" из имени. Удаление "Core" было сделано, чтобы подчеркнуть, что эта реализация .NET является той, которая рекомендуется для всех новых разработок. Пропуск версии 4 был сделан, чтобы избежать путаницы этой новой реализации .NET с более старой реализацией, известной как платформа .NET Framework. Текущая версия платформа .NET Framework — 4.8.1.

".NET" всегда пишется полностью прописными буквами. Написание ".Net" не используется.

См. документацию по .NET.

Интерфейс командной строки.NET

Кроссплатформенная цепочка инструментов для разработки приложений и библиотек для .NET. Также называется интерфейсом командной строки .NET Core.

См. раздел .NET CLI.

.NET Core

См. раздел .NET.

.NET Framework

Реализация .NET, работающая только в Windows. Включает в себя общеязыковую среду выполнения (CLR), библиотеку базовых классов (BCL) и библиотеки платформы приложений, такие как ASP.NET, Windows Forms и WPF.

См. Руководство по .NET Framework.

.NET Native

Цепочка инструментов компилятора, которая создает машинный код в режиме AOT в отличие от режима JIT.

Компиляция происходит на компьютере разработчика, аналогично тому, как работает компилятор и компоновщик C++. Она удаляет неиспользуемый код и тратит больше времени на его оптимизацию. Она извлекает код из библиотек и объединяет их в исполняемый файл. Результатом является один модуль, который представляет все приложение.

UWP — это платформа приложений, поддерживаемая .NET Native.

См. документацию по .NET Native.

Пакет SDK для .NET

Набор библиотек и инструментов, позволяющих разработчикам создавать приложения и библиотеки для .NET. Также называется пакетом SDK для .NET Core.

Включает в себя .NET CLI для построения приложения, библиотеки и среды выполнения .NET для создания и запуска приложений и исполняемый файл dotnet (dotnet.exe), который выполняет команды CLI и запускает приложения.

См. раздел Обзор пакета SDK для .NET.

.NET Standard

Формальная спецификация API-интерфейсов .NET, которые доступны в каждой реализации .NET.

Спецификацию .NET Standard иногда называют библиотекой. Так как библиотека содержит реализации API-интерфейсов, а не только спецификации (интерфейсы), неверно называть .NET Standard "библиотека".

См. .NET Standard.

NGen

Создание образов в машинном коде.

Эту технологию можно считать постоянным JIT-компилятором. Как правило, он компилирует код на компьютере, где код выполняется. Но компиляция обычно происходит во время установки.

package

Пакет NuGet (или просто пакет) — это файл .zip с одной или несколькими сборками того же имени, а также дополнительными метаданными, такими как имя автора.

Файл .zip имеет расширение .nupkg и может содержать ресурсы, такие как файлы .dll и .xml файлы, для использования с несколькими целевыми платформами и версиями. При установке в приложении или библиотеке выбор соответствующих ресурсов осуществляется в зависимости от целевой платформы, указанной приложением или библиотекой. Ресурсы, которые определяют интерфейс, находятся в папке ref, а ресурсы, которые определяют реализацию, находятся в папке lib.

platform

Операционная система и оборудование, на котором она выполняется, например Windows, macOS, Linux, iOS и Android.

Ниже приведены примеры использования в предложениях.

  • ".NET Core — это кроссплатформенная реализация .NET".
  • "Профили PCL относятся к платформам Майкрософт, а .NET Standard не зависит от платформы".

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

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

POCO

POCO или обычный старый объект класса/CLR — это структура данных .NET, содержащая только открытые свойства или поля. PoCO не должен содержать других элементов, таких как:

  • оплаты
  • события
  • Делегаты

Эти объекты используются в основном в качестве объектов передачи данных (DTO). Чистый POCO не наследует другой объект или реализует интерфейс. Обычно POC-объекты используются с сериализацией.

среда выполнения

В целом среда выполнения для управляемой программы. Операционная система является частью среды выполнения, но не входит в среду выполнения .NET. Ниже приведены некоторые примеры сред выполнения .NET в этом смысле.

  • Общеязыковая среда выполнения (CLR)
  • .NET Native (для UWP)
  • Среда выполнения Mono

Словосочетание "среда выполнения" имеет разное значение в некоторых контекстах:

  • Среда выполнения .NET на странице загрузки .NET 5.

    Вы можете загрузить среду выполнения .NET или другие среды выполнения, например среду выполнения ASP.NET Core. Среда выполнения в этом случае — это набор компонентов, которые должны быть установлены на компьютере для запуска зависящего от платформы приложения на компьютере. Среда выполнения .NET включает CLR и общую платформу .NET, которая предоставляет BCL.

  • Библиотеки среды выполнения .NET

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

  • Идентификатор среды выполнения (RID).

    Среда выполнения здесь означает платформу ОС и архитектуру ЦП, на которой работает приложение .NET, например: linux-x64.

  • Иногда "среда выполнения" используется в смысле реализации .NET, как показано в следующих примерах:

    • "Различные среды выполнения .NET реализуют конкретные версии .NET Standard. ... Каждая версия среды выполнения .NET объявляет наибольшую версию поддерживаемой .NET Standard."
    • "Библиотеки, предназначенные для запуска в нескольких средах выполнения, должны нацелены на эту платформу". (ссылаясь на .NET Standard)

Общая платформа

Значение зависит от контекста. Общая платформа .NET ссылается на библиотеки, входящие в среду выполнения .NET. В этом случае общая платформа для .NET ссылается на те же библиотеки, к которым ссылается BCL .

Существуют и другие общие платформы. Общая платформа ASP.NET Core ссылается на библиотеки, включенные в среду выполнения ASP.NET Core, которые включают BCL и дополнительные API для использования веб-приложениями.

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

Дополнительные сведения см. в разделе Подробные сведения о примитивах .NET Core, часть 2: общая платформа.

стек

Набор программных технологий, которые используются совместно для сборки и запуска приложений.

"Стек .NET" относится к .NET Standard и всем реализациям .NET. Фраза "стек .NET" может ссылаться на одну реализацию .NET.

целевая платформа

Коллекция API-интерфейсов, которую использует приложение или библиотека .NET.

Приложение или библиотека могут быть предназначены для версии .NET Standard (например, .NET Standard 2.0), которая представляет собой спецификацию для стандартного набора API-интерфейсов во всех реализациях .NET. Приложение или библиотека могут также работать в версии конкретной реализации .NET. В этом случае они получают доступ к API-интерфейсам конкретной реализации. Например, приложение, предназначенное для Xamarin.iOS, получает доступ к предоставляемым Xamarin программам-оболочкам API iOS.

Для некоторых целевых платформ (например, платформа .NET Framework) доступные API определяются сборками, устанавливаемыми реализацией .NET в системе, которая может включать API платформы приложений (например, ASP.NET, WinForms). Для целевых платформ на основе пакетов API-интерфейсы платформы определяются пакетами, установленными в приложении или библиотеке.

См. Требуемые версии .NET Framework.

TFM

Моникер целевой платформы.

Стандартизированный формат маркера для указания целевой платформы приложения или библиотеки .NET. Целевые платформы обычно называются короткими именами, например net462. TFM длинной формы (например .NETFramework,Version=4.6.2, ) существуют, но обычно не используются для указания целевой платформы.

См. Требуемые версии .NET Framework.

UWP

универсальная платформа Windows.

Реализация .NET, которая используется для создания приложений Windows с поддержкой сенсорного ввода и программного обеспечения для Интернета вещей (IoT). Он предназначен для объединения различных типов устройств, которые могут потребоваться использовать, включая компьютеры, планшеты, телефоны и даже Xbox. UWP предоставляет много служб, таких как централизованный магазин приложений, среда выполнения (AppContainer) и набор API-интерфейсов Windows для использования вместо Win32 (WinRT). Приложения могут быть написаны на C++, C#, Visual Basic и JavaScript. При использовании C# и Visual Basic API .NET предоставляются .NET.

Рабочая нагрузка

Тип приложения, которое создает пользователь. Более общий по сравнению с моделью приложения. Например, в верхней части каждой страницы документации .NET, в том числе в этом, находится раскрывающийся список для рабочих нагрузок, который позволяет переключиться на документацию для веб-, mobile, Cloud, Desktop и Машинное обучение и данных.

В некоторых контекстах под рабочей нагрузкой понимается коллекция функций Visual Studio, которые можно установить для поддержки определенного типа приложения. См. пример в разделе Выбор рабочей нагрузки.

См. также