Silverlight-out-of-browser-applications
Silverlight-ブラウザー外アプリケーション
次に、エンドユーザーのマシンにインストールして、通常のWindowsアプリケーションのようにWebブラウザーの外部で実行できるアプリケーションのSilverlightサポートを検討します。 アプリケーションをブラウザー外で実行できるようにしたい主な理由は3つあります-
- インタラクション
- オフライン
- 高信頼
インタラクション
より良い相互作用設計が可能になる場合があります。 Webのナビゲーションモデルは、一部のアプリケーションには特に適していません。 たとえば、アドレスバーと[戻る]ボタンは、スペースの無駄で無駄な場合があります。
ここでのSilverlightの重要性は以下のとおりです-
- Webアプリケーションは、Silverlight、Flash、AJAXなどのクライアント側のテクノロジーを使用して、単一のページを継続的に更新し、おそらく他のページに移動する必要をなくすことができます。
- 一部のアプリケーションでは、ユーザーはブラウザが単一ページと見なすものに何分も、あるいは何時間も費やすことができます。
- この種のアプリケーションの場合、[戻る]ボタンを押すと、アプリケーションを終了するというかなり驚くべき効果があります。アプリケーションに入る前のページに戻ってしまうためです。
- 明らかに、Webに似ていないアプリケーションは、ブラウザーのChromeを削除するため、ブラウザーを実行することでより適切に処理されます。 一般的に、ブラウザが不足する理由はユーザビリティだけではありません。
オフライン
この機能を使用するもう1つの理由は、オフライン実行を有効にすることです。 ブラウザ外操作用にSilverlightアプリケーションをインストールすると、ローカルマシンのユーザーごとのリポジトリにコピーされ、Windowsの[スタート]メニューなど、アプリケーションを起動するための通常のオペレーティングシステムメカニズムを通じて利用可能になります。
- ユーザーがインターネットに接続していない場合でも、アプリケーションは利用可能になります。
- 明らかに、これは完全にサーバー側の情報に依存しないアプリケーションにのみ役立ちます。
- たとえば、小包配達サービス用の自動追跡アプリケーションは、ネットワーク接続なしではあまり役に立ちません。
- 一部のアプリケーションでは、時々接続障害が発生しても作業を継続できることが非常に役立ちます。
高信頼
Silverlightのバージョン4では、信頼できるアプリケーションのサポートが追加されました。 通常、Silverlightのセキュリティサンドボックスは、ユーザーのファイルへのアクセスなど、特定の特権操作をブロックします。
ただし、ブラウザ外のアプリケーションは昇格を要求する場合があります。 ユーザーがその要求を許可すると、アプリケーションは、COMオートメーションの使用やウィンドウ枠のカスタマイズなど、通常のWindowsアプリケーションが実行できるより多くの種類の作業を実行できます。
ブラウザー内で実行されるアプリケーションは決して信頼されないため、これらの機能を使用する場合はブラウザー外のアプリケーションを作成する必要があります。
OOBを有効にする
ブラウザー外実行アプリケーションを作成するにはどうすればよいですか? これはとても簡単だ。 Silverlightのプロジェクトプロパティの1つの設定を変更する必要があり、 AppManifest.xaml に適切な設定を追加するだけです。
仕組みを見てみましょう。
- マニフェストがブラウザー外実行がサポートされていることを示している場合、これは最初の影響はありません。 アプリケーションは通常どおりブラウザで実行されます。 ただし、ユーザーが右クリックすると、標準のSilverlight ContextMenu *は、コンピューターにアプリケーションをインストールするための追加のアイテムを提供します。
- ユーザーがその項目を選択すると、確認を求めるダイアログボックスが表示されます。 また、[スタート]メニュー、デスクトップ、またはその両方からアプリケーションにアクセスできるかどうかを尋ねます。
[スタートメニュー]
- コンテキストメニューに依存する必要はありません。 APIがあるので、ユーザーがクリックしてアプリケーションをインストールできるボタンを提供することもできます。APIを呼び出すと、インストールを開始できます。
- プログラムでインストールを開始しても、ユーザーにはダイアログボックスが表示されます。 ユーザーの同意なしにアプリをインストールすることはできません。
Silverlightアプリケーション
これは非常にシンプルなSilverlightアプリケーションです。 XAMLコードは次のとおりです。
<UserControl x:Class = "SimpleOob.MainPage"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d = "http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable = "d"
d:DesignHeight = "300" d:DesignWidth = "400">
<Grid x:Name = "LayoutRoot" Background = "White">
<Border BorderBrush = "Blue" BorderThickness = "4" CornerRadius = "20" >
<Border.Background>
<LinearGradientBrush StartPoint = "0,0" EndPoint = "0,1">
<GradientStop Offset = "0.0" Color = "White"/>
<GradientStop Offset = "0.15" Color = "#cef"/>
<GradientStop Offset = "1.0" Color = "White"/>
</LinearGradientBrush>
</Border.Background>
<TextBlock HorizontalAlignment = "Center" VerticalAlignment = "Center"
Text = "Silverlight Application" TextOptions.TextHintingMode = "Animated"
TextAlignment = "Center" TextWrapping = "Wrap"
FontSize = "72" FontFamily = "Trebuchet MS" >
<TextBlock.Effect>
<DropShadowEffect Color = "#888"/>
</TextBlock.Effect>
</TextBlock>
</Border>
</Grid>
</UserControl>
- ステップ1 *-ブラウザー外実行を有効にするには、プロジェクトの*プロパティ*に移動し、Silverlightタブをクリックします。 必要なのは、「ブラウザから実行中のアプリケーションを有効にする」チェックボックスをオンにすることだけです。
このアプリケーションを実行すると、Webブラウザーがまったく表示されないことに気付くでしょう。
実際、Visual Studioはユーザーに代わって決定を下しました。 out-of-browser 実行を有効にすると、デバッグ設定が不当に変更されました。
- ステップ2 *-ここで、*ソリューションエクスプローラー*で、Silverlightプロジェクトが太字で表示され、スタートアッププロジェクトであることを示しています。
以前はそうではありませんでした。 それはWebプロジェクトでした。 現時点では、このチェックボックスがエンドユーザーの状況をどのように変化させるかを示したいため、これは望ましくありません。
- ステップ3 *-Webプロジェクトをスタートアッププロジェクトに戻します。
- ステップ4 *-アプリケーションを再度実行すると、アプリケーションがブラウザに戻っていることがわかります。
- ステップ5 *-Webページを右クリックします。 コンテキストメニューに通常のSilverlightエントリがあり、インストールする追加アイテムがあります。
- ステップ6 *-2番目のオプションを選択すると、次のように[アプリケーションのインストール]ダイアログボックスが表示されます。
[スタートメニュー]
アプリケーションの元のWebサイトのルートURLが表示されていることに注意してください。 Visual Studioが提供するローカルデバッグWebサーバーを使用しているため、localhostと表示されます。
ステップ7 *- *OK をクリックすると、アプリケーションはブラウザとは別の独自のウィンドウで実行されます。
このウィンドウが何らかの形で所有されている、またはブラウザに接続されていると考えるのは自然なことかもしれませんが、そうではありません。 ブラウザを閉じると、このウィンドウは表示されたままになります。 さらに重要なことは、このウィンドウを閉じてから、ブラウザをまったく使用せずにアプリケーションを再実行できることです。
- ステップ8 *-*スタート*メニューで*検索*ダイアログボックスを開き、アプリケーション名の入力を開始すると、通常のWindowsアプリケーションと同じように表示されます。
- ステップ9 *-ブラウザをどこにでも表示せずに実行できます。
アプリケーションをアンインストールするには
アプリケーションのデフォルトのコンテキストメニューを使用すると、簡単に実行できます。 ユーザーは、他のアプリケーションと同じ方法でこれをアンインストールすることを合理的に期待できます。
Webページを右クリックして[このアプリケーションを削除…]を選択して削除することもできます。
OOB設定
単一の設定を変更するだけでブラウザー外操作が可能になりますが、実際には、通常はそれ以上のことをする必要があります。 AppManifest.xaml ファイルには、 out-of-browser 操作に関連するいくつかの設定を含めることができます。これは通常、Visual Studioを使用して構成します。
お気づきかもしれませんが、[ブラウザ外で実行する]チェックボックスをオンにすると、Visual Studioは[ブラウザ外の設定]というラベルのボタンを有効にしました。
ボタンをクリックして見てみましょう。 次のダイアログボックスが生成されます。
- 最初に設定できるのは、 Window Title として表示されるテキストです。
- また、ウィンドウの寸法と位置を修正するオプションもありますが、現時点では自動のままにします。
- このショートカット名は、*スタート*メニューに表示され、インストールされるとアプリのデスクトップリンクに表示されます。
- また、コンテキストメニューとアプリケーションのインストールダイアログに表示されるテキストでもあります。
- このアプリケーションの説明は、ショートカットにカーソルを合わせるとツールヒントに表示されます。
- さまざまなサイズのアイコンを提供しています。 これらはプロジェクトに組み込む必要があります。