Перевод .NET в Open source принес Microsoft ощутимую пользу

    image

    Последние годы Microsoft пытается стать более дружелюбной для разработчиков компанией и активно участвует в жизни open source-сообщества. Сегодня Microsoft имеет один из крупнейших репозиториев на GitHub, из посвященных разработке свободного ПО. Кроме этого некоторые проприетарные продукты компании переводятся в статус открытого программного обеспечения.

    Одним из успехов технологического гиганта в этой области можно назвать перевод .NET в статус open source-продукта с публикацией исходного кода на GitHub. Произошло это еще в ноябре 2014 года — более двух лет назад — и сегодня можно с уверенность констатировать, что этот шаг компании принес ей больше пользы, чем вреда.

    В условиях жесткой конкуренции за внимание разработчиков, классически закрытая от посторонних Microsoft, пошла на нетипичный для себя шаг, но, несомненно, выиграла от этого. В открытый доступ были выложены ASP.NET, компилятор .NET, окружение .NET Core, сам фреймворк и библиотеки. Таким образом, компания позволила работать с .NET разработчикам на Mac и Linux.

    По статистике, приведенной в блоге mattwarren.org, с момента публикации исходников .NET на Github количество активных разработчиков на VS 2012+ выросло на 61%:

    image

    Кроме этого сообщество активно участвует в разработке совместно с Microsoft:

    image

    Количество пулл-реквестов от сообщества не так впечатляет, но факт того, что на долю сообщества приходится, в среднем, 20-40% активности, говорит об интересе разработчиков к разделу компании:

    image

    «Сорок процентов пользователей .NET Core — новые разработчики», — утверждает директор .NET-подразделения Microsoft Скотт Хантер. «Мы хотим привлекать новых людей».

    Можно ли назвать опыт взаимодействия с Open source-сообществом позитивным для Microsoft? Безусловно. Косвенно об этом свидетельствует недавний выпуск превью Visual Studio для Mac, который компания сделала в ноябре этого года.

    Скотт Хантер утверждает, что это будет первый случай портирования IDE компании на платформу, отличную от Windows. При этом в разрабатываемом IDE Visual Studio 2017 включено упрощение синтаксиса для работы с open source проектами на .NET Core, то есть компания берет курс на сближение как можно большего числа своих продуктов с Open source-сообществом и, соответственно, на максимизацию аудитории.

    Only registered users can participate in poll. Log in, please.

    Считаете ли вы взятый Microsoft курс на сближение с open source-сообществом верным?

    Inoventica Services
    87.28
    VPS / хостинг / домены / защита от DDoS
    Share post

    Comments 62

      +4

      Еще положение вещей в дотнете сейчас хорошо иллюстрирует список steering group в .NET foundation:


        0
        Мне все интересно, зачем это гуглу (и Самсунгу). С остальными сейчас понятно.
          0
          У гугла есть облачный сервис в котором это все можно запускать. Возможно, есть еще какой-то интерес. Samsung будет использовать в Tizen
          Samsung, too, is deepening its commitment to .NET by launching support for it on its Tizen platform. As Samsung’s Hong-Seok Kim told me, Samsung was looking for a framework in addition to the web framework and C API that Tizen developers currently use to write their applications.

          https://techcrunch.com/2016/11/16/google-signs-on-to-the-net-foundation-and-samsung-brings-net-support-to-tizen/
            0
            А какой именно сервис?  UPD. Аа, понял — облако от гугла, честно говоря, впервые вижу.
            Про Tizen - интересно. Ксамарин портируют?
              0

              Нет, неткор. Очень активно пуллреквестят в поддержку линукса/arm на неткоре.

                0
                ну, с одним неткором мбильное приложение не напишешь :)
          0
          Поясните, пожалуйста. мысль для не улавливающих с лёта.
            0

            Это компании, которые включились в разработку .NET Core и смежных проектов.

              0
              Спасибо, это я понял. Я не понял как именно этот список иллюстрирует положение вещей. Всё хорошо? Или всё плохо?
                0

                Все хорошо)

          +1

          Embrace Extend & Extinguish. Microsoft проявляет исключительное дружелюбие и открытость в областях, где она в чём-то отстаёт. А в областях, где она лидирует, мы можем наблюдать совершенно противоположное поведение: Microsoft защищает свою экосистему закрытыми стандартами с патентными органичениями на стороннюю реализацию.

            +9

            А есть какие-то факты по ЕЕЕ кроме тех бородатых по ссылке?

              0

              Сейчас Касперский недоволен политикой внедрения и параллельной работой их(Майкрософта) собственного антивируса

                +2
                А причем тут EEE? МС хочет безопасность из коробки. Это угрожает бизнесу Касперского, построенному на дырявости старых версий Windows… Или там что-то еще?
                  +1
                    0
                    Не буду обсуждать его посты, так как в чем-то есть здравое зерно, а в чем то нет. Скажу лишь, что желание вендора сделать свой продукт надежным — похвально. Но всем не угодить.
                  0

                  Сейчас понял что не слишком ясно выразился относительно параллельности — имелось ввиду, одновременной работы защитника и стороннего антивируса.

                  +1

                  Есть.


                  Формат OOXML(*.docx и т. д.), спешно созданный в противовес открытому OpenDocument(появившийся из OpenOffice.org XML) от OASIS. Переусложнённый, защищён патентами, которые могут вызвать юридические проблемы у реализующих его программ.


                  Проблемы с ключами UEFI SecureBoot на некоторых платформах(вроде бы в итоге решили).


                  Навязывание Windows OEM-производителям: производители получают значительно более низкие цены на Windows, только если значительная часть выпускаемых компьютеров поставляется с ней.


                  Бородатость фактов про EEE не делает их менее правдивыми. Я не сильно в теме, что и как Microsoft сейчас делает для защиты своей экосистемы нечестными методами, давно не трогал Windows в продакшене. Но насколько я понимаю, они по-прежнему любят реализовывать форматы и протоколы несколько отличающиеся от существующих стандартов, и огораживать всё это патентами.

                    0
                    А причем тут EEE? :) Обычный бизнес подход.
                    1. Вроде ECMA-376, ISO/IEC 29500. Какие проблемы?
                    2. А причем тут МС? :) Ленивый вендор не хочет заморачиваться с ключами для *Nix. MS как раз вроде даже подсобил с получением ключиков.
                    3. И что тут такого? Где тут EEE? Тупой обычный бизнес: покупай у меня, а не у Васи — будет тебе скидка.

                    Пример таких новых протоколов? Что-то не заметил патентов MS на поддержку Brotli в Edge, например.
                      +1

                      Да, ECMA-376, ISO/IEC 29500, они в итоге протолкнули своё защищённое патентами со всех сторон поделие как открытый стандарт.


                      Про ситуацию с ключами точно не скажу, не отслеживал.


                      "Не выпускай без предустановленной ОС вообще, а то ценами задавим" — да, обычный бизнес, но методы недобросовестные.


                      Странно было бы видеть патенты на Brotli, который не в MS разрабатывался.

                        0
                        Office Open XML
                        Microsoft has added the format to their Open Specification Promise[27] in which

                        Microsoft irrevocably promises not to assert any Microsoft Necessary Claims against you for making, using, selling, offering for sale, importing or distributing any implementation to the extent it conforms to a Covered Specification […]

                        Где не добросовестные? Хочешь скидку — выполни условие. Если нет — покупай по общим правилам.
                        Ну Dell продает вроде и ничего с ним не случилось. Кто хотел — выпускал все подряд.

                        «Но насколько я понимаю, они по-прежнему любят реализовывать форматы и протоколы несколько отличающиеся от существующих стандартов, и огораживать всё это патентами.» Хотелось бы примеров, а то опять теории заговоров какие-то.

                        Им это нафиг не надо. Основные бабки уже в облаке. Поэтому и SQLServer на *Nix поехал, они стали членом Linux Foundation, а Canonical им Ubuntu в Винде пилит.
                          0
                          > Microsoft irrevocably promises not to assert…
                          Не знал. Им приходится прогибаться под антимонопольное законодательство, это хорошо.

                          > SQLServer на *Nix поехал, они стали членом Linux Foundation
                          Их основной бизнес — продажа ОС и некоторого серверного софта. В облаке, в железе — не суть дело важно. Open-Source решения — их прямой конкурент, хоть бесплатные, хоть с поддержкой от RedHat/Canonical/Percona/… Так что в добрые мотивы верится слабо, они вынуждены интегрироваться в систему OpenSource софта, потому что молча её игнорировать уже не получается. Ну и в порядочность фирмы, которая занималась вещами вроде EE&E, верится слабо. Те же самые люди, которые это делали, сидят там на тех же или более высоких должностях(минус небольшой процент ушедших на пенсию).
                            0
                            С них сняли антимонопольный надзор. Просто хватило ума не идти по пути Оракла.

                            Их основной бизнес — облако, сервисы и уже потом серваки. Прошло уже 15 лет, а бубнеж про ЕЕЕ все никак не успокоится. Те люди которые это делали уже играют в анонимного санту или занимаются американским футболом.
                            0
                            > Хотелось бы примеров, а то опять теории заговоров какие-то.
                            Я уже долгое время практически не имею дела с экосистемой Windows, что там сейчас происходит, не расскажу. Но раньше у них и керберос был со своими дополнениями, и IE со своей своеобразной интерпретацией веб-стандартов, и всё остальное в том же духе. Кстати, IE они в приличный вид стали приводить, только когда проиграли рынок браузеров, и были _вынуждены_ это сделать.
                              +1
                              Ну если не имеете, то перед тем, как повторять старые мантры, неплохо было бы освежить знания :) Где-то догоняют, где-то обгоняют, где-то обделываются. Как и любая технологическая компания. Сейчас менеджмент включил мозг, а облако позволило уйти от дикой завязки на ОС.
                                0
                                Хотел уже закончить дискуссию, но тут на реддите пробежала интересная ссылка: http://techrights.org/2016/12/06/microsoft-bundling-or-patent-lawsuit/

                                Белый и пушистый Microsoft, перешедший на сторону добра и вкладывающийся в OpenSource, входит в состав крупного патентного агрегатора и патентного троля RPX. Кроме того, бывшим CTO Microsoft Nathan Myhrvold при поддержке Била Гейтса был создан патентный тролль Intellectual Ventures. Эти конторы получают деньги с производителей linux-based устройств(сейчас в основном Android), шантажируя их возможными судебными исками.

                                То есть, как я и предполагал, люди, которые раньше зарабатывали деньги, нанося вред развитию технологий подлыми и нечестными способами(хотя и законными), и сейчас занимаются тем же самым. Просто в некоторых областях OpenSource решения их переиграли, и они вынужденны примазываться.
                    0
                    А разве так поступает не любая корпорация?

                    Хотя не, есть исключение — Apple, они даже в областях, в которых чувствуют себя неуверенно ведут себя агрессивно ;) и добиваются успеха надо признать.
                      0

                      Есть агрессивное поведение, а есть нечестные методы борьбы, наносящие в итоге ущерб развитию технологий в целом. Безусловно, этим занимается не только Microsoft.

                    +2
                    Косвенно об этом свидетельствует недавний выпуск превью Visual Studio для Mac, который компания сделала в ноябре этого года.

                    Это MonoDevelop (aka Xamarin Studio) с переклееным логотипом, если что.

                      0
                      Ну и что? Она взяла на поддержку, начала раскрутку. Теперь это их продукт.
                        0

                        Никита, блин! :E

                        –1
                        Считаю направление развития очень правильным. Но сам net core пока не особо готов для продакшена.

                        Буквально недавно хотел сваять простенький REST сервер и обнаружил, что в net core нет реализации простейшенго HttpListener. Предполагаю, что если взять какой-то большой проект, то с большой долей вероятности всплывёт ещё куча ошибок. Очень жаль.
                          +2

                          Asp.net core не смотрели? :)


                          А HttpListener нету потому что он использовал HTTP.SYS, которого в линуксе тоже "почему-то" нету.

                            0
                            Конечно смотрел, мне просто кажется не правильным тянуть архитектуру, которую я не очень хочу поддерживать в собственный проект. Мне нужен базовый listener, как был в .net и не более того. Ну и вообще странно, что наследник (понятно, что сейчас просто порт, но всё возможно в будущем) .net не совместим с ним обратно, вам не кажется?
                              0
                              Ничего странного. Breaking changes бывают у всех.
                                +1
                                .NET Core не является прямым наследником .NET Framework. Скорее .NET Standart таковым является.
                                  0
                                  .Net Standard по факту и есть .Net Core, они даже в одной вкладке в студии существуют. Разница только в том, что кор — запускаемое приложение, а стандарт — библиотека. Ну и еще в деталях, типа fallback'ов на взрослый фреймворк и всего такого.
                                    0
                                    .Net Standart — описание подмножества API. Соответственно реальный Фреймворк, будь то .net framework, .net core, Xamarin поддерживает определенную версию стандарта. Это нужно что бы можно было написать библиотеку, которая компилируется с любым Фреймворком, поддерживающим данную версию стандарта.

                                    imageimageimage
                                      0
                                      Я не думаю, что корректно говорить о «наследнике .net framework», потому что стандарт скорее наследник PCL, нежели чего-то еще. А если посмотреть шире, то феномен вообще для дотнета беспрецедентный, спек на АПИ раньше не было.
                                        0
                                        Тут вы правы.
                              +2
                              WebListener(http.sys) за него или Kestrel(x-plat). У нас уже на проде работает.
                                0
                                А еще есть WCF (который хоть и использует тот же WebListener, но явно больше подходит для написания рест-сервера, чем ручная возня).
                                  0
                                  Хотя буквально через 5 минут нашел разгромную статью про использование WCF для таких целей. Так что есть большое пространство для выбора любой понравившейся реализации.
                                    –1
                                    Все прекрасно заводится на MVC Core + Kestrel/WebListener. WCF в 2016 году советовать для REST вообще издевательство :) Как по удобству так и по производительности. WCF только для легаси SOAP сейчас годится.
                                      –1

                                      Не путайте энтерпрайз и легаси.


                                      Логично, что библиотека, которую делали для SOAP — для него и годится.

                                        –1
                                        Не путаю. Сейчас массово выносим SOAP эндпоинты в своих продуктах и интеграциях. Это только легаси в зонах с низкой производительностью и там, где можно не сильно париться за безопасность.

                                        Библиотеку делали не для SOAP, а как общую абстракцию над разными протоколами и транспортом.
                                          –1
                                          Вот только общую абстракцию выбирали под SOAP. Взять хотя бы «перечисление» EnvelopeVersion с вариантами Soap11, Soap12 и None. То есть варианты конвертов, отличные от SOAP, не рассматриваются в принципе.

                                          — Наезд на производительность понятен — все-таки сериализатор с фиксированной структурой (такой как protobuf) всегда будет быстрее любого сериализатора в формат с расширяемой структурой (XML, JSON). Но с безопасностью-то что не так?
                                            –1
                                            Как раз и полезли косяки из-за абстракции.

                                            Даже простой json будет быстрее.

                                            Нормальная безопасность с делегированием в другие секьюрити зоны с поддержкой токенов и федерации — Ws2007 биндинг. Он умирает при минимальной нагрузке.
                                            Kerberos тут не спасет — не все машины в домене и в одной подсети.
                                            Клиентский сертификат — пародия, а не Mutal TLS.
                                            Логин/пароль вообще под запретом в межсервисном взаимодействии. как и апи ключи.
                                              –1
                                              А как в json с безопасностью? :)

                                              От чего умирает Ws2007 биндинг? Что такое, вашем понимании, минимальная нагрузка? Почему клиентский сертификат вы считаете пародией?
                                                –1
                                                Причем тут Json? Просто обычные Http REST сервисы. Тип контента вторичен.
                                                Отдельные IdP для каждой зоны + OpenIdConnect + федерация + кастомные гранты.
                                                Делать это на WCF — ну его в попу. Еще и кросплатформенность как-то надо будет поддерживать.

                                                1000 запросов в секунду и привет. Дикий оверхед по расходу compute и размер сообщения. Плюс необходимость устанавливать сессию. Микросервис на Kestrel с полпинка выдает 90к в секунду на средней десктопной тачке и упирается в процессор.

                                                Когда будет полноценный mutal tls, тогда не будет пародией.
                                                  –1
                                                  Что значит — «необходимость устанавливать сессию»? Кому она там у вас необходима?

                                                  Чем mutual tls неполноценен?

                                                  Вы можете назвать хоть одну конкретную проблему, кроме общих слов?
                                                    0
                                                    Почитайте как работает WS2007FederationHttpBinding в связке с SAML и TransportSecurity. Увлекательная штука.

                                                    mutal tls как раз полноценен.

                                                    Проблему чего? WCF? Неадекватный уровень абстракции, из которого вытекает все остальное. Тонна WS-* спек поверх только добавляет проблем, а не упрощает жизнь. И все это типа универсально до ужаса.
                                                      –1
                                                      И что я там должен вычитать? Ладно, если аргументов у вас нет, не буду больше с вами спорить.
                                        0
                                        Просто я с WCF начинал работать давно, а последние проекты подразумевали возможность сервисов отдавать как в REST, так и в SOAP виде одни и те же данные. Поэтому выбор пал на WCF. ВебАпи мне не рекомендовали (ради интереса можно глянуть мнение Эспозито на эту тему), а кор только-только вышел, и вот на нем имеет смысл попробовать :)
                                          –1
                                          Видел «это». WebForms в 2013 году уже должны были вас насторожить, как и использование WebClient. WebApi родился как раз из-за того, что команда разработчиков пришла к пониманию абсурдности таких абстракций над Http.
                                            –1
                                            Не понял, при чем тут вебформы и веб-клинет. Последним я вообще никогда не пользовался (c HttpWebRequest пересел сразу на HttpClient), а про первые в посте не было и речи: просто наши внутренние службы кидаются REST-ом, а сторонние чуваки на C++ данные хватают через soap.

                                            Так что я не знаю, почему вы вебформы вспомнили. Но к слову, интересно, как будет развиваться SharePoint, ведь недавно вышла 2016 версия…
                                              0
                                              Вы привели в пример статью Esposito.
                                              Ну для тех, кто кроме соапа ничего не умеет — стоит отдельный интеграционный сервак. В основной код и внутри сети это не попадает и не ограничивает никак.
                                              Как в 360 перепилят на SPA + Knockout или Angular2. Либо свой фреймворк, как в Visual Studio Online.
                                                0
                                                Просто нам было удобнее иметь один WCF-сервис, который умеет отдавать данные в любом формате, хоть REST, хоть SOAP. Минус один интеграционный сервак, тоже плюс.

                                                А еще интересно, чем вы так недовольны в моих постах, что решили карму заминусить. Я лично ваши посты/карму не трогал.
                                                  +1
                                                  Кастанул вам немного кармы на пару с другом :)

                                                  SOAP и REST — это теплое с мягким. SOAP — протокол, а REST — архитектурный подход, прибитый гвоздями к транспорту. Как раз попытка натянуть REST и послужила причиной появления WebApi(ножки у него как раз из WCF растут). На данный момент времени(2017 год) WCF в стоп листе для нового кода. В дальнейшем он не будет развиваться и останется только для legacy. От него будет жить только кусочек отвечающий за клиентскую часть — Тынц.
                                                  В подходе с унификацией есть свои минусы(у нас то же есть внутренние потребители и внешние интеграции).
                                                  — Обратная совместимость и версионирование.
                                                  Внутренний api surface мы можем менять как хотим, при этом не трогая внешние интеграции. А внешние интеграции просто адаптеры. На этом уже обожглись разок и четко разделяем public и internal.
                                                  — Внешний апи может не соответствовать внутреннему, например агрегируя данные из нескольких внутренних источников.
                                                  — Костыли выкидываются в интеграционный слой.
                                                  — Можно отдельно мастшабировать, выкидывать в дмз, делать кастомную аутентификацию.

                                                  Вот поэтому сейчас советовать WCF для REST это не очень красиво, так как менее опытные разработчики обожгутся, а потом будут рассказывать бредни всякие :(

                                                    0

                                                    SOAP — это формат, а не протокол. Кстати, в спецификации SOAP 2.0 я видел указания как его дружить с REST. Правда, зачем нужен SOAP без WS-Addressing — лично для меня загадка.

                                                      +1
                                                      SOAP (от англ. Simple Object Access Protocol)
                                    –2
                                    Единственное кроссплатформенное приложение на дотнете, которое я помню — это кейген для КПК, который также запускался и на ПК.

                                    Only users with full accounts can post comments. Log in, please.