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

Как выполняются приложения .NET?

В .NET процесс выполнения кода включает два этапа: компиляция и выполнение.

Что такое обработка во время компиляции и выполнения?

В процессе компиляции компилятор переводит исходный код в код Microsoft Intermediate Language (MSIL). На этапе выполнения CLR содержит компилятор Just-In-Time (JIT), который преобразует код MSIL в собственный машинный код, который затем выполняется процессором. CLR использует метаданные и преобразует MSIL в собственный код.

Метаданные описывают типы, определения и подписи, которые используются средой выполнения во время выполнения. Среда выполнения находит и извлекает метаданные из файла, а также из библиотек базовых классов. (BCL) по мере необходимости во время выполнения. CIL — это абстрактный язык, используемый компилятором в качестве промежуточного звена между кодом программы и кодом сборки. Сборка общеязыковой инфраструктуры (CLI) создается путем сборки MSIL. Эта сборка представляет собой скомпилированную библиотеку кода двух типов: EXE и DLL. Типы EXE и DLL можно запускать в любой операционной системе с установленной средой CLR.

Что такое сборка?

Сборка похожа на jar-файлы, в .NET компилятор выдает исполняемые файлы в виде exe-файлов, которые можно запускать в любой операционной системе с установленной CLR.

Что такое JIT-компилятор?

Сегодня пользователь может выбирать из разных операционных систем с настраиваемой конфигурацией, что может быть проблематичным при запуске запущенных приложений. Компилятор JIT берет IL и гарантирует, что он будет работать на узле CLR, который преобразует MSIL в машинный код.

Я надеюсь, что эта статья помогла вам понять, что происходит, когда выполняется приложение .NET. КАК процесс выполнения разбит на два этапа, чтобы создать исполняемый файл, который компилируется один раз и может выполняться где угодно. Если вам понравилась эта статья, пожалуйста, дайте ей несколько лайков или оставьте комментарий ниже о том, как я мог бы улучшить. Еще раз спасибо!!!

Следующая статья: Создание приложения .NET в Ubuntu