.NET 開源的免費午餐結束了?

.NET 開源的免費午餐結束了?

去年 10 月,IdentityServer 的兩位創作者和維護者 Dominick Baier 和 Brock Allen 宣布,他們當前的商業模式本質上是不可持續的

最後更新 2022/4/20 上午7:51
Aaron Stannard
預計閱讀 7 分鐘
分類
.NET
標籤
.NET C# 開源 鑑權 開源協議

1. 前言

去年 10 月,IdentityServer 的兩位創作者和維護者 Dominick Baier 和 Brock Allen 宣布,他們當前的商業模式本質上是不可持續的,因此他們將使用互惠公共授權(Reciprocal Public License,RPL)的付費授權模式,並在一家新公司 Duende Software 下提供 IdentityServer5。

近期,微軟宣布他們的 ASP.NET 6 範本將繼續包含 Duende 的 IdentityServer 相依項目。IdentityServer 曾經是一款使用寬鬆的 Apache 2.0 授權的免費開源產品,並且是 ASP.NET 開發人員常用的處理 OpenID 和 OAuth 2.0 令牌的工具,因此多年來微軟的 ASP.NET 範本一直會預設包含該庫。如今,微軟的流行範本中包含的 IdentityServer 要求年收入超過 100 萬美元的用戶每年最少支付 1,500 美元的授權費。

.NET 社群非常有風度地回應了這則公告,他們仔細考慮了自己在透過支持獨立軟體供應商,促進 .NET 開源生態系統創新發展方面的作用,並認同 IdentityServer 透過年費的形式徵收授權費用,從而維護程式碼庫的行為非常可取,因為這總好過維護者放棄專案。

然而,.NET 社群的眾人陷入了恐慌,他們要求與 .NET 開源軟體的經理討論一些範本中包含的程式碼。最糟糕的問題在於,.NET 開源軟體生態系統真正的管理者乃是微軟。

如今,圍繞微軟、IdentityServer 以及免費與付費「開源」軟體的話題討論層出不窮,因此我決定在本文中一起來探討一下 .NET 開源軟體的免費午餐結束,對用戶來說意味著什麼。

2. 人心不足蛇吞象

每當看到人們濫用免費/定價過低/未經授權的資源時,我就會想起一句俗語:人心不足蛇吞象。

雖然從小商店偷一塊糖果不會被起訴,但是如果有人搶銀行,那麼一定會被繩之以法。

說起開源,如果維護者只需要支援少量的用戶,而且需求都很類似,那麼其實成本並不高,但一旦專案達到臨界點,而且用戶的要求超出了維護者的提供意願,那麼必須有一方付出代價。

IdentityServer 的用戶實在是貪心了。在過去的十年裡,大多數 IdentityServer 用戶都在貪婪地享用免費的晚餐,如今帳單來了。

