18

Microsoft が現在提供している多くのアプリケーション展開オプションについて理解しようとしています。

少し調べてみると、数十の紛らわしい用語が見つかりました。

  • 「WPFアプリ」
  • 「クリックワンスアプリ」
  • 「WPF ClickOnce アプリ」
  • 「MSアプリ」
  • 「XBAPアプリ」
  • 「ClickOnce でデプロイされた XBAP アプリ」
  • 「ClickOnce アプリをインストールしました」
  • 「WPFウェブアプリ」
  • 「ASP.NET Web アプリ」
  • 「ASP.NET MVC Web アプリ」
  • 「シルバーライトアプリ」
  • 「フルWPFアプリ」
  • 「同期フレームワークをサポートする ClickOnce」

調査結果を以下の 7 つの個別のアプローチに整理しました。フィードバックをいただければ幸いです:

  1. 「MSIで展開されたWPFアプリ」(多くのインストールオプションを許可)

    • ターゲット コンピューターで必要な MSI ランタイム
    • オプション付きウィザード
    • ユーザーごとまたはマシンごとに指定できます
    • 管理者によって設定されたアクセス許可によってのみ制限され、ターゲット コンピューター上のファイルとレジストリを変更できます
    • デスクトップにショートカットを配置できます
    • システムファイルなどを置き換えると、ターゲットコンピューターでDLL地獄に簡単に入ることができます
    • 更新は大きなマイナスです: 利用可能な更新を検出するには、組み込みではなく、追加のツール/カスタム プログラミングが必要です
    • ユーザーはアプリケーションを使用するためにオンラインである必要はありません
  2. 「ClickOnce でデプロイされた WPF アプリ」: (自動更新が必要で、サンドボックスで実行する場合に適しています)

    • 2 回クリックする必要があり (ハイパーリンクをクリックし、[はい] をクリックします)、ユーザー入力は不要です
    • 現在のユーザーのみ、マシンごとのインストールなし
    • デスクトップにショートカットがない
    • 通常のアプリケーションのようにプログラム リストに表示されます
    • アプリケーション ファイルは常に ../My Documents/My Applications にコピーされます。
    • あなたのアプリケーションへのショートカットがスタートメニュー/あなたの会社名に置かれます
    • オペレーティング システムから隔離されているため、ターゲット コンピューターを変更できません
    • 新しいバージョンを自動的に検出して更新する
    • それらをWebサーバーに置くだけで公開されます(クライアントがそれらを検出して取得する場所)
    • .NET 2.0 以降が必要
    • Java Web Start と同等
    • は、(1) 簡単な展開、(2) 簡単な更新、(3) ターゲット コンピュータへの影響が少ない、(4) 管理者権限が不要という 4 つの問題を解決します。
    • 「低影響」と見なされる
    • 2 人のユーザーが同じ ClickOnce アプリケーションを同じマシンにインストールしている場合、お互いが壊れることはありません。
    • セキュリティにCASを採用
    • ユーザーはアプリケーションを使用するためにオンラインである必要はありません
    • .NET ランタイムが必要なため、スタンドアロンの ClickOnce アプリは Firefox および Firefox を搭載した Mac では動作しません。
    • ブラウザーで実行されるため、単一ウィンドウのアプリに制限されます
    • ClickOnce マニフェストの作成は、Silverlight などよりもはるかに簡単です。IDE がほとんどすべてを実行してくれるからです。ファイルをどこかでホストする必要があるだけです (Web URL の場合もあれば、ネットワーク UNC の場合もあります)。
  3. 「XBAP App」:.xbapファイルをxcopyで展開、IEやFirefoxでWebページのように瞬時に表示

    • XBAP モデルの真の目標は、従来の HTML と JavaScript の Web サイト (または Flash アプレット) に相当する WPF を作成することです。
    • ターゲット コンピューターは、Web ブラウザー (IE または Firefox) で Web 経由でインストールせずにアプリケーションを実行するだけです。
    • 非常に簡単な展開、完全な .NET Framework (Silverlight ではなく)、およびブラウザーのナビゲーション モデルが必要なイントラネット アプリケーションに適しています。
    • 99% の WPF 機能 (Silverlight の WPF 機能のサブセットとは対照的)
    • ClickOnce を介して自動的に展開することもできますが、XCOPY がより一般的です
    • YourApp.xbap は実際には ClickOnce 配置マニフェストです
    • サンドボックスで実行
    • アプリケーションを使用するには、ユーザーがオンラインである必要があります
    • これらは、「Windows ベース」のアプリケーションではなく、「ページ ベース」のアプリケーションである必要があります。
    • 「XBAP は、すべてのコンテンツをブラウザー ウィンドウに表示するという理由だけで、ブラウザー内で実行されているように見えます。これは、ブラウザー プロセス内に読み込まれる ActiveX コントロール (および Silverlight) によって使用されるモデルとは異なります。」
    • XBAP は、.NET 3.5 がインストールされている限り、Web ページのようにブラウザーに表示されるだけで、「プロンプトなし」のエクスペリエンスを提供します。
    • XBAP は相互運用機能を介して WinForm コントロールを使用できません
    • Windows のドラッグ アンド ドロップの使用を許可しない
    • 最も高度な WCF 機能は許可されておらず、XBAP は、XBAP がホストされているサーバー以外のサーバーと通信できません。
    • 「アプリケーションが完全な信頼を必要とする場合は、スタンドアロンの WPF アプリを構築し、ClickOnce を使用して展開することを検討する必要があります」( C# 2008 の Pro WPF )
    • トリック: 複数の xbap アプリケーションを 1 つの HTML ページの複数の iframe に埋め込むことができます。
  4. 「Silverlight アプリ」: クライアントのブラウザーで実行され、.NET フレームワークのダウンロードされた 4MB サブセットを使用します (つまり、3D はありません)。

    • クロスブラウザ(アプリはOperaやSafariでも利用可能)
    • アプリケーションの更新は ClickOnce や XBAP と同じくらい簡単です
    • シングル ウィンドウ アプリ
    • アプリケーションはもちろんサンドボックスにあります
    • 非同期のみ
  5. 「ASP.NET MVC with JQuery/AJAX」: RAD と TDD の点で WPF での開発に匹敵する新しい開発プラットフォーム

    • このアプローチは、WPF/Silverlight アプローチと共に検討する価値があります
  6. 「ASP.NET アプリ」: ViewState などを使用した従来の Web アプリケーションは、ASP.NET MVC が受け入れられるにつれて、おそらくますます使用されなくなります。

  7. 「WinForm アプリ」: 従来の Windows アプリケーションであり、WPF が受け入れられるにつれて、ますます使用されなくなります。

特に次の点についてフィードバックをいただければ幸いです。

  • コントロールの再利用性 (たとえば、Silverlight で開発した場合、XBAP でコード/コントロールを再利用できますか?)
  • 時々オフラインで、時々オンラインで、WCFへのアクセスが必要なクライアントへの最良のアプローチは何ですか(おそらくclickOnceアプリだと思います)
4

6 に答える 6

2

素晴らしいまとめ、エドワード。

Silverlight は WPF のサブセットであるため、Silverlight のコードの多くは、WPF および WPF XBAP アプリで直接使用できます。XAML の場合は、名前空間 URI を変更する必要があり、おそらく手動で微調整する必要があります。
XAML から Silverlight への変換では、名前空間 URI も変更する必要がありますが、Silverlight にない WPF 要素が使用されている場合はリファクタリングが必要になる場合があります。WPF と Sync Framework は、オンライン/オフライン アプリケーションに最適なオプションです。WPF/同期フレームワーク アプリの例については、シンジケート クライアント エクスペリエンス スターター キットを参照してください。また、Silverlight + Windows Live Mesh は、オンライン/オフライン機能を提供します。

于 2009-01-20T16:39:38.807 に答える
1

XBAP を「Silverlight for Windows のみ」と簡単に片付けることはできません。完全な WPF セットを使用するため、XBAP に課せられた部分信頼の制限内で作業する限り、WPF アプリと XBAP の両方に同じコードベースを使用できます。

また、.NET 3.5 の時点で、WCF は部分信頼の下で XBAP で動作します。完全信頼の WPF アプリほど多くのことはできませんが、それでも便利です。

于 2009-01-21T22:33:32.350 に答える
1

MS がクライアント アプリケーションに対してサポートする展開オプションは次のとおりです。

  • MSI (すべての Windows アプリ)
  • Clickonce (.Net クライアント アプリのみ)

Clickonce は WPF 固有ではありません。

XBAPS は、クリック ワンス デプロイされ、信頼できるセキュリティ サンドボックス内でブラウザーがホストする WPF アプリです。WinForms アプリはクリック ワンスで展開でき、ブラウザーでホストできます。

Silverlight は (ほとんどの場合) WPF と互換性のあるソースです。SL コントロールを WPF コントロールとして再コンパイルできます。

ブラウザでホストされていないクリックワンスは、おそらくあなたにぴったりです。

于 2009-01-20T18:44:15.543 に答える
1

AppStart エクスペリエンス:

MSI = Windows のみ。多くのクリック。使用前にインストールしてください。非常に巨大でリソースを大量に消費するアプリに適しています。アプリはDVDで配布できます。アプリはすべてを行うことができます。技術制限なし。

ClickOnce = Windows のみ。Web ページからアクティブ化できます。一度ダウンロードされます。発信元 (サーバー) に関する情報を保持し、自動的に更新できます。アプリが制限されています。.NET が必要

Silverlight = Windows/Max/Linux (まもなく) および将来のモバイル (予定) で動作します。ウェブページであるか、html に埋め込むことができます。コードはサーバー上にあり、インストールされることはありません。Silverlight-Runtime が必要です。WPF のサブセットを提供します

XBAP = Silverlight に似ていますが、Windows 専用です。誰もそれを必要としません。シルバーライトの方がいい

プログラミング技術:

Silverlight = クライアント マシン上で実行されます。WPF* を使用

ASP.NET = .NET のサーバー マシン上で実行されますが、クライアント マシン上では Javascript/html が実行されます。

WinForms = 古いテクノロジー

WCF = ブラウザー ベースのアプリでは機能しません。分散アプリ用です。クライアントマシンへのすべてのドアを開くことができます。WCF の使用 = MSI が必要です。

WCF は、サーバーに適したフレームワークを提供します。インターフェイスに REST を使用する場合、クライアントで WCF は必要ありません。クライアントは、ClickOnce および MSI がインストールされたアプリで接続/切断できます。Silverlight と ASP で appstart の Web ページに接続する必要があります。

XAML は、silverlight/wpf/xbap で再利用できます。wpf/silverlight のマイナーな変更。私が知っているように、wpf/xbap に変更はありません。

于 2009-01-21T00:16:54.420 に答える
0

Live Framework(Live Mesh vNext)によって利用可能になったもう1つの展開オプションは、メッシュ対応Webアプリケーション(MEWA)です。これにより、Silverlight、DHTML、およびFlashアプリをパッケージ化して、Liveデスクトップでオンラインで実行したり、Windowsデスクトップでオンライン/オフラインで実行したりできます。MEWAをメッシュにインストールして、メッシュ内のすべてのデバイスに自動的にデプロイすることができます。アプリの新しいバージョンがリリースされた場合、更新をすべてのデバイスに同期することもできます。

Silverlight / DHTML / Flashに加えて、Live Frameworkの将来のバージョンは、おそらく同様の展開機能を備えたMSIおよびCABパッケージアプリをサポートするというヒントがあります。

メッシュ対応Webアプリのドキュメント:http: //msdn.microsoft.com/en-us/library/dd199554.aspx

于 2009-02-26T09:08:08.940 に答える
0

「MSIアプリ」をリストしました。Windows インストーラは、Windows にプログラムをインストールおよびアップグレードするための Microsoft のテクノロジです。作成されるインストール パッケージには、「.msi」拡張子が付きます。(当初は「Microsoft Installer」と呼ばれる予定でしたが、「Windows Installer」に変更されましたが、拡張子はそのままです。) インストール パッケージを作成する標準的な方法を定義します。パッケージは、さまざまなツール (InstallShield、WiX、Visual Studio など) で作成できます。WPF アプリに限定されません。これを使用して、ほぼすべての種類のアプリケーションをインストールできます。

于 2009-01-20T17:40:56.357 に答える