Upload
hideki-hashizume
View
384
Download
2
Embed Size (px)
Citation preview
@84zume
Pro ASP.NET MVC 3 Framework CHAPTER 23
Deployment
目次
1. デプロイが完了するまでの作業
1. プロセス
2. ツール
2. ビルド
1. ビュー以外のビルド
2. ビューのビルド
3. パッケージ作成
1. Web.config変換
2. DBの移行準備
4. デプロイの方法
2
デプロイが完了するまでの作業
1. プロセス
2. ツール
3
デプロイが完了するまでの作業 4
アプリ 保存
ビルド テスト パッケージ 作成
デプロイ
ビュー以外のビルド ビューのビルド
Web.config変換 ファイルコピーデプロイ デプロイメントパッケージデプロイ ワンクリック発行 Binデプロイ
プロセス
ツール
• Visual Studio (開発) • MsBuild (ビルドとパッケージ作成) • MsTest (コンポーネントテスト) • Web配置ツールとWeb配置エージェント
ビルド
1. ビュー以外のビルド → 特に話なし。
2. ビューのビルド
5
ビューのビルド
• ビルド時にビューの構文エラーを発見できる
• プロジェクトファイルを変更する
• 開発時、常にビューをビルドするのは重たい ビルドサーバー上のみで実行するのが良さそう
aspnet_compiler.exeが使えそう
Msbuild /p:MvcBuildViews=true XXXX.sln ってすればOK
6
<PropertyGroup> ... <MvcBuildViews>true</MvcBuildViews> </PropertyGroup>
メリット
方法
懸念
デモ
1. Viewを記述間違えする。
1. @name -> @nam
2. ビルドする。
3. 実行時に、間違えに気付く。
1. MvcBuildViewsをtrueに変える
2. Viewを記述間違えする。
1. @name -> @nam
3. ビルド時に、間違えに気付く。
7
1. Web.config変換
2. DBの移行準備 → 特に話なし。
パッケージ作成
8
Web.config変換 -概要-
Web.config変換とは…
パッケージ作成時に、ビルドモードに応じて、
設定項目の追加・削除・変更などを行う機能
• DB接続文字列(開発用DBと本場用DB)
• デバッグやログ情報出力管理(開発だけ出力する)
9
Web.config
Web.Debug.config
Web.Hoge.config
Web.Release.config Web.config パッケージ作成
良く使われる場面
Web.config変換 -たとえば-
• Web.config本体
• Web.Release.config
• パッケージ化された後のWeb.config (完成形)
10
<system.web> ・・・ <compilation debug=“true” targetFramework=“4.0”/> </system.web>
<system.web> ... <compilation xdt:Transform=“RemoveAttributes(debug)” /> <httpCookies domain=“” requireSSL=“true” xdt:Transform=“Insert”/> </system.web>
<system.web> ... <httpCookies domain=“” requireSSL=“true”/> </system.web>
デプロイ
11
デプロイの種類 その1
ASP.NETアプリケーションのデプロイ方法は多々ある。
1. ファイルをコピーしてデプロイする
• 一番初歩的な方法。避けるべき。
• どこかで間違える可能性が大きい。
コピーするファイルを間違えるとか。
コピー先を間違えるとか。
2. デプロイメントパッケージを使ってデプロイする
• 一番良いと思う方法。推奨。
• MsBuildでパッケージを作る。
• IISもしくはPowerShellを使って、そのパッケージを読み込む。
12
デプロイの種類 その2
3. ワンクリック発行
• 便利だけど、準備が大変な方法。開発用途ならかなり使える。
• サーバー側に「Web配置」機能(エージェント機能!)をインストールする必要がある。
4. Binデプロイ
• サーバーにMVC3が
インストールしてなくてもOK。
13
デモ
1. 配置パッケージの作成
2. 配置パッケージの確認
3. PoweShellにて実行をしてみようとする。
14
最後に
15
まとめ
1. ビルドに詳しくなるべし!
MsBuildは難しいから、psakeを覚えると良いと思う。
2. 常時デプロイできるように準備すべし!
必要となるときにすぐデプロイできるのは重要
3. CIの勉強をすべし!
16
参考文献
• 「Avoiding MvcBuildViews build time impact in developers environment by using ASP.NET compiler as an external tool」
http://www.luisrocha.net/2011/10/avoiding-mvcbuildviews-build-time.html
• Programming Razor,pp.71-74
17