不難想像,微軟的這個帖子(https://github.com/dotnet/aspnetcore/issues/32494)中出現了各種觀點:

  1. 這是一項必不可少的服務,微軟應該收購 Duende,並再次免費提供 IdentityServer;
  2. 沒有人閱讀 Duende 的定價條款中有關「任何年收入低於 100 萬美元的公司或非營利組織都可以免費使用 IdentityServer」的規定,因此很多人在抱怨;
  3. 為仍在 Apache 2.0 下免費開源的 IdentityServer4 做貢獻,實在太難了;
  4. 也許微軟應該使用其他產品來代替 IdentityServer,例如 https://github.com/openiddict/openiddict-core ,或 https://github.com/simpleidserver/SimpleIdServer ,這樣免費的午餐就可以持續下去,直到這些專案也遇到與 IdentityServer 相同的永續性問題。

而對於微軟選擇在某些範本中包含 IdentityServer,而不是包含採用了 RPL 條款的核心庫,人們的反應也很荒謬。

當突然要求開發人員每年支付 1,500 美元、4,000 美元或其他費用來購買「關乎到業務」的服務時,他們就馬上開始哭窮。

要知道,開發人員的專業知識不是能用金錢買到的,而且購買一個優秀的、經過實戰考驗的、文件完善的、高度可重用的解決方案,比如由領域專家建構的 IdentityServer,不僅比你自己花錢雇開發人員來做這件事便宜得多,而且風險也比較低。如果應用程式中身分驗證和授權錯誤之類的關鍵問題出錯,那麼肯定會讓你付出慘重的代價。

如果你是公司軟體這一領域的負責人,而且在為 Duende 區區幾美元的授權成本而苦惱,那麼請你幫個忙,辭職走人吧,因為你根本沒資格勝任這個職位。

我懷疑網上的有些人抱怨授權成本和裝窮,其實與成本無關,而是與採購部門有關。

3. 採購部門的不滿

開源技術傳播如此迅速,且產生了如此巨大的價值的最大原因之一是,無需授權,任何人都可以採用、使用、修改和重新分發經過審查的開源軟體,而無需考慮部門預算。

但是,一旦維護人員開始收費,作為他們的專業知識和經驗的補償,則開發人員就只能與採購部門交涉,獲得批准才能購買這些產品。

採購部門審批機制的存在是為了徹查供應鏈中每個供應商的「風險」。通常採購機構都不會產生任何有意義的結果,只會讓雙方之間的交易變得更加昂貴和困難,因此軟體開發人員都不希望牽扯到這個環節。

對於 .NET 開發人員遇到的這種困境,我並不是特別難過。畢竟,這主要是他們的錯。

4. 免費午餐結束

雖然你可以一直免費使用開源專案,但一旦他們決定收費,你就只能任由他們擺佈了。

就 IdentityServer 而言,我認為新版本的付費條款已經非常慷慨了:對 IdentityServer 開源軟體的支持將一直持續到 2022 年 11 月!

換作是其他專案,可能會完全放棄,任由用戶自生自滅。

開源軟體在 .NET 生態系統中的流行度越來越高,而且這種趨勢只會隨著時間的推移而加速,因此 .NET 中的永續性問題會更加普遍。幾年前,微軟就曾經為了用戶承擔起所有費用,並提供免費的庫,結果只讓 .NET 生態系統陷入了一團混亂,我們不能再重蹈覆轍。

免費午餐已經結束,你清醒一點吧。

當你選擇各種套件和技術來維護和建構 .NET 應用程式時,就應該做好付費的心理準備。因為這是避免未來意外和供應鏈衝擊的唯一方法:現在就將其算入成本。

你應該養成向上游相依項目貢獻價值的習慣,透過直接向你使用的專案做貢獻、捐款,或者是其他更好的形式,從維護者手中購買加值產品和服務。另外,你也可以透過部落格文章、影片和課程來幫忙推廣他們的專案。如果你的業務軟體中使用了某個產品,那麼就應該透過各種途徑回饋,然而,大多數用戶都沒有選擇這麼做。

與開源軟體專案建立良好的交換價值循環是「開源永續性危機」的必然結果,每個人都可以因此而受益。因此,現在就開始行動吧,為開源專案做貢獻,因為這些專案的持續發展最終也會觸及你的自身利益。

原文作者:Aaron Stannard

原文標題:.NET Open Source: What Happens When the Free Lunch Ends?

原文連結:https://aaronstannard.com/dotnetoss-free-lunch-ends/

譯者 | 彎月 責編 | 歐陽姝黎 | 出品 | CSDN(ID:CSDNnews)

譯文標題:.NET 開源的免費午餐結束了?

譯文連結:https://www.sohu.com/a/472062543_115128

繼續探索

延伸閱讀

更多文章
同分類 / 同標籤 2026/2/7

AOT使用經驗總結

從專案建立伊始,就應養成良好的習慣,即只要添加了新功能或使用了較新的語法,就及時進行 AOT 發布測試。

繼續閱讀