В настоящее время, пытаясь узнать о стандарте .NET Platform, я обнаружил, что я совершенно смущен идеей «разных платформ».Что такое платформы в .NET Platform Standard?
Я постараюсь сделать свою мысль понятной. То, что я сейчас сейчас рассматриваю в .NET Framework, заключается в том, что .NET, грубо говоря, составлен из CLR, BCL и поддерживающего программного обеспечения для загрузки CLR и обеспечения интерфейса между виртуальной машиной и базовой ОС.
Поэтому, когда мы кодируем .NET Framework, мы действительно нацеливаем некоторую версию фреймворка, потому что типы, которые мы используем из BCL, поставляются с каркасом и поэтому зависят от конкретной версии.
Теперь, .NET Core совсем другой, как я понял. Это не все упаковано вместе. У нас есть CoreCLR, который представляет собой легкую виртуальную машину для запуска IL, CoreFX, которые являются библиотеками, правильно организованными как пакеты NuGet, и у нас был до сих пор DNX/DNVM/DNU, который обеспечивал поддержку таких вещей, как загрузка CoreCLR и взаимодействие с ОПЕРАЦИОННЫЕ СИСТЕМЫ.
В любом случае, несмотря на то, что, если мы установим фреймворк на Windows 7, Windows 8 или Windows 10, то код в отношении рамки.
Теперь на .NET стандартной платформы спецификации мы видим следующее определение:
Platform - например .NET Framework 4.5, .NET Framework 4.6, Windows Phone 8.1, MonoTouch, UWP и т.д.
Также мы видим, что после того, как список платформ, который включает в себя
- .NET Framework 2.0 - 4.6
- Windows 8
- Windows Phone 8,1
- Silverlight 4, 5
- DNX на .NET Framework 4.5.1 - 4,6
- DNX на .NET Core 5.0
Теперь это меня смущает полностью. Я всегда, хотя: мы кодируем .NET Framework, и структура - это структура независимо от того, что.
Но здесь у нас есть эти платформы, которые включают платформу .NET, как только одна из многих платформ. У нас есть, например, Windows 8, но подождите минуту, запуск .NET в Windows 8 - это не то же самое, что работать с .NET на любой другой ОС? Почему он отделен от платформы .NET Framework 2.0 - 4.6?
У нас также есть DNX в качестве конкретной платформы. Это заставляет меня задуматься: платформа - это «вспомогательный материал», связанный с загрузкой виртуальной машины и предоставлением интерфейса с ОС? Или на платформе есть виртуальная машина?
В любом случае, как видно, я довольно смущен. Каковы эти платформы и как это относится к моему нынешнему пониманию .NET Framework? Кроме того, почему .NET Framework 2.0 - 4.6 описывается отдельно? Это не все описано здесь в некоторой версии .NET Framework, если только .NET Core?
Там нет * «виртуальной машины» * в .NET. – IInspectable
@IInpectable http://blogs.msdn.com/b/brada/archive/2005/01/12/351958.aspx «Итак, суть в том, что CLR и JVM находятся в одном классе, называете ли вы этот класс программные «виртуальные машины» «механизмы выполнения» зависят от вашей перспективы ». – Rob
Я всегда думал о CLR как о своей виртуальной машине. Часть программного обеспечения, которая действует как песочница, на которой выполняется приложение. Мы предоставляем этой VM байт-код IL, а включенный JIT-компилятор создает собственный код и запускает его в специальной изолированной программной среде. Хотя я никогда не изучал CLR в полной мере, документы на GitHub описывают его как «полную виртуальную машину высокого уровня, предназначенную для поддержки широкого спектра языков программирования и взаимодействия между ними». Это заставило меня поверить, что мое грубое понимание было разумным. – user1620696