1

ASP.NET Web API プロジェクトで Ember.js を使用して、古き良き ASP.Net Web サイトを単一ページ アプリケーションに変換しています。私のチームのすべての開発者と私自身は、javascript にかなり慣れていません。過去 2 週間、基礎を学び、SPA フレームワークを比較しました。私の質問がばかげているように聞こえる場合は、事前にお詫び申し上げます:)

これまでに見つけたすべての Ember チュートリアルには、すべてのハンドルバー テンプレートが 1 つのファイルに含まれていました。その時が来たら、それらを別個のファイル (*.hbs) に分割することは明らかだと思いましたが、そうではありません。ここで何かが完全に欠けている可能性がありますが、必要なときにテンプレートを元に戻す方法を約 4 つ見つけました。おすすめの方法を教えていただきたいです。

  1. アプリの読み込み時に、すべてのテンプレート ファイルを連結して挿入します。アプリの読み込み時 (つまり、訪問者がアプリに入るたび) にすべてのテンプレート ファイルを 1 つに連結するサーバー側の C# コードを書くことができます。処理の点では奇妙に思えますが、生成された HTML ファイルがかなり重くなるためです。

  2. 必要に応じて、Ajax を介して各テンプレートを動的に読み込みます。ここで行われることのほとんど。まだ試していませんが、このソリューションが好きです。最初の読み込みでアプリ全体を読み込むのではなく、必要なときに非同期でテンプレートを取得する方が理にかなっています。

  3. Asp.Net MVC のバンドル メカニズムを使用します。csharp-ember-handlebars のようなものを見つけて、サーバー側でテンプレートをプリコンパイルし、それらを単一の JavaScript ファイルとして返しました。うまくいきますが、新しいテンプレートを追加すると、プリコンパイルされたファイルがかなり重くなるように感じます。

  4. Grunt をプラグインgrunt-ember- handlebars と共に使用して、テンプレートをプリコンパイルします。私はGruntに精通していませんが、プロジェクトに取り組んでいるすべての開発者がNode.jsをインストールする必要があることをよく理解している場合+ Grunt +コマンドプロンプトの使用方法を学びます+各コミットの前にコマンドを実行することを忘れないでください(彼らが変更した場合)テンプレート)。これは、Web デザイナーにとって明らかではありません。また、ビルド アクションに grunt を追加すると、開発チーム全体 (他のプロジェクトに取り組んでいる) が自分のマシンに grunt を持つ必要があります (受け入れられません)。

この問題に対処するには、シンプルでエレガントなソリューションを見つける必要があります。私のプロジェクトは 35 の他のプロジェクトを含むソリューションに含まれており、ビルドを複雑にしすぎたり、不安定なライブラリに依存したりすることはできません。自分のプロジェクトに Ember を使えると思ったとき、私は楽観的すぎたのかもしれません。どんな提案でも大歓迎です!

4

1 に答える 1