18

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

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

rake と psake の両方を比較できる経験がある人はいますか? 機能の点で一方が他方より優れているのでしょうか、それとも単にスクリプト言語の好みによるものなのでしょうか?

前もって感謝します。

編集: CI ソリューションはまだ導入していませんが、TeamCity の使用に傾倒しています。あるビルドツールが他のビルドツールよりもうまく機能する場合に備えて、それについて言及したいと思います。

4

3 に答える 3

24

私はデリックの評価に同意しなければなりません。それは、あなたとあなたのチームが Ruby と Powershell のどちらをより快適に使用できるか (また、どちらを学習する価値があると考えるか) に大きく依存します。どちらにも長所と短所があります。どちらもXML IMHOより優れています。Derick が言ったように、私も psake のオリジナルの作者であるため、私自身の偏見があります。:)

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

  1. PowerShell は、Windows 7 および Server 2008 に既にインストールされています。XP および 2003 には簡単にインストールできます。
  2. バージョン管理でソリューションに簡単に含めることができます。(可動部分が少ない。)
  3. PowerShell コマンド ラインを取得して、psake タスクにそのまま貼り付けることができます。
  4. 多くのコマンドレットを作成する Microsoft およびサード パーティ。
  5. IT 担当者はおそらく PowerShell をある程度知っているので、デプロイを自動化する際により快適に感じるかもしれません。(デプロイ スクリプトは、そのようなブラック ボックスではありません。)

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

  1. Rake は、Ruby コミュニティを通じて広く使用されているため、より大きなコミュニティを持っています。
  2. Ruby は PowerShell よりも表現力の高い言語ですが、ビルド スクリプトをシンプルに保ちたいと思うでしょう。
  3. Albacore を使用すると、rake を使用して .NET プロジェクトを簡単に構築できます。
  4. Rake には、タスクをグループ化するための優れた名前空間メカニズムがあります。

どちらのソリューションも、ソリューションを構築するために機能します。チームに適したものを選択してください。それが役立つことを願っています。

于 2010-10-07T04:55:55.700 に答える
18

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

そうは言っても、私には明らかに自分自身の偏見と好みがあり、どちらのツールを使用したいかがわかります。だからこれを一粒の塩で取り、私の好みを理解してください...

.................。

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

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

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

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

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

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

どちらを使用すべきかについて直接的な回答はしていませんが、それがお役に立てば幸いです。うまくいけば、どちらがあなた/あなたのチームにとってより良いかを決定することを考えるのに十分なことをあなたに与えました。

于 2010-10-05T20:19:53.827 に答える
0

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

Crawler-Lib Build-Tools サンプル

于 2014-08-12T11:49:52.290 に答える