5

ほとんどの.NET開発者と同様に、私はカリフォルニア州アナハイムでのビルドイベントの基調講演を見ていて、JavaScript、HTML5、CSS3を使用してWindows8用のアプリケーションをビルドするための新しいサポートについて質問しました。

彼らはかなりの数の例を示し、新しいWindows8マーケットプレイスはこれらのテクノロジーを使用して作成されたとさえ言っていました。私が推測しているのは、JavaScriptを使用してWindowsアプリ(.NETに直接アクセスできる)をプログラムできるという意味で、JavaScriptをC#の同じカテゴリに分類する場合だけです。

JavaScript、HTML5、CSS3を使用して構築したアプリケーションのいくつかを考えると、明らかにWeb開発者であるということは非常に素晴らしいニュースでした。

私が持っている質問は、Windows8用に構築したアプリケーションが本当にWebに準拠しているかどうかです。Windows 8用のアプリを作成し、向きを変えてWeb上で起動できますか?現在オンラインになっているWebアプリケーションは、デモした機能の一部にアクセスできますか?

私が言ったように、これは素晴らしい進歩になるでしょう。私がかなりの数のアプリケーションを書いたSilverlightと、それがブレンドロックでどのように機能するかをおろそかにしないでください。そして、JavaScriptをC#で書かれた私のアプリのいくつかに置き換えるという考えはオプションではありません。

これは、「Web」ベースの開発者にWindows用に開発させるためだけのものですか、それともアプリケーションを構築するためのクロスプラットフォームソリューションですか?

4

3 に答える 3

7

少し説明すると、Javascript / HTML5 / CSS3 Windowsプログラムは、.NetではなくWinRT(Windowsランタイム)と呼ばれる新しいレイヤーで実行されます。新しいWindowsMetroスタイルアプリはすべて、古い.Netではなく、このレイヤーの上に構築されます。アプリでWinRT機能を利用している場合は、アプリを実行するためにWindowsが必要になることは明らかです。これらの機能を統合する場合は、これを選択します。(明らかに、アプリで何をしようとしているかによって異なります)すべての標準に準拠したアプリを構築し、システム上で問題なく実行できると思います。MS固有の機能を使用することはありません。その意味で、アプリとして起動するウェブページのようなものです。

その他の注意事項:

  • MSIEは現在-ms、それらの機能がW3Cによって受け入れられ、公式のクロスブラウザ名が付けられるまで、いくつかの特定のプレフィックスを使用しています。とは異なり-webkit-border-radius、、。-moz-border-radiusborder-radius

  • HTML5は、ほとんどのブラウザにまだ実装されていないグリッドなどのいくつかの機能を使用します。

  • Microsoftには、アプリの作成を容易にするために多くのJavascriptライブラリが含まれています。これらの多くはjQueryベースです。一部はWindows固有です。他の場所でそれらを使用するためのライセンスが何であるかわからない。jQueryは移植可能であることが許可されていると思いますが、WindowsのものはWinRTの外部で使用する意味がありません。

于 2011-09-16T17:53:21.377 に答える
5

@マット

「コンバース」を明確にするために、Metroアプリケーションとして実行されるHTML5で記述された標準のWebアプリ:

アプリケーションが「悪いこと」をしていないと仮定すると、そうです。Metroアプリ環境はデフォルトで制限されています。HTML5 / JSのアプリケーション内から非ローカルリソース(Webサイトなど)にアクセスするには、「Webコンテキスト」と呼ばれるものを作成する必要があります。

Webコンテキストは、アプリケーションがインターネットと安全でないリソースにアクセスできるようにすると同時に、同じコンテキストがWindowsランタイムAPIなどの特権リソースにアクセスするのを防ぎます。

つまり、Bing Mapsウィジェットをホストする必要があり、システムからGPS情報を取得する場合は、次のものが必要になります。

  1. Bing Mapsウィジェットを含むWebコンテキストをホストするページ内のiframe(デフォルトではローカルコンテキスト)
  2. window.postMessageを使用して、ローカルコンテキストとWebコンテキスト(iframeに含まれる)の間でデータを送信します
  3. 上記のローカルコンテキストからデバイスのGPS位置にアクセスするには、WindowsランタイムAPIを呼び出します

このアプリケーションモデルは、JSアプリケーション内で開かれたWebサイトが、データを取得するためにWindowsランタイムAPIを実行する不正なJSを持たないというセキュリティを提供します。安全でないリソースからのデータの場合はコンテキスト間でデータをプッシュする必要があるため、これはおそらく、既存のWebアプリケーションを実行するために再設計する必要がある最大の領域です。

于 2011-09-16T18:26:40.377 に答える
1

簡単な答えはノーです。WinRTスタックを使用して構築されたアプリは、「通常の」ブラウザーでは実行できません。ただし、その逆についてはよくわかりません。HTML5で記述された標準のWebアプリケーションをMetroアプリとして実行できるかどうかです。

于 2011-09-16T17:51:39.303 に答える