JetBrains Rider パブリックEAPリリース

Yusuke

1月にProject Riderを発表いたしました。3月にはプライベートEAP(Early Access Program)を開始しましたが、ついにどなたもRider EAPをお試し頂けるようになりました!

Rider splash screen

プライベートEAPの間、すばらしいフィードバックを頂きました。Riderの開発はリリースに向けて順調に進んでいます。まだ機能全ての実装が完了したわけではなく荒削りな部分もありますが、JetBrains内外で既にRiderを通常の開発に利用している方が多くおります。皆様も是非お試しの上この素晴らしい製品を体験してください。もちろん問題があればYouTrackへ報告したりコメントを残したり 、Twitter(@JetBrainsJP)へお知らせください。

忙しい方向けのまとめ

RiderのパブリックEAPをこちらからダウンロードして頂けます

Riderのホームページはこちら課題一覧はこちらです。サバイバルガイドをご覧になり、既知の問題や回避方法をご確認ください。

Rider #とは?

Riderはクロスプラットフォームのフル.NET IDEで、IntelliJプラットフォームとReSharperがベースになっています。フロントエンドユーザーインターフェースはWebStormやIntelliJ IDEAと同じく定評のIntelliJプラットフォーム上に構築されています。Windows、Linux、Macをサポートしており、エンジン部分はReSharperが別プロセスで動いています。

これは大変調整のとれたアーキテクチャで、IntelliJとReSharperが先進のIDE機能を提供しつつ、ReSharperが個別プロセスで動くため、VisualStudioをリソースやメモリを共有する状態から解き放たれます。

Rider

機能

RiderパブリックEAPには何が含まれているでしょうか?

Riderは言語機能を提供するためにReSharperを使っており、JetBrainsのゴールはReSharperの機能を極力バージョン1.0で提供することです。ReSharperは12年かけて開発してきた製品で、その機能は膨大です。

幸いなことに、Riderで提供する機能の多くは大変素早く実装できます。Riderは既にReSharperのリッチなナビゲーション、利用箇所の検索、自動・スマートなインポート補完、ReSharperの2200を超えるインスペクションの多くと、1000を超えるコンテクストアクションとクイックフィックス、ユニットテストサポート、ソリューションワイドの検索を提供しています。

Code completion popup

もちろんRiderはIDEで、フルIDE機能を実装せねばなりません。これはReSharperが提供していないビルド、デバッグ、プロジェクト管理(ソリューション、リファレンス、NuGet等など) といった機能も含みます。

Riderの提供する機能を挙げるのはきりがありませんので、いくつかの異なるシナリオ – .NET Framework、.NET Core、Xamarin、Unity をベースに説明させてください。

.NET デベロッパ

Riderは標準.NETフレームワークまたはMonoプロジェクトをサポートします。Visual Studio .slnと、MSBuildベースのプロジェクト(.csprojなど)を読み込めます。

ソリューション読み込みプロセスは独自に持っていますので、素早く開けるのをご確認頂けます。また、プロジェクトファイルを外部で編集しても、Riderはほぼ感知出来ないくらい素早く自動的に変更を読み込んでくれます。

ソリューションエクスプローラで右クリックすればリファレンスを確認できます。また新規に実装されたNuGetウィンドウを使ってNuGetパッケージを検索したり更新したりできます。伝統的にこの機能はVisual Studio提供してきましたが、JetBrainsならではの実装はもちろん結果をキャッシュしたり、バックグラウンドで更新したりしますのでそのスピードを是非お楽しみください。

NuGet tool window

またRiderはビルド、実行、デバッグをサポートします。プロジェクトはMSBuild、またはMonoでクロスプラットフォーム開発していればXBuildでビルドできます。実行とデバッグはIntelliJのパワフルな基盤がベースになっています。(ReSharperにも似た機能があります)。

Run設定ではプロジェクトを起動するための設定を好きなだけ指定できます。Riderは数多くの.NET向け起動テンプレートを用意しており、独自の起動設定、.NET Coreの起動設定なども用意です。

さらに、Riderはデバッグ実行設定も可能です。.NET Framework、Mono、.NET Coreのいずれもサポートします。RiderはIntelliJの定番のデバッガUIを使っていますので、お馴染みのコールスタックビュー、ローカルや変数ウォッチも可能です。Riderは例外ブレークや、インストラクションでのブレークポイントもサポートします。

Debug configuration dialog open with debugger running

ユニットテストサポートなしにIDEは完成しません。RiderはxUnit.net、NUnitの実行とデバッグをお馴染みのUIでサポートします。アイコンがエディタに表示され、Alt+Enterメニューから実行やデバッグができ、テスト実行はツリー形式で表示されます。テストをダブルクリックすればコードへジャンプでき、スタックトレースももちろんクリック可能です。

Unit test icon in the editor

新しいIDEへの以降が不安でもご安心ください。getting startedウィザードがRiderの設定を手助けしてくれます。ウィザードではVisual Studioライク、またはReSharperライク、またはIntelliJ IDEAライクなキーマップから選択したり、オススメのプラグインを簡単に選んだり出来ます。

Keymaps getting started page

.NET Coreデベロッパ

Riderは.NET Core プロジェクトもサポートします。既存の.jsonフォーマットのプロジェクトを読み込んだり、プロジェクトウィザードからテンプレートを選んで新規に作ったり出来ます。

New project dialog

もちろん、クロスプラットフォームですのでMacでもLinuxでもターゲットとして.NET Coreを選択できますし、WindowsでもMacでもLinuxでも必要な機能は一揃いあります。

