18


5

psake vs. rake for .NETビルド

ASP.NET MVC 2アプリケーションで使用するビルドツールを調査しています。 私はXMLではなくスクリプト言語を使用するというアイデアが好きで、選択をpsakeまたはrakeに絞り込みました。 私はRubyやPowerShellの経験はあまりありませんが、喜んで学びます。 ビルドサーバーにRubyをインストールするのが最善の方法であれば、気にしません。

私のビルドについてあまり複雑でも珍しいこともありません。 Mercurialリポジトリからソースを取得し、Visual Studio 10ソリューションを構築し、構成ファイルの変換を行い、データベース(Data Dude)プロジェクトに基づいてSQLスクリプトを構築/実行し、VSのWeb発行を複製する必要があります。他の基本的なファイル同期を行います。

誰もがそれらを比較することができるレーキとpsakeの両方の経験がありますか? 機能の面で一方が他方より優位にあるのか、それとも単にスクリプト言語の設定に帰着するのか

前もって感謝します。

編集:まだCIソリューションを導入していませんが、TeamCityの使用に傾倒しています。 1つのビルドツールが他のビルドツールよりも優れている場合に言及すると思います。

3 Answer


24


デリックの評価に同意する必要があります。 それは、あなたとあなたのチームがRubyとPowershellのどちらをより快適に感じているか(そして学習することでより価値があるかどうか)に大きく依存しています。 どちらにも長所と短所があります。 どちらもXML IMHOよりも優れています。 そして、デリックが言ったように、私もpsakeの原作者である私自身の偏見を持っています。 :)

psake / PowerShellのいくつかの利点:

  1. PowerShellは、Windows 7およびServer 2008に既にインストールされています。 簡単に XPおよび2003にインストールされます。

  2. バージョン管理のソリューションに簡単に含まれます。 (移動が少ない 部品。)

  3. PowerShellコマンドラインを使用して、vertabimに貼り付けることができます psakeタスク。

  4. 多くのコマンドレットを作成するマイクロソフトとサードパーティ。

  5. あなたのITスタッフはおそらくPowerShellを知っているでしょう。 展開を自動化するときにより快適に感じる。 (展開スクリプトは、このようなブラックボックスではありません。)

rake / Rubyのいくつかの利点:

  1. RakeはRubyを通じて広く使用されているため、より大きなコミュニティを持っています コミュニティ。

  2. RubyはPowerShellよりも表現力豊かな言語ですが、 おそらく、ビルドスクリプトをシンプルにしたいでしょう。

  3. Albacoreを使用すると、rakeを使用して.NETプロジェクトを簡単に作成できます。

  4. Rakeには、タスクをグループ化する名前空間メカニズムがあります。

どちらのソリューションも、ソリューションを構築するために機能します。 チームに適したものを選択してください。 お役に立てば幸いです。


18


まだ行っていない場合は、私のAlbacoreプロジェクトをご覧ください。 これは.NETソリューションを構築するための一連のrakeタスクであり、.NETソリューションでのRakeの操作をはるかに簡単にします。 必要な情報はすべてhttp://albacorebuild.netから入手できます。

そうは言っても-私は明らかに、私がどちらのツールを使用するかについて、自分の偏見と好みを持っています。 だからこれを一粒の塩で取り、私の好みを理解する…​

正直なところ、どのツールがあなたの望むことをするかという問題ではなく、どのツールがあなたのスキルセットと快適性レベルに適合するかという問題ではありません。 psakeとrake + albacoreの両方の機能はほぼ同じです。 両方とも非常にうまく機能します。 どちらも他のツールに比べて仕事が非常に簡単です。 しかし、彼らの背景と出身地に基づいて、異なるアプローチと考え方があります。

すべてがMicrosoftプラットフォームであるツールのスタックにもっと慣れていますか? または、一般的なMSスタックの外部にあるツールを使いながら、MSスタックでソフトウェアを構築している人々に価値を提供します。

PowerShellを使用してすぐにビルドツールをサポートしたいですか? ビルドプロセスにC#やその他の.NETコードを組み込む機能を備えた、c#のような体験をしたいですか? 展開のために、ウィンドウのさまざまな側面を自動化するのに役立つPowerShellのさまざまなプラグインを使用する機能が必要ですか?

それとも、Ruby / rakeで記述したコードでより自然な言語体験を提供する、クロスプラットフォームで非常にオープンなシステムが必要ですか? * nixスタイルのツールとコマンド、ssh、およびデプロイメントのリモートプロセス実行に慣れていますか?

ビルドサーバーにrubyをインストールしてもかまわないと言います。ビルドサーバーは、この質問の一部に答えて、オプションを選択できるようにします。 ただし、多くの質問に答える必要があります。

MSスタックに慣れていて、MSベースのツールのすぐに使えるエクスペリエンスが必要な場合は、PowerShellを使用してください。 視野を広げて、MSスタックから少し出て、統合と操作が簡単なツールセットを使用して、Rubyの世界の本質を味わいたい場合は、ruby / rake /ビンナガ。

私はあなたがあなたがどれを使うべきかについての直接的な答えをあなたに与えていないのに、それが助けになることを願っています。 しかし、あなた/あなたのチームにとってどちらが良いかを判断するのに十分なことをあなたに与えたと思いますが、


0


現在、XML構成と、PowerShell自体でシステムを使用および拡張する機能を組み合わせたPowerShellベースのビルドツールを開発しています。 ほとんどのビルドプロセスに合わせて拡張およびカスタマイズできるシンプルなビルドツールが必要です。 プロジェクトのサンプルページは次のとおりです。