私のプロジェクトとこれらのJavascriptフレームワークについてどこが間違っていますか?


Answers

あなたのタイムラインとリソースについてはわかりませんが、複数のフレームワーク/環境の間で決定しようとしている場合は、まずプロトタイプを素早く構築しようとします。 たとえそれが単なる1つか2つの主要な機能であっても、私は、世界のすべての研究とドキュメンテーションが、ツールで何かを実際に構築しようとしていることとこれまでに一致しないことを知ります。 私はそれぞれと一緒に1日を取ると言うと、どのくらいあなたが得るかを参照してください。 それはあなたに、どのツールがタスクに対応していて、あなたにとって最も快適であるかを示す良い指標となります。

Question

最初に、作成したいプロジェクトの最も骨がないのは、単一ページのWebアプリケーションとして実装されたwikiエンジンです。 私は道に沿ってたくさんの機能を追加して、ゲット・ゴーから利用可能な一連の機能を計画しています。

基本的な機能

  • ページ作成(その記事のためのwiki記事とディスカッションフォーラムの両方を作成する)
  • マークアップとWYSIWYG ala markitup
  • マークアップ/ html / WYSIWYG間のオンザフライ変換
  • クイックナビゲートするサイドバー
  • 編集/表示を選択するための上部ツールバー

高度な機能

  • 別の方法でナビゲートする設定可能なサイドバー
  • 設定可能なツールバー(おそらく選択のマークアップ言語を追加する)
  • タグ
  • 編集可能なtodo
  • ファイルのアップロードと添付ファイルのドラッグアンドドロップ

エンジンはもともと、最も基本的なページの作成、マークアップとWYSIWYGの編集と保存で構成されます。 私は最終的に、この基本的なエンジンをドラッグ・アンド・ドロップ・イメージ・サポート、ファイル・アップロード、ライブ・データ・グラフ、およびビューをカスタマイズするためのサイドバーで拡張したいと考えています。

私はプロジェクトの基盤となるまともなプロジェクトをかなり広範に調査しましたが、TiddlyWiki以外には、優れたjavascriptベースのwikiエンジンがないようです。 また、既存のwikiエンジンの上にJqueryを適用することも考えましたが、とにかく最終的に書き直すことになると思います。 いずれにせよ、私はこの獣をJavaScriptのライブラリ+フレームワークで実装することになった。

リンゴのリンゴはあまりないので、これらのフレームワークのいくつかをお互いに実際に比較することはできません。 私は、それぞれのフレームワークの比較可能な部分に対して、比較コメント/質問を組み立てようとしましたが、私は訂正されています。

だからここに行く:

私自身の研究と意見に基づいて、私は以下の項目にリストを絞り込んだ。 私はSproutCore、corMVC、YUIなどのものを意図的に除外しました。私の限られた容量の中では、以下の項目がより適していると思っていました。

私のオプション

jquery / UI +バックボーン

全体

私が読んだことから、この組み合わせは多くの人に愛され、非常に柔軟で拡張性があります。 私の主な関心事は、この組み合わせは、よりデスクトップ指向のUIインターフェースを開発するための最良のポイントではないということです。

UI

jQueryUIやjqueryToolsは競争力があるかもしれませんが、確かに他のフレームワークのUI機能と同等のものではないようです。 具体的には、効果は重いようですが、まともなレイアウトスライスのサポートに欠けています。

javascriptMVC

全体

JavascriptMVCは、ドキュメンテーション(documentJS)、機能テスト(funcUnit)、およびコードと依存関係管理(stealJS)のほかに、本質的にjquery + MVC(jqueryMX)拡張機能のように見えます。 追加モジュールの利点を超えて、私は機能的な議論が実際にjqueryMXとバックボーンズになると思います。

  • 特徴:jupiter(メーカーjMVC)のfeatures概要
  • jqueryMXへのリンク

UI

JavascriptMVCは、 MXUIで利用できるものの上にMXUIアイテムを追加するので、少なくともそのカテゴリではわずかな勝利だと思います。

ノックアウト

全体

