Знаете ли вы, кто такой Джон Гэллоуэй? А между тем, он есть. Он не только один из авторов «Professional ASP.NET MVC», но и человек, который является исполнительным директором .NET Foundation, по сути – отвечает за весь опенсорс .NET. Основные темы этой статьи: подробности работы .NET Foundation, примеры решаемых задач и пара слов о книгах и переходе на .NET Core. Добро пожаловать под кат! — .NET Foundation – одно из наиболее захватывающих предприятий за всю историю .NET. Бет Месси написала отличный пост на Медиуме о том, как это начиналось. Вы присоединились к .NET Foundation в 2017 году. Можете поделиться своей историей, как это выглядело для вас? — Честно говоря, прежде чем попасть на эту работу, я был мало знаком и с .NET Foundation конкретно, и с такого рода организациями вообще. Однажды предыдущий исполнительный директор .NET Foundation и икона опенсорса Мартин Вудвард рассказал, что берет на себя новую интересную роль в Microsoft и хочет, чтобы я подумал о том, чтобы занять его место в .NET Foundation. К счастью, благодаря Мартину и Бет, я уже был немного знаком с .NET Foundation. Но осознав, чем является эта организация, я был очень рад открывшейся возможности. .NET Foundation — независимая организация (основанная и частично поддерживаемая Microsoft, но тем не менее — отдельная), целью которой является поддержка опенсорсного .NET. Для этого нужно делать много работы: — Вы – исполнительный директор .NET Foundation. Можете рассказать подробней, чем вы занимаетесь? — Это интересная, увлекательная и непростая работа. Я сотрудник Microsoft, и Microsoft позволяет тратить большую часть моего рабочего времени на .NET Foundation. Это похоже на систему, когда компания позволяет сотруднику контрибьютить в опенсорсные проекты. Я отчитываюсь нашему совету директоров, работаю с консультативным советом, стратегическим техническим советом, корпоративной спонсорской группой. Только что я перечислял вещи, которыми занимается .NET Foundation; моя работа – воплотить все эти идеи в жизнь. Я управляю всем, включая бюджет, регистрацию бизнеса, юридические соглашения, новые инициативы, коммуникации, магазин атрибутики, локальные мероприятия, всевозможные новые вещи и события. Конечно, когда всем занимается один человек – это не масштабируется, поэтому другая важная часть работы в том, чтобы развивать организацию и подключать новых людей. — Исполнительному директору приходится участвовать во множестве разных задач. Уверен, вы знаете множество интересных историй о .NET Foundation. Можете что-нибудь рассказать? Есть ли какие-то необычные или странные проблемы, которые приходится решать? — Отличный вопрос! Мои любимые истории – о том, как мы сделали что-то полезное, что помогло сразу множеству людей. Например, однажды я прочитал в Twitter, что сервис SymbolSource закрывается. SymbolSource отдает отладочные символы для пакетов NuGet, и раньше они самостоятельно предоставляли поддержку двух уровней: платную и бесплатную. Через несколько лет ведения такого бизнеса они поняли, что платный вариант не приносит достаточного дохода, чтобы продолжать оказывать бесплатный сервис, и им придется его закрыть. Я связался с ними, и вместе с командой NuGet мы превратили это в проект .NET Foundation и запустили бесплатный вариант на мощностях .NET Foundation в Azure. Еще одна интересная задача — получить сертификаты и сервисы для подписывания кода проектов .NET Foundation. Для опенсорсных проектов считается хорошей практикой подписывать бинарные сборки (инсталлятор, пакеты NuGet и т.п.), но получение таких услуг требует регистрации проекта в качестве юридического лица, да и организация подписи сборок — не такое уж простое занятие. Oren Novotny, член консультативного совета и в дальнейшем – управляющего совета, придумал отличное решение – регистрировать проекты как фирменные наименования .NET Foundation. Мы начали работать с DigiCert, провайдером сертификатов, и получили скидку для проекта .NET Foundation. Дальше мы оформили .NET Foundation как суб-сертификационную организацию, благодаря чему каждый отдельный проект смог получить сертификат уже на своё имя. После чего мы настроили подписывающий сервис на нашу подписку Azure и дали возможность пользоваться им всем нашим проектам, кому это нужно. Это была идея Орена, но я очень рад, что этим занялась именно .NET Foundation и воплотила идею в жизнь.  — Недавно был анонс .NET Foundation Open Membership. Кроме того, совет директоров выбирается на основе открытого голосования. Можете рассказать чуть больше об этом, и почему это так важно для .NET-сообщества? — .NET Foundation была отдельной сущностью с момента основания, но изначально два из трех директоров были сотрудниками Microsoft, а третий назначался Microsoft и поэтому не был полностью независимым. Мы изучили множество других опенсорсных организаций, и нам понравилось, как это работает в GNOME: люди, наиболее активные в сообществе разработчиков, могут стать членами организации и дальше избирать собственный совет. Поэтому в нашем новом совете есть один член, назначенный Microsoft (Бет Месси), а оставшиеся шесть директоров – выборные члены. Каждый из них работает в течение одного года, после которого может участвовать в переизбрании, если захочет. Это важно по двум основным причинам: — Представьте, что у кого-то из участников нашей конференции есть собственный опенсорсный проект. Что он должен сделать, чтобы присоединиться к организации? Какую помощь он получит, если это произойдёт? — Если хочется присоединиться к организации, можно начать вот с этой страницы: https://dotnetfoundation.org/projects. Если вам почему-то не ответили, хорошая идея – пингануть нас по адресу contact@dotnetfoundation.org. Иногда на нас сваливается куча работы и мы стараемся не выводить проекты быстрей, чем справляемся с их поддержкой. Но проверить никогда не помешает. После этого вам нужно будет заполнить несколько форм, чтобы проверить, что проект хорошо вписывается в организацию. После чего я выношу проект на совет, мы подписываем соглашение, меняем копирайты и подключаем к нашим сервисам. После присоединения проекта мы вместе работаем над внедрением необходимых сервисов: подписывание кода, соглашение контрибьютора на пулл-реквесты, билд-серверы, хостинг и так далее. Мы видим свою роль в поддержке проектов, которые уже живут сами по себе – несмотря на то, что существует некий список вещей, которые нужно реализовать новому проекту, на самом деле мы просто помогаем, когда проект этого просит. Кроме того, мы занимаемся отдельными вопросами вроде юридической поддержки, маркетинга и так далее. — Вы – один из авторов серии книг «Professional ASP.NET MVC». Последняя из них («Professional ASP.NET MVC 5») опубликована в 2014 году. Стоит ли ждать обновления серии для ASP.NET Core? — Не знаю. Я был в команде авторов во времена ASP.NET 1.0, мы вместе работали над наброском книги, но все мы были очень заняты другими вещами, и оказалось очень сложно успевать за темпом развития ASP.NET Core – как только мы утвердили набросок, уже случился ASP.NET Core 1.1, 2.0 и так далее. Кроме того, документация Microsoft стала настолько хороша за последние годы, что книги стали куда менее необходимы. Я получил огромное удовольствие, работая над книгами, но не знаю, когда выйдет следующая, и будет ли вообще обновление у «Professional ASP.NET». — Многие участники нашей конференции поддерживают легаси-проекты на ASP.NET и полном .NET Framework. Как думаете, имеет ли смысл портировать их на .NET Core? Какие преимущества можно получить от такого обновления? — Я делал про это целые доклады – и это непростой вопрос. Дам ответ небольшим списком мыслей: — Окончательный релиз .NET Core 3.0 должен состояться во второй половине 2019. Каковы самые интересные отличия этой версии? Можно ли уже попробовать preview-версии, или стоит подождать стабильного релиза? — Ох, там столько новых вещей! Некоторые самые топовые фичи предназначены для десктопных разработчиков – можно начинать перенос своих WPF и Windows Forms приложений на .NET Core, одновременно получив side-by-side deployment, улучшения производительности, новые API из .NET Core, возможность собирать всё в один EXE, MSIX и многое другое. Есть множество приятных фичей в платформе и SDK вроде возможности использовать C# 8.0 и многоуровневую компиляцию. Веб-разработчики смогут делать ещё более быстрые веб-сервисы с помощью таких штук, как HTTP/2, быстрой обработки JSON, нового шаблона воркера и так далее. Спрашивать меня, стоит ли переходить на preview версии – не всегда полезно. Я ведь всегда скажу – да, конечно переходить! Но в данный момент у нас есть Preview 5, и основные изменения происходят в тулинге и улучшении поддержки десктопной разработки. Это совершенно точно правильное время, как минимум, чтобы начать тестирование, нахождение и починку блокирующих багов. Деврел Axiom JDK, продюсер в Failover Bar