2015-07-16 2 views
0

Может ли кто-нибудь объяснить мне, как работает компиляция и выполнение приложения Asp.net5.Asp.net 5 процесс компиляции с использованием dnvm

Я новичок в среде .NET

Пара вопросов , когда вы строите приложения с помощью VS 2015 (нажмите F5), этапов, которые я знаю, являются

  • код преобразуется в CIL , (То, что это его имя? Это Rosyln Компилятор )
  • Этот код CIL интерпретируется в машинный код

Теперь, что происходит, когда я запустить приложение с помощью DNVM,

1. how is it compiled ? 
    2. What does CoreClr do? 
    3. how is CoreClr different from Clr 
    4. What happens when we do dnu restore 
    5. what happens when we do dnx . exe 
    6. At what stage is the CIL generated , where is the CIL stored 
    7. At what stage the JIT is used? 

Благодаря

ответ

5

Прежде всего, DNVM не используется для компиляции и запуска вашего приложения. DNVM является аббревиатурой для DotNet Version Manager и используется для управления другой версией .NET. Например, у вас может быть одно приложение, которое использует .NET Core и другое приложение, использующее полную .NET Framework. Первая - оптимизированная облаком, кросс-платформенная версия последней и позволяющая развертывать среду выполнения вместе с вашим приложением. Подробнее here о различиях.

  1. Как скомпилировано? В Windows "Roslyn" используется для компиляции вашего приложения. В Linux/Mac в настоящее время используется Mono, но будет заменен на Roslyn после его поддержки на этих платформах.
  2. Что делает CoreCLR? CoreCLR - это среда выполнения для .NET Core.
  3. Каким образом CoreCLR отличается от CLR? CoreCLR - это среда выполнения для .NET Core и CLR - среда выполнения для .NET Framework.
  4. Что происходит, когда мы делаем dnu restore? Зависимости приложений загружаются и добавляются в каталог пакетов.
  5. Что происходит, когда мы делаем dnx . exe? Он будет искать файл project.json в текущей папке (обозначается точкой) и вызывать команду «exe», как это указано в файле project.json.
  6. На какой стадии генерируется CIL, где хранится CIL? При компиляции генерируется CIL. Когда вы делаете dnx . run, например, приложение встроено в память. Если вы, с другой стороны, делаете dnu build, он будет производить сборки (например, dll: s) для вашего приложения, в котором хранится CIL.
  7. На какой стадии используется JIT? JIT обозначает компиляцию Just-In-Time и выполняется, когда приложение выполняется. Он преобразует код CIL в собственный код конкретной платформы.

Дополнительную информацию можно найти в ASP.NET 5 documentation (незавершенное производство).

+0

Отличный ответ :) – davidfowl

+0

Спасибо @davidfowl! :) – Christian

+0

Спасибо :) за все подробности !!!!! – user336058