これに関する私の考えと懸念は、jquery +バックボーンのコメントと非常によく似ています。 どちらも同じような機能を提供するように見えますが、異なる視点からのみです。 よくある欠点は、ビジネスロジックとプレゼンテーションをデータバインドとあまりにも強く結びつけていること、そしてこのバインディング方法が複雑なUIインタラクションのために壊れてしまうことですが、なぜそれが問題ではないのか聞きたいのです。

  • バックボーンとノックアウトの概念のDiscussion
  • ノックアウトのFeatures

UI

現時点では空白

Dojo&ExtJS

全体

ディスカッションDojoとExtJSを組み合わせるつもりです。なぜなら、私はそれらについてはほとんど分かっていないし、彼らはほぼ同じ空間で遊ぶように思えるからです。 これらの2つについてのスタックオーバーフローに関する情報の大半は古くなっているようです。 私が見てきたことから、それらは両方ともデスクトップキャリバーアプリの実装に適した大きなフレームワークです。 Dojoは貧弱な文書化のために編成されていましたが、もはやそうではないようです。 ExtJSはもちろん商用ライセンスを持っていますが、あなたが得るものは本当に合理的です。 ExtJSのウィジェットは、Dojoよりも専門的にはやや面倒なようですが、私は確かに修正することができます。 私は両方の経験がある人から聞くことに興味があります。

UI

Dojoにはdijit UIライブラリがあります。ExtJSにはUI機能がありますが、Extコアにはありません。 ここにはdocumentationとそのdemos

カプチーノ

全体

そして、カプチーノがあります。 CSSはなく、HTMLはありませんが、既存のJavaScriptライブラリを使用するのは難しいかもしれません。 Objective-Jは恐ろしいようではありません。特に、彼らはプレーンなjavascriptも書くことができるようにすることを奨励しています。 デモは印象的で、WikiエンジンのUIニーズに密接に近づいているようです。 ココアベースのAPIは、それに精通していない人にとっては大変なことですが、おそらくそれは価値があります。 私はレイアウトエンジンが常に使いやすいとは聞いていませんが、このような若い、恐らく破壊的な技術は確かにいくつかの欠点を持っています。

UI

現時点では空白

私はそんなに書くことをお詫びしますが、少なくとも安価な答えのトンを望んでいるかどうかは少なくとも、 それで、あなたはどう思いますか? wikiエンジンのような私のデスクトップの基礎となるべきものは、時間がたつにつれ、より多くの機能が豊富になる(複合体を読む)ようになるだろうか?




AngularEmberの両方を省略しているので、候補者の全体的な選択に間違っていると言えます。両方とも、リストされている他のどのフレームワークよりも適しています。

全体として、私はAngular.jsがこのフレームワークのフレームワークだと言います。

ルーティングの強調

あなたが話していることの多く(ナビゲーション用のいくつかのサイドバー、単一のページアプリ)は、ルーティングの機能、またはフロントエンドがURLナビゲーションバーのテキストをどのように解釈するかです。

Angular.jsとEmberの両方に優れたルータがあり、追加のコードなしで必要なものすべてを実現できます。

あなたの利益のために、あなたの単一ページのwikiを作成するのに使用できるAngularの機能を簡単に説明します

サイト自体の構造

Angularには、UIルーターと呼ばれる驚くほどのライブラリがあり、カスタムナビゲーションを作成し、コンテンツを公開するためのSEOのフレンドリーな構造を設定することができます。 複数のビューはトップツールバーも許可します。

Uiのルータチュートリアル: http://cacodaemon.de/index.php?id=57 : http://cacodaemon.de/index.php?id=57

WYSIWYGエディタ

Angularはライブの双方向バインディングで構築されています(どこか別の場所に変更すると、自動的に変更されます)。このため、この種のエディタでうまく機能する多くの機能がパッケージ化されています。 いくつかの良いものがすでに作られており、それらを実装するだけです。

http://textangular.com/

グラフやその他の素敵なもの

Angularディレクティブは、再利用可能なChartコンポーネントの作成などの作業を行うように設計されています。 彼らはWordpressのウィジェットとまったく違うわけではありません。 これらの多くはすでに開発されており、Angularプロジェクトに参加することができます。

http://www.sitepoint.com/creating-charting-directives-using-angularjs-d3-js/

Emberに関して、私はそれについてはあまり知らないので、私はその特定の機能に話すことができません。