Microsoft продвигает .NET дальше к открытому исходному коду. Теперь у нас есть часть кода, которая фактически запускает программу .NET. Это означает, что можно начинать переход к кроссплатформенности .NET.
Способ, которым Microsoft подает .NET по каплям, хотя и огромными, сбивает с толку, если вы не являетесь экспертом по .NET. Вместо того чтобы открывать исходный код для существующего кода .NET, Microsoft сделала форк всего проекта.
.NETCore — это новый проект по созданию переносимой версии .NET. То, что у нас было до недавнего времени, — это CoreFX, библиотека базовых классов, которая постоянно растет, но все еще далеко не завершена. Теперь мы можем добавить к этому CoreCLR, который состоит из всего, что вам нужно для запуска программы IL, Intermediate Language — загрузчика, JITter, сборщика мусора и так далее. Вы можете думать об этом как о виртуальной машине, на которой выполняются программы .NET и
.NETCore = CoreFX + CoreCLR.
Библиотеки ASP.NET открываются в виде отдельного проекта, но это не код, стоящий за классическим ASP.NET, основанный на формах, а просто новые причудливые вещи.
Почему это важно?
Простая причина в том, что именно CoreCLR нуждается в наибольшей модификации, чтобы заставить .NET работать на других архитектурах. То есть сейчас время проекта по переносу .NET на другие платформы идет полным ходом. Процитируем блог .NET Framework:
«Сегодня .NET Core строится и работает под Windows. В течение следующих нескольких месяцев мы будем добавлять реализации компонентов для конкретных платформ для Linux и Mac. У нас уже есть некоторый код для Linux в .NET Core, но на самом деле мы просто приступаем к работе над нашими портами. Мы хотели сначала открыть код, чтобы все мы с самого начала могли насладиться кроссплатформенным путешествием ».
Наслаждайтесь, возможно, не подходящее слово.
Как комментирует mainhaxor на Reddit:
«Вау, реализация GC (сборщика мусора) представляет собой 1 файл (gc.cpp) длиной 35000 строк. Мои соболезнования разработчикам, которые поддерживали это».
Общий объем репо содержит примерно 2,6 миллиона строк кода, из которых JIT составляет 320 тыс. Строк, а GC — 55 тыс. Строк. По оценкам, когда .NETCore будет полностью загружен, он будет содержать около 5 миллионов строк кода. Как вы могли догадаться, CoreCLR представляет собой смесь C ++ и некоторого C #.
Что было и остается трудно решить, так это вопрос о том, когда .NETCore понадобится в рамках реального проекта. В блоге есть что сказать по этому поводу:
… вам может быть интересно, какие типы приложений вы можете создавать с его помощью. Мы работаем над двумя типами приложений, которые вы можете попробовать сегодня:
Веб-приложения и службы ASP.NET 5
Консольные приложения
ASP.NET 5 в настоящее время использует Mono для работы в Linux и Mac, хотя неясно, сколько людей на самом деле это делают — вероятно, очень мало. Упоминание о консольных приложениях, вероятно, связано с тем, что до сих пор WPF и WinForms фактически не являются частью .NETCore — другими словами, .NETCore не имеет пользовательского интерфейса, кроме класса консоли. Это ограничит его полезность. Было бы неплохо написать консольное приложение .NET, работающее под Windows, Linux и OSX, но сколько приложений .NET является консольными?
До сих пор консольные приложения демонстрировались в Windows, но, поскольку .NETCore еще не кроссплатформенный, ни на чем еще.
Вы должны задаться вопросом, что происходит.
Любой, кто использует .NET в Windows, не сделает шаг назад, чтобы использовать .NETCore без надежного пользовательского интерфейса. Затем есть тот факт, что все это было сделано ранее проектом Mono. Где теперь Mono? Не считая, пожалуй, редкого упоминания о «совместной работе».
Почему мы изобретаем велосипед?
Возможно, некоторые ответы станут ясны во время конференции .NET, онлайн-участие которой запланировано на март.
Больше информации
CoreCLR теперь с открытым исходным кодом
Статьи по Теме
Состояние .NET Core
Microsoft Open Sources .NET?
Массовый переход Microsoft на GitHub
Не выгружать .NET — метод Microsoft
Сброс .NET — безумие Microsoft
Microsoft Open Sources .NET?
.NET становится открытым исходным кодом
WPF жив!
Microsoft против разработчиков
Был ли .NET ошибкой?
Чтобы получать информацию о новых статьях на I Programmer, установите панель инструментов I Programmer, подпишитесь на RSS-канал, подпишитесь на нас в Twitter, Facebook, Google+ или Linkedin или подпишитесь на нашу еженедельную новостную рассылку.
Комментарии
Оставьте комментарий или просмотрите существующие комментарии с помощью Disqus
или отправьте свой комментарий по адресу: comments@i-programmer.info