На протяжении многих лет экосистема open source в .NET сталкивается с проблемой устойчивости. В отличие от таких сообществ, как Node.js, многие разработчики .NET используют пакеты NuGet, но у них нет простого способа напрямую поддерживать их авторов. Однако у Microsoft есть все возможности изменить это и сделать экосистему действительно жизнеспособной.
Опыт npm — и как можно сделать лучше
Недавно NuGet представил функцию, аналогичную npm fund, которая позволяет пользователям поддерживать авторов пакетов. npm внедрил её ещё в 2019 году, и NuGet понадобилось шесть лет, чтобы догнать. Но вместо того чтобы считать это запоздалым повторением, Microsoft может пойти дальше и предложить нечто большее.
NuGet работает в другой среде. Его пользователи — это не только энтузиасты, но и корпоративные разработчики, использующие Visual Studio по подписке. Компании уже платят немалые деньги — от $50 в месяц за Professional до сотен долларов за Enterprise.
Это означает, что инфраструктура для модели финансирования и распределения доходов уже существует. Microsoft знает, какие организации и пользователи работают с какими пакетами, благодаря телеметрии и интеграции с Entra ID (бывший Azure AD).
Идея №1: Распределение доходов для авторов пакетов NuGet
Microsoft могла бы выделять, например, 10% дохода от подписок Visual Studio и распределять их между проверенными авторами пакетов NuGet. Распределение могло бы быть пропорциональным популярности пакетов, аналогично тому, как Spotify платит артистам или YouTube Premium — авторам контента.
Система могла бы работать полностью автоматически. Разработчикам не пришлось бы управлять донатами вручную — они просто получали бы свою долю за вклад в экосистему.
Представьте, что при установке пакета в Visual Studio появляется сообщение:
«Часть вашей подписки Visual Studio направляется на поддержку этого разработчика.»
Это вызвало бы доверие и сделало бы разработку open source в .NET действительно устойчивой.
Идея №2: Встроенная покупка лицензий в NuGet
Ещё одна проблема корпоративных пользователей — лицензирование. Многие пакеты NuGet предоставляются бесплатно для небольших команд, но требуют оплату для компаний. Процесс покупки таких лицензий сегодня сложен — нужно подключать юристов, отдел закупок и подписывать контракты.
Решение — интеграция NuGet с Azure Marketplace. У Microsoft уже есть зрелая система оплаты. Связав NuGet с Azure Marketplace, компании смогут покупать лицензии прямо из Visual Studio или через свою подписку Azure.
Например:
Пакет бесплатен до 5 разработчиков.
При подключении шестого пользователя из той же организации Entra система уведомляет менеджера и предлагает оплатить лицензию.
Менеджер добавляет оплату напрямую в счёт Azure.
Это просто, прозрачно и создаёт понятную модель дохода для авторов.
Мягкий “paywall” и защита лицензий
Microsoft уже обладает мощной системой аудита лицензий. Если связать использование NuGet с учетными записями Visual Studio и Entra, компании смогут автоматически защищать себя от случайных нарушений лицензий.
Такая модель станет своего рода мягким платным барьером: небольшие команды смогут свободно работать, а крупные компании — вносить вклад в экосистему финансово. Это также поможет избежать нарушений лицензии Community Edition, которая запрещает коммерческое использование при доходе выше установленного порога.
Результат: устойчивая экосистема .NET
Если Microsoft реализует подобные идеи, экосистема .NET станет действительно устойчивой. Разработчики смогут получать справедливое вознаграждение за свои проекты, а новые специалисты будут охотнее присоединяться, понимая, что open source в .NET может приносить доход.
Это приведёт к:
Более активному сообществу
Качественным и регулярно обновляемым пакетам
Росту доверия и лояльности к платформе .NET и Microsoft
Open source нуждается не только в энтузиазме, но и в структуре, признании и поддержке. С правильной моделью финансирования и лицензирования .NET сможет наконец обрести здоровую, живую экосистему.