ページ

2011年9月19日月曜日

◆LightSwitch、アプリケーションの配布

アプリケーションの発行
アプリケーションを発行するには、「ビルド」メニューから「XXXの発行」を選び表示されたウィザードに従って項目を指定していけばよい。

image
ここではデスクトップを選択。

image
ローカルを選択。

image
「アプリケーションファイルを配置する場所」はデフォルトではプロジェクト配下の「Publish」フォルダーになっているのでそのままとする。
「既定のデータベースを発行する方法」、そもそも既定のデータベースとは何かというところだが、多分システムで使用する構成用のデータベース(ユーザーアカウントやロールなどを管理)ではないかと思う。
ここでは「データベースに直接発行する」を選択。

image
「データベースに直接発行する」時の接続文字列と思われる。基本的にはデフォルトのままで良いと思うが、サーバー名は汎用性を持たせるために「.\sqlexpress」とした。

image
アプリケーションの管理ユーザーを作成する。
初回ログイン時はこれを使ってログインしたのちに、一般ユーザーとかを作るのではないかと思う。
パスワードには複雑さ制限が掛かっていて、記号を含む必要があるようだ。

image
必須コンポーネントのインストールを指定する。
配布先がインターネット接続環境であればデフォルトのままで良いと思われる。

image
アプリケーションで使用するデータベース(NorthWind)への接続文字列を指定する。
これもデフォルトで良いと思うがやはりデータベースを「.\sqlexpress」にした。

image
証明書は使用しない。

image
「発行」ボタンを押して完了。

プロジェクト配下のPublishフォルダーにセットアップモジュールが作成されるのでSetup.exeを実行すればローカルにアプリケーションがインストールされる。
また、この時点でガイドツアーサンプルデータベースが作成される。
image

アプリケーションの実行
スタートメニューからアプリケーションを起動すると以下のようなログイン画面が表示されるのでウィザードで指定したユーザーIDとパスワードでログインする。
image

アプリケーションが起動すれば成功だ。
image

ちなみに、ウィザードで
image

「スクリプトファイルを作成してデータベースをインストールおよび構成する」を選択した場合はウィザードに「データベースの構成」画面がひとつ追加されて、ここで作成するデータベース名を指定する。
ちなみに、デフォルトではソリューション名(プロジェクト名?)が設定されているが、直接発行の時はアプリケーション名が指定されていたので合わせて「ガイドツアーサンプル」とした方が良いようにも思う。
image

これによって、Publishフォルダーにデータベース作成用のSQLが作成されるので展開先に持って行って実行すれば構成用のデータベースができるのだろう。
実際やってみたが、DBの器はできたのだが何やら色々とエラーが出て中身は作られなかった。
とりあえず、開発したPCから「NorthWind」と「ガイドツアーサンプル」データベースを持って行ってアタッチすればアプリケーションは動作した。

ただし、アプリケーション固有で作ったContactListの中身は空だった。

アプリケーションと発行の再変更
現状では「ContactList」にデータが存在しない時、「Find」ボタンを押すとNull参照のエラーになってしまうので、これを修正する。

ソリューションエクスプローラで「ContactList」を右クリックし「画面コードの表示」を選択する。

Find_Executeメソッドを以下のように書き換える。

        partial void Find_Execute()
{
if (ContactSet.SelectedItem == null)
{
this.ShowMessageBox("連絡先が選択されていません");
}
else
{
Application.ShowSearchCustomer(ContactSet.SelectedItem.ContactName);
}
}


ちなみに、メッセージボックス表示にはShowMessageBoxメソッドを使う。
LightSwitchはデスクトップアプリケーションとWebアプリケーションの切り替えが可能なようなので(まだよく判っていないが)、環境に依存しない抽象的なメソッドを使うようになっているのだろう。


「ビルド」メニューから再度発行して動作を確認。


LightSwitchアプリケーションではClickOnceの仕掛けを使用しているっぽい。
発行を行い、Publishフォルダーが更新されればインストール済みのアプリケーションは起動時にそれを自動的に取り込むようだ。


アプリケーション管理者としての業務
「商品一覧」画面にはMTG Blog: ◆LightSwitch、承認の有効化とアクセス許可の作成にてアクセス制限を付与しているので現時点ではメニューに表示されない。
そこで現在のユーザーにアクセス権を付与してみる。


実行画面の左ペイン(メニュー)から「役割」をクリック。


「アクセス許可」の追加ボタンをクリック。
image


追加された行のドロップダウンを展開し「View Products」を選択。
image


これで「管理者」ロールに「View Products」権限が追加されたので、ログオンしなおせば「商品一覧」メニューが表示される。
image

0 件のコメント:

コメントを投稿

私が最近チェックした記事