Microsoft Open Sources .NET?


Похоже, Microsoft просто неожиданно отдала ферму. Конечно, поскольку это Microsoft, она ничего подобного не сделала. Что только что сделала Microsoft?

Microsoft недавно увидела смысл открытого исходного кода, но в основном там, где это приносит большую выгоду. Нельзя винить его за такое отношение, в конце концов, это не благотворительность.
Недавно сформированная основа .NET в настоящее время обслуживает компиляторы C # и Visual Basic (Roslyn), инструменты Visual F #, ASP.NET 5 и Entity Framework. Теперь вы можете добавить в список .NET Core Framework.
Фактически это означает, что то, что выглядит очень большой частью .NET, теперь имеет открытый исходный код.
Теоретически теперь у вас есть весь открытый исходный код, необходимый для запуска .NET-программы.
Конечно, большая проблема с большинством анонсов Microsoft заключается в том, чтобы понять, что не включено и в чем именно заключается сделка.
Похоже, мы получаем CLR, JIT, Framework, Garbage Collector и базовые библиотеки базовых классов .NET. На данный момент код CLR и JIT фактически недоступен, поэтому нам придется подождать и посмотреть, насколько он полезен.
Все это звучит здорово, но все немного сложнее.
Большой фрагмент, но не весь исходный каркас .NET доступен, но доступен только для чтения. Как комментирует Мигель де Икаса:
«Microsoft заявила, что в настоящее время они не планируют возвращать исправления или участвовать в разработке этой кодовой базы в стиле сообщества с открытым исходным кодом, поскольку требования к обратной совместимости в Windows очень высоки».
Так что не совсем открытый исходный код, как мы его знаем.
Конечно, вы все еще можете создать форк и развить его дальше, но ясно, что для Microsoft это все, что нужно.
В настоящее время их не так уж и много, и определенно нет WinForms, хотя, похоже, это обещано на будущее. У нас есть небольшое подмножество справочного источника .NET, который предназначен для помощи в отладке программ.
Как ни странно, что-то под названием .NET Core также является открытым исходным кодом. Мигель де Икаса объясняет:
«.NET Core — это переработанная версия .NET, основанная на упрощенной версии библиотек классов, а также на дизайне, который позволяет встраивать .NET в приложения».
На данный момент все, что есть в ядре, — это несколько новых библиотек:

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

Считыватель метаданных ECMA-335. Это хорошо настроенный низкоуровневый читатель метаданных, который позволяет Roslyn анализировать сборки.

SIMD поддерживает векторные типы. Набор основных векторных типов, которые используют инструкции ЦП с одной командой и несколькими данными (SIMD).

XML. Сюда входят API-интерфейсы DOM, такие как типы XDocument и XmlDocument, XLinq, а также соответствующие методы расширения XPath.

Так что на данный момент не очень много, практически ничего, но обещано больше.
Похоже, что для этой версии фреймворка Microsoft позволяет нам делать работу. Опять же, по словам Мигеля де Икаса, это:
«… усилие, при котором Microsoft будет полностью взаимодействовать с сообществом для развития, разработки и улучшения библиотек классов».
Похоже, что эта новая платформа будет кроссплатформенной, а ее целями станут Linux, MacOS, iOS и Android.
Эта диаграмма призвана помочь вам понять, что такое .NET Core, но есть некоторые аспекты, которые просто сбивают с толку:

Исходный фреймворк используется в качестве эталона для нового кроссплатформенного фреймворка, и Microsoft рассчитывает на помощь в его создании. Несомненно, Microsoft также приложит определенные усилия и поощрит сообщество разработчиков ПО с открытым исходным кодом, которое обещало не использовать какие-либо из своих патентов, чтобы прекратить использование новой структуры.
В частности, Microsoft хотела бы, чтобы к нему присоединилось сообщество Mono.
Конечно, Mono уже является .NET с открытым исходным кодом, который работает под Linux и другими операционными системами, созданными без какой-либо помощи Microsoft. Xamarin Мигеля де Икасы перенес его на iOS и Android — опять же без небольшой помощи со стороны Microsoft.
Так где же все это оставить Mono и Xamarin?
Сложно сказать. Мигель де Икаса утверждает, что новый код будет включен в Mono, а часть Mono найдет свое применение в .NET Core — почему? Неужто рынок поддержит только одну реализацию .NET?
Если бы я был Мигелем де Икаса или сообществом Mono, я думаю, я был бы очень зол на то, что только что сделала Microsoft.
Кроме того, есть части .NET, исходные коды которых не открываются.
Двумя наиболее заметными упущениями являются Silverlight и WPF.
Да нет WPF.
Причина в том, что Microsoft считает WPF частью операционной системы. О WPF можно сказать больше — WPF Lives! — но ключевым фактом является то, что это все еще закрытый исходный код.
То, что Silverlight даже не упоминалось, на самом деле не удивительно. Microsoft по-прежнему желает смерти Silverlight по причинам, связанным с защитой собственных альтернативных систем.
Суть в том, что у Microsoft есть код с открытым исходным кодом, который уже был доступен как Mono с открытым исходным кодом. Единственная разница в том, что это настоящий исходный код Microsoft.
Новое .NET Core должно быть кроссплатформенным проектом с открытым исходным кодом и в конечном итоге будет представлять будущее .NET — если мы все поддержим его и воспользуемся этим.
Это открытый исходный код, так как это может сделать только Microsoft.

Больше информации
.NET Core с открытым исходным кодом
Статьи по Теме
.NET становится открытым исходным кодом
Полная версия Visual Studio теперь бесплатна
WPF жив!
Microsoft и Xamarin совместно работают над внедрением встроенных iOS и Android в Visual Studio
Microsoft против разработчиков
Сброс .NET — безумие Microsoft
Windows 8 — разрушитель рабочего стола
Событие вымирания Microsoft
Война с Microsoft — управляемое против неуправляемого
Был ли .NET ошибкой?
Silverlight мертв, да здравствует Silverlight?

Чтобы получать информацию о новых статьях на I Programmer, установите панель инструментов I Programmer, подпишитесь на RSS-канал, подпишитесь на нас в Twitter, Facebook, Google+ или Linkedin или подпишитесь на нашу еженедельную новостную рассылку.

Комментарии
Оставьте комментарий или просмотрите существующие комментарии с помощью Disqus
или отправьте свой комментарий по адресу: comments@i-programmer.info


Добавить комментарий