.NET Coreプロジェクトを開く戸、Riderは自動的に全てのNuGetパッケージを復元し、パッケージをフラットなリストではなく依存ツリーとして表示します。一度ロードが完了すれば、Riderは伝統的な.NETフレームワークプロジェクトと同じくコード補完、ナビゲーション、リファクタリング、インスペクションといったリッチなIDE機能を提供します。

リファレンスを追加するのはプロジェクトの.jsonファイルを編集(もちろんコード補完が働きます)し、保存するだけです。Riderはプロジェクトファイルに記載されたパッケージを自動的に反映します。ターゲットフレームワークはステータースバーより簡単に選択できます。

Target framework switcher

また、.cshtmlファイルはTag Helpers、コード補完、利用箇所の検索、リファクタリングといった機能付きでASP.NET Coreをサポートします。

CSHTML tag helper completion

もちろんRiderは.NET Coreプロジェクトをビルド、実行、デバッグできます。が、リファレンスの追加、デバッグとユニットテストには既知の問題を回避するためのコツ(サバイバルガイド)が必要な場合がありますので注意してください。

最後に、Riderは.NET Coreのユニットテストを実行・デバッグすることができます・・・概ね。まだこの機能は完成しているとはいえず、全てのケースで動くわけではありません。例えば非Windowsの.NET Framworkプロジェクトなどはまだサポートしていません。しかしながら現在のところxUnit.netとNUnitをサポートしており、複数のフレームワークをターゲットとするプロジェクトを全てサポートする予定です。改めて、サバイバルガイドは参照しておいてください。

Test runner

UnityとXamarinデベロッパ

既存のReSharperの機能、並びにIDEとしての基本機能を実現することが目下の焦点になりますが、JetBrainsはRiderをUnity3DXamarinソリューションを開発するためのベストなIDEにもしたいと考えています。

Riderに置けるXamarinサポートはまだ未実装ですが、 ReSharperには既にXamarinのXAML編集機能などがあり、今後対応していく予定です。

Unityサポートは幾分進んでいます。まず Unity3dRider pluginをプロジェクトに追加することでUnityエディタとしてプロジェクトを開いたり、C#ファイルを開いたり、エラーメッセージを表示したりできます(将来的にはUnity自体にこの機能を追加出来ればと考えています)。詳しくはこちらのインストラクションをご覧ください。これについてはもう少し詳しく近々ブログにてご紹介する予定です。

続いて、Riderでプロジェクトを開いたらUnity固有の機能も働きます。RiderにはReSharper Unity pluginが付属しており(はい、Riderはプラグインもサポートします!)、自動的にサポートC#言語レベルを設定したり(もうC# 4コードでC# 6の提案がなされることはありません!)、Unityメッセージメソッドを自動的に挿入したりできます。詳しくはプラグインのreadmeをご覧ください。

Auto completing Unity message methods

さらに、RiderはUnityプロジェクトのデバッグもできます。Run → Attach to local processメニューは、Unityのプロセスも含め、アタッチしてデバッグ可能ものを一覧表示します。

Attach to Unity process to debug

IntelliJプラットフォーム機能

Riderは数多くのIntelliJプラットフォーム由来の機能をそのまま継承しています。REST テストクライアントや、リッチなVCSクライアント、数多くの命を救ってきたローカルヒストリーもRiderでお使い頂けます。

RiderはDataGripのリッチなデータベースツールも内蔵しています。つまり.sqlファイルを開けばスマートなコード補完、リアルタイム解析、クイックフィックスといった機能をMySQL、PostgreSQL、SQL Server、Oracleを含むほとんどのデータベースでご利用いただけます。SQLを実行した結果は表形式で確認でき、データベースをリファクタリングすることすら出来ます。

Rider showing database tooling

またIntelliJのリッチなプラグインエコシステムに触れない訳にもいきません。プラグインSDKはまだ開発中ですが、Riderは既にIntelliJとReSharperのプラグインをサポートしています。つまりRiderはVIM editing modeを含む既存のIntelliJプラグイン資産を活用できます。Riderで現在利用可能なプラグインについてはプラグインリポジトリをご参照ください。

IntelliJプラットフォームがRiderでいかに活用されているか、ビデオも是非ご確認ください。

なぜRiderを使うべきなのか?

ここまでの説明で、長年にわたるIntelliJやReSharperの資産を活かしてRiderがフルIDEとして誕生したのかをご理解いただけたかと存じます。まだ正式版ではありませんが、既に多大な機能を実装しています。

.NET開発に最適なIDEとなることを目標としています。機能豊富かつキビキビと動作することが重要です。またフルIDEを自社提供することで、NuGetのとてつもなく高速な検索を初めとする様々な領域でイノベーションをもたらすことが出来ます。

しかしながら、簡単な答えはまずご自身でダウンロードしてお試しくださいということになります。お手持ちのソリューションやプロジェクトで、いかにうまく動作するかご確認ください。

また、RiderはReSharperのコードベースから成っていることを覚えていてください。RiderはReSharperです。片方の製品で導入された新機能はもう片方でも利用できます。つまり我々は選択肢を提供します。Riderがしっくり来るようであれば素晴らしいことですし、Visual Studioを好むようであればこれまで通りReSharperをご活用ください。

最後になりますが、このプロジェクトはコードネーム”Project Rider”として始め、後に正式名称を決めることになっていました。Riderという名前は気に入っており、正式名称はJetBrains Riderとなります!

是非Rider EAPビルドをダウンロードして頂くか、Toolboxでインストールしてみてください。

[原文]