Setty.org
まえがき
すべての.net開発者は、少なくとも一度はさまざまな環境の構成管理で問題に遭遇したと思います。 多くの場合、他の開発者に干渉することなく、データベースへの接続文字列を変更する新しい機能を開発する必要があります。 これを行うには、通常、ローカルデータベースへの接続文字列が構成で変更され、その後、これらの変更がコミットされます。システムがローカルマシンで動作を停止したため、他のすべての開発者はinしています。
チームが分散している場合、特定の設定が必要になることがよくあります。 ソリューション内の異なるプロジェクトに同じ設定が必要な場合、それらをコピーするだけです。 最後に、さまざまなロジックを構成に追加できるようにしたいと思います。 たとえば、開発者のローカルマシンでは、送信されたメールをディスクに保存し、テストサーバーではメール送信サービスを使用してメールを送信する必要があります。 構成を管理するための追加のメカニズムなしでは、実装が難しい多くの例を提供できると思います。
はじめに
導入部で説明した欠陥により、Settyと呼ばれる小さなOSSプロジェクトが作成されました。 Settyは、さまざまな「変換言語」を使用して* .configファイルを生成します。プロジェクトの最初のバージョンでは、xsltを使用して構成を生成しました。世界でよく知られている別の.net「変換言語」-カミソリ、および「変換言語」で問題なくプロジェクトを拡張する機能を追加しました。
インストールと使用
最も簡単なインストール方法は 、Visual Studio 2010のプラグインを使用することです。しかし、私たちはもっと厄介な道を進み、自分でそれを行います(razor + .net 4)。
- Visual Studioでプロジェクトを作成します(asp.net mvc 3プロジェクトを作成しました)
- web.configをコピーし、それに.cshtml拡張子を追加します。
<configuration> <appSettings> <add key="MyFirstSetting" value="@Model["hello"]" /> ...
Model["hello"]
は、カミソリを使用して設定を読み取る方法の例です。
- ここから実行可能なsetty.exeをダウンロードし、.slnファイルの横に配置します。
- キー/設定値が保存されるフォルダーを作成します(通常、プロジェクトのあるフォルダーの1レベル上にあります)。 設定のソースとなるappSettingセクションを使用してApp.configファイルを作成します。
<configuration> <appSettings> <add key="hello" value="Hello World"/> </appSettings> </configuration>
- .slnの横に、特別な.settyファイルを作成します。これは、実行可能ファイルが設定へのパスを知るために必要です。 .setty-設定への絶対パスまたは相対パスが含まれます。
- プロジェクトをアンロードして* .csprojファイルを変更し、次のxmlをルート要素に追加します。
<Target Name="Setty" BeforeTargets="PreBuildEvent"> <Exec Command=""$(MSBuildProjectDirectory)\..\setty.exe" /silent" /> </Target>
これは、各ビルドの前にsettyが構成ファイルを再生成するために必要です。
- プロジェクトをダウンロードして再構築すると、web.configファイルは次のようになります。
<configuration> <appSettings> <add key="MyFirstSetting" value="Hello World" /> ...
実際のプロジェクトでは、設定フォルダーは次のようになります。
設定を読み取るための階層システムは、すべての.net開発者にとって明らかだと思います。
欠点
Settyを使用すると、* .configファイルが各ビルドの前に生成されるため、NuGetを使用して構成に追加された変更が失われる可能性があります。 つまり 開発者はこれらの変更を* .config.cshtmlファイル自体にコピーする必要があります。
* .config.cshtmlでは、.netの* .configファイルの見慣れた強調表示が失われます。
追加情報
1.より詳細なドキュメントを含むプロジェクトサイト-setty.org
2. githubのプロジェクトコードとディスカッションの場所-Settyソースコード
3. Visual Studio 2010のプラグイン-VS 2010プラグイン
PSこのプロジェクトは、当社で数年間使用され、非常に成功しています。