JetBrains宣佈Project Rider:一款C#跨平臺IDE
本文來源於我在InfoQ中文站翻譯的文章,原文地址是:http://www.infoq.com/cn/news/2016/02/jetbrains-announce-project-rider
在NDC London上,JetBrains釋出了一個新專案——跨平臺的C# IDE,它基於IntelliJ Platform並使用ReSharper技術進行開發。該專案代號為Project Rider,這款IDE包含了大家早已熟悉的來自於ReSharper與基於IntelliJ的IDE的諸多特性,比如說快速修復、檢測、智慧導航等。雖然ReSharper寄生於Visual Studio中,但Project Rider卻是個功能完善、獨立的IDE。
雖然現在的專案還處於早期階段,但已經包含了如下特性:
導航——智慧導航是JetBrains IDEs的一個主要特性,Project Rider當然也不例外。它提供了標準的Go To Type、Go To File,並且集成了IntelliJ Platform的“Search Everywhere”特性,可以轉向符號、型別、檔案,甚至還可以在設定與動作中進行搜尋。
還可以使用Navigate To彈出選單,在類繼承體系中查詢父類/子類等,也可以查詢使用的地方,其結果會顯示在標準的IDE工具視窗中。
編輯——Project Rider實現了大量的智慧編輯特性,從型別輔助(比如說插入花括號與自動格式化)到Live Templates(包括ReSharper 10的postfix模板),還提供了快速資訊提示與邊欄圖示,從而可以做到繼承導航與上下文動作等。
檢查——ReSharper所支援的大多數檢查都會在編輯器中以錯誤、警告、建議與提示的形式顯示出來。這包括對無法識別的符號的紅色程式碼顯示與程式碼問題的下劃線高亮顯示等等。
Alt+Enter——如果沒有Alt+Enter支援,那麼JetBrains IDE就是不完善的,ReSharper快速修復的大多數選單項與上下文動作都是可用的。Project Rider還支援將多個動作應用到整個檔案中,並且可以直接修改選單中檢查的嚴重級別。
重構——Project Rider提供了有限的重構功能。大多數重構都需要某種形式的使用者介面,不過這些介面目前尚未實現。Project Rider可以重新命名符號,並引入或是內聯變數,還可以根據Alt+Enter來修改程式碼。
反編譯——如果導航到沒有原始碼的型別,那麼Project Rider就會幫你進行反編譯,結果與C#程式碼很類似。
當然了,作為一個標準IDE,它還包含了其他很多特性:
- 多種執行時支援。Project Rider支援.NET Framework與Mono,對CoreCLR的支援也在進行當中。它可以載入MSBuild與MSBuild解決方案,以及DNX專案。此外,它還包含了用於建立新專案的模板。在建立空專案時,它真的就是空的!
- 構建、執行與除錯。一個IDE最為重要的特性之一就是除錯,Project Rider當然也不例外。它可以構建並執行.NET Framework、Mono與DNX專案,並且可以除錯.NET與Mono應用,DNX除錯與CoreCLR支援正在進行當中。任何構建錯誤都會顯示在構建工具視窗中,除錯工具視窗用於顯示呼叫堆疊、變數及觀察視窗。
- 跨平臺。就像可以執行並除錯多個執行時一樣,Project Rider本身可以在多個平臺上執行。它可以在Windows與Mac OS X上執行,Linux上也可以,不過還沒有進行測試。
工作方式
Project Rider是個構建在IntelliJ Platform之上的獨立IDE,就像WebStorm、DataGrip與JetBrains的其他IDE一樣。不過,區別在於相對於在IntelliJ Platform(執行在JVM上)上重新實現ReSharper的特性,Project Rider與ReSharper之間是通過非常快速的自定義二進位制協議進行通訊的。這樣,後端依舊是使用C#編寫,執行在.NET或是Mono之上的ReSharper,而前端則使用Kotlin編寫,並且呼叫IntelliJ Platform的APIs。我們後面會在部落格中深度介紹其實現細節。
為何還要建立一款C# IDE?
主要是為廣大開發者提供一種選擇。我們堅信可以為那些在不同環境下工作的開發者提供優秀的使用者體驗。那為什麼是現在呢?這是因為我們認為現在正是時候,原因如下:
- 為了讓ReSharper能夠在不同環境下使用(獨立於Visual Studio),我們已經艱苦工作多年了,dotPeek就是例證。
- 現在已經有越來越多的開發者在使用非Windows平臺,我們希望能給予他們所熟知的與ReSharper相同的體驗。
- 最後,微軟現在正在將其平臺與C#語言向著開源的方向推進,比如說CoreCLR。
這對於ReSharper意味著什麼呢?
ReSharper依舊是Visual Studio的最佳擴充套件,也是我們的龍頭產品之一。Project Rider使用了ReSharper則強化了我們對於ReSharper的承諾,因為對ReSharper的任何更新都不僅會讓ReSharper受益,Project Rider也會從中得到巨大的好處。除此之外,我們希望在Project Rider上所做的工作反過來能促進ReSharper的不斷髮展。本質上,Project Rider只會加大我們在ReSharper上所付出的努力。
許可模型是怎樣的?
雖然現在談論具體細節還為時尚早,不過其許可模型將會與JetBrains Toolbox中的其他產品保持一致。在制訂價格時,我們會考慮到可能會出現的諸多使用場景,比如說有人可能想要使用兩個工具等等。我們希望儘快制訂出價格資訊。
路線圖
現在已經在通往1.0的路上了。我們對於架構非常有信心,並且堅信已經打下了非常好的根基,從而能夠實現出1.0版本中計劃的那些特性。我們已經實現了不少功能,不過還有很多功能亟待實現。我們計劃過一陣兒開放一個私有的EAP,並且截止到2月底。在我們的部落格與Twitter上會提供登錄檔單。在這個私有EAP之後,我們將會轉向公開EAP。到底什麼時候開放公開EAP取決於早期測試者所提交的反饋資訊。我們的目標是在今年秋季釋出正式版本。我們對於Project Rider感到非常興奮,並且希望你能與我們一同分享其中的喜悅之情。如果有任何問題,請隨時提出來。不要忘記關注我們的Twitter賬號@JetBrainsRider以瞭解未來的更新資訊!相信Project Rider將會給廣大C#開發者帶來一縷清風。根據JetBrains以往的產品風格與特性,我們有理由相信這款新的IDE也一定不會讓大家失望。
JetBrains是一家來自於捷克的軟體開發公司,該公司位於捷克的布拉格。JetBrains以各種優秀的開發工具而聞名,比如說Intellij IDEA、WebStorm、PyCharm、RubyMine、AppCode、PHPStorm、TeamCity、YouTrack、DataGrip等等。每一款工具都深受廣大開發者所鍾愛。JetBrains所推出的各種工具基本上涵蓋了常見的軟體開發平臺,如Mac、Windows及Linux等。感興趣的讀者可以到JetBrains官網瞭解各種產品的資訊並下載試用。