2012年5月24日木曜日

ASP.NET サイト/アプリを 無償クラウド AppHarbor にて公開する

.NETで作ったアプリを公開したい!という場合、公式クラウドAzureに無償枠はないため、作ったアプリはいつかお金を払わなければ捨て去る以外にありません。
もっと自由にアプリを作りたいが金はない、という場合.NETのPaaSであるAppHarborの使用をお勧めします。

AppHarborは.NETアプリケーション用のクラウド環境で、無料から使用できSQLServerなどのDBもつかえます。また、Azureのように「Azure専用」にアプリケーションを作成する必要がなく、いつもどおり作ったアプリケーションを配置することが出来ます(Azureをxxしているわけでは、ない)。

<AppHarborの使用手順>
1.Windows用Gitのインストール
以下サイトを参考にインストールを行います。
Set Up Git

途中で”コマンドプロンプト(cmd)からも使えるようにするか”と聞いてきますので、これはYesにしておいたほうが便利です。

2.Webサイト/Webアプリケーションを作る
いつもどおりWebサイトやWebアプリケーションを作ります。
※Webアプリケーションでないと駄目だという情報が幾つかありましたが、少なくともASP.NETの通常のWebサイト(MVCでない)はデプロイ可能でした。

3.ローカルリポジトリを作成する
コマンドプロンプトでWebサイト/Webアプリケーションのフォルダに移動し、
git init
を実行します。

~いろいろファイルを編集~

4.変更内容をローカルにコミットする
以下コマンドで、変更をローカルにコミットします。
git add .
git commit -m "my first commit"

※このあたりの詳細は、Gitの使い方を参照してください。

5.ローカルのコミットをAppHarborに反映する
AppHarborでは、事前にアカウントをつくりアプリケーションを作っておきます。
アカウントを作った後のトップ画面で、Create new application の箇所にアプリケーション名を入れてCreateボタンを押せばOKです。名前は2で作成したものと同名にしておいたほうが懸命と思われます。

AppHarborでアプリケーションが作られると、以下のようなメニューが表示されると思います。
一番下にある「REPOSITORY URL」をクリックすると作成したアプリケーションのリポジトリがクリップボードにコピーされます。その内容を、

 git remote add appharbor xxxx

のxxxxの部分と置き換えてコマンドを実行してください。



現時点でのイメージは以下のようになっています。
AppHarbor上にリポジトリをつくり、そのremote宛先をaddで登録したところです。

 宛先の登録が終わったら、以下コマンドで発行を行います。

git push appharbor master


このコマンド後コンパイルが走り、しばらくするとWebサイトが発行されます。先ほどのメニューのHostnamesというところから、作成されたWebサイトのアドレスが参照できます。

発行後ファイルに変更を加えた場合は、手順4からの作業(登録除く)の繰り返しになります。
Gitのコマンド的には以下の通りです。
~ファイル変更~

git add .
git commit -m "my second commit"
git push appharbor master

※commit時のメッセージ内容は自由です。


※その他※
・PreCompileについて
AppHarbor上でプリコンパイルがデフォルトオンになっているせいか、App_Codeのフォルダがサイトに含まれているとエラーになります。
これを回避する場合、SettingsにあるBuildの箇所で、プリコンパイルをオフにしてください。

・SqlServer/EntityDataFrameworkの使用について
アドオンを追加することで可能になります(20MまでフリーのDBあり)。
接続文字列はConfiguration Variableを使用するか、SqlServerの詳細画面から確認可能です。


Entity Frameworkを使用する場合は、Entity Framework metadata:のところにEntityDataFrameworkを使用するとweb.configに勝手に挿入されるconnectionStringの"res:~.msl"の部分を設定するとEntityFramework用の接続文字列を作成してくれるので、それをweb.configに設定すればきちんと動きます(自動で変換してくれるといううわさも聞いたが、そんなことはなかった)。

動作は.NetFramework4.0/EntityDataFramework4.0で確認しました。


・Git Hubについて
せっかくGitを使っているので、Git Hubに登録するのはアリだと思います。Git Hubはソースコードを共有するためのサービスで、Rubyなどのプロジェクトではかなり良く使われています。
Git HubからAppHarborにつなぐことも出来るようなので、これを機会に試してみても良いと思います。



0 件のコメント:

コメントを投稿