2012-04-03 6 views
14

昨日私はJavaScriptを使って最初のMetroスタイルアプリを開発し始めました。 Visual Studio 2011でこれらのテンプレートの1つを使用しました。このプロジェクトテンプレートには、WinJSに大きく依存する生成コードが多数含まれています。全体の構造は、ビューと対応するコードビハインドファイルを備えたASP.NETを思い出させます。ビュー間のナビゲーションを担当するnavigator.jsファイルもあります。データ全体はdata.jsにあり、さまざまな機能を使用して取得できます。メトロスタイルアプリ:WinJS a must?

私はbackbone.jsを使って作業していました。MVC構造やルーティングのような概念はかなり涼しかったです。私の質問は基本的にあなたがbackbone.jsを使ってそのようなMetroスタイルのAppを実装できるかどうかです。 WinJSを削除して最初から起動することはできますか? backbone.jsを現在の構造に統合しようとするべきですか?それはどうしましたか?サードパーティのJavaScriptフレームワークを使用するための制限はありますか?生成された構造をそのまま残す必要がありますか?

JavaScriptを使用したMetroスタイルアプリを開発するベストプラクティスとパターンは何ですか?あなたは、メトロスタイルのJavaScriptアプリケーション内で好きなJavaScriptフレームワークを使用することができます

おかげ

答えて

9

。これらは... WinJSフレームワークは、機能のカップルを実行し、最初のサービス要求などを行うデータを管理し、操作するための非UIのAPIのセットです

jQuery and Windows 8 JavaScript Metro Style Apps

:jQueryのについては、この関連の質問を参照してください他のJavaScriptフレームワークに簡単に置き換えられます。 2つ目はUIレイヤーです。ここで少し苦労するかもしれません。 WinJS UIは、Metro Design Languageに準拠するように設計されています。独自のUIレイヤー(たとえばjQuery UIを使用)で置き換えると、アプリケーションは正しく表示されません。

個人的に私は、UIレイヤーとランタイム(状態の永続性、アプリケーションの切り替えなど)との統合にWinJSを使用しますが、コードの大部分はバックボーンやノックアウトなどの標準的なJavaScriptライブラリを使用します確実に移植可能です。

+0

ありがとうございました。私はまだそのようなアーキテクチャを視覚化するのに苦労しています。 navigator.jsのロジックをバックボーンスタイルのルーティングに置き換えることはできますか? Backbone.Viewが必要か、それともWinJS UIにそのテンプレートとバインディングを貼り付けるのですか?または、WinJSのUIコードをBackbone.Viewにラップする必要がありますか?ビューがレンダリングされるとき、 'ready'イベントのようなアプリケーションのライフサイクルを制御するいくつかのイベントがまだあります。どこでこれらを扱うのですか? – Helikaon

+3

WinJSは、スタイルシート、base.js、およびui.jsの3つの部分で構成されていますが、他のフレームワークを使用することは可能です。スタイルシートに依存している場合は、 "見栄え"にするのに問題はありません。 –

+1

私は本当にバインディングのようなもののためにWinJSを使用することで多大なパフォーマンスの向上があるかどうか知りたいのですが、誰かがこれに関する情報を持っていますか? –

0

私はKnockout jsを使用し、MVVMにはjsを使用します。視覚効果については、jQueryを使用します。

(function() { 
    "use strict"; 

    var app = WinJS.Application; 

    app.onactivated = function (eventObject) { 
     require(["/scripts/knockout"], function(ko){ 
      // My knockout viewModel and data binding goes here 
     }); 
    }; 

    app.start(); 
})(); 

あなたが代わりにバックボーンを希望する場合、私はセットアップが同様のだろうと思います:。

マイデータの主は、このビットのようになります。

関連する問題