Roslyn開源第一年:試煉與凱旋

jopen 9年前發布 | 5K 次閱讀 Roslyn

Roslyn 是微軟創建的一個 .NET 編譯器平臺,提供了開源 C# 和 Visual Basic 編譯器及豐富的代碼分析 API,旨在使開發人員可以使用 Visual Studio 所使用的 API 構建代碼分析工具。該項目于 2014 年 4 月 3 日開源。近日,在其一周歲生日來臨之際,VB 項目團隊經理 Kasey Uhlenhuth 撰文回顧了 Roslyn 的開源之路。

據 Uhlenhuth 介紹,早在 2009 年重新設計 C# 和 VB 編譯器的時候,他們就考慮到了開源。但直到 2014 年,在看到F#,、ASP.NET、TypeScript 開源取得成功后,他們才真正邁出了這一步。

開源之后,他們獲得了許多來自社區的支持和幫助。社區反饋在C# 6.0 的一些設計決策中發揮了重要的作用。比如,主構造函數null 條件操作符語法字符串插值均受到了社區反饋的影響。而且,社區還推動了許多與 Roslyn 相關的項目:

  • C# Pad 是一個交互式 Shell,允許在瀏覽器中執行C#;
  • CodeConnect.io 可以實現設計時調用堆棧可視化,包括重構和搜索特性;
  • DuoCode 可以將C# 6.0 交叉編譯為 JavaScript 代碼;
  • LINQPad.CodeAnalysis 是一個庫,可以增強 LINQPad 的功能,使它更容易與 Roslyn 搭配使用;
  • Mono/Roslyn 是 .NET Framework 的跨平臺開源實現;
  • OzCode v2.0使用 Roslyn 提供令人愉快的調試體驗;
  • Scrawl 是一個面向現代 Web 開發人員的輕量級編輯器;
  • scriptcs 是一個開源項目,允許開發人員將 C# 當作腳本語言使用,并提供一個命令行C# REPL;
  • Try Roslyn 演示了 Roslyn 的用法及如何重現一個編譯 Bug;
  • WebEssentials Markdown 編輯器也基于 Roslyn。
  • </ul>

    期間,他們還采取了一項重大舉措,就是將 Roslyn 源代碼從 CodePlex 遷移到 GitHub。 這不只是代碼位置的變化,更重要的是開源模型和工作流程的變化。在遷移之前,他們采用的是一種“有限開源”模型。也就是說,問題跟蹤和代碼審核系統都是內 部的,社區貢獻的代碼需要他們手動復制粘貼然后合并,而無法直接合并。在遷移之后,他們采用了“完全開源”模型,使用 GitHub 的問題跟蹤和代碼審核系統,通過 pull 請求提交代碼,并制定了代碼貢獻流程。這一舉措增加了社區的透明度,僅用三分之一的時間就幾乎實現了社區參與度的成倍增長:

    Roslyn開源第一年:試煉與凱旋

    Roslyn 的用戶數也穩步增加,下圖是 pull 請求數和問題記錄數的增長趨勢:

    Roslyn開源第一年:試煉與凱旋

    另外,Uhlenhuth 還提供了一些有關項目團隊響應率的統計,旨在表明,與開發全新功能相比,他們優先接受代碼,如下圖所示:

    Roslyn開源第一年:試煉與凱旋

    從 1 月份到現在,他們又開源了 Scripting“表達式求值器 Expression Evaluators”Visual Studio 語言服務等平臺組件。現在,他們正在簡化 F5 構建。將來,他們還有許多細節工作要做,比如,將一些歷史問題從 CodePlex 遷移到 GitHub,找出一種在 GitHub 上標記問題的理想方法,將提交映射到不同產品版本的方法等等。

    來自: InfoQ
     本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
     轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
     本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!