В настоящее время, пытаясь узнать о стандарте .NET Platform, я обнаружил, что я очень смущен идеей "разных платформ".
Я постараюсь дать понять. То, что я сейчас сейчас рассматриваю в .NET Framework, заключается в том, что .NET грубо говоря, состоящий из CLR, BCL и поддерживающего программного обеспечения для загрузки CLR и обеспечения интерфейса между виртуальной машиной и базовой ОС.
Поэтому, когда мы кодируем .NET Framework, мы действительно нацеливаем некоторую версию фреймворка, потому что типы, которые мы используем из BCL, поставляются с каркасом и поэтому зависят от конкретной версии.
Теперь .NET Core совсем другой, как я понял. Это не все упаковано вместе. У нас есть CoreCLR, который представляет собой легкую виртуальную машину для запуска IL, CoreFX, которые являются библиотеками, правильно организованными как пакеты NuGet, и у нас был до сих пор DNX/DNVM/DNU, который обеспечивал поддержку таких вещей, как загрузка CoreCLR и взаимодействие с OS.
В любом случае, несмотря на то, что если мы установим фреймворк в Windows 7, Windows 8 или Windows 10, мы создадим код в рамке.
Теперь, в спецификации .NET Platform Standard, мы видим следующее определение:
Платформа - например..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?