ArcGIS Server JS APIを使用して、アプリケーションを堅牢に実装するのに最適なフレームワークはどれですか?


13

以上の上のEsriフォーラム、利用者マット・モイルズは、EsriのJSのサンプルで使用されるアプローチは、HTMLやJavaScript、CSSを使用してWebマッピングアプリケーションの堅牢な開発に適していないことが示唆されました。

JavaScriptアプリケーション開発に対するESRIの推奨アプローチは古く、時代遅れです。サンプルに従うことはお勧めしません。Dojo 1.7は、非同期の依存関係の読み込みでAMDをサポートします。私は道場のボイラープレートテンプレートから始め、arcgis apiをその中に「使用」します。サンプルは、本格的なアプリケーション開発者には適していません。それらは、ほとんどの概念実証スニペットにすぎません。

深刻なアプリケーションは、構造化を支援する何らかのフレームワークの助けを借りて開発する必要があります。私はdojox.mvcを大成功で使用しています!ただし、他のオプションには、backbone.js、spine.js、またはjavascript MVCなども含まれます。

Dojo Boilerplate- https://github.com/csnover/dojo-boilerplate

  • この声明に誰かが賛成/反対しますか?
  • ArcGIS Server JS APIを使用したWebアプリケーション開発へのより良いアプローチのオンライン例はありますか?

1
はい、dojo 1.7はAMDを使用しますが、最新のesri js apiはdojo 1.6.1の上に構築され、それらが提供またはダウンロードできるレイヤーパッケージ/モジュールはAMD形式ではありません。したがって、機能しません。ちょうどAMD使用する(1.6.1道場)JS APIをロードし、1.7の道場する愚かなようだ
スティーブ・

今年のEsri Developer Summitで、backbone.jsのセッションがあることに気付きました。
スティーブンリード

最新の道場ボイラープレートを使用してトラブルに遭遇しました。esriがサポートしているので、私は1.6.1ボイラープレートパッケージにフォールバックしました。ESRIは問題になります。dojo 2.0用のAPIのAMDバージョンをリリースします。ここに私が使用したボイラープレートプロジェクトがありますblog.rebeccamurphey.com/a-dojo-boilerplate(Matt Moyles)
-dubvfan87

回答:


10

サンプルは単なるサンプルであり、道場ボイラープレートは優れたリソースですが、現在のスノーバーではボイラープレートは実行可能なソリューションではないことをモイルズに同意します。そこには、2つの異なるバージョンのdojoがあります。現在のjs APIは、dojo 1.6.1の従来のrequire構文をまだ使用しており、AMDをサポートしていません。新しいjs apiが1.7.xでビルドされると確信しており、従来のdojo.definedモジュールをAMDに変換することはほとんど簡単なので、そのルートを選択します。

プロジェクトを今すぐ開始する場合は、使用するサーバー側フレームワークを選択します(アプリケーションに必要な場合。サーバー側の要件のない単一ページビューアーであれば、複雑すぎることはありません)。rails、php、asp、その他何でもかまいません。フレームワーク/言語のベストプラクティスに従ってください。

esriはdojo上に構築されているため、大規模なWebアプリケーションを作成するための優れたjsフレームワークを既に読み込んでいます。dojoのローダーがウィジェットをロードし、dojoに構文が必要なモジュールをロードできるようにコードを構造化します。ウィジェットやモジュール、使用dijitsとdojoxツール道場の書き込み時に必要に応じて(http://dojotoolkit.org/documentation/tutorials/1.6/declarehttp://dojotoolkit.org/documentation/tutorials/1.6/recipes/custom_widget/HTTP ://dojotoolkit.org/documentation/tutorials/1.6/understanding_widgethttp://dojotoolkit.org/documentation/tutorials/1.6/templatedhttp://dojotoolkit.org/documentation/tutorials/1.6/cdn)。サンプルのようにインラインjsを記述しないでください。作成するプロダクションの時間にすべてのコードを最適化するプロファイルを作成します。

Esriとカスタムコードは、コンパイル用のソースを提供していないため、ある程度分離しておく必要があります-既にビルドおよび縮小されています。ビルドツールはそんなに好きではありません。

編集

私は、構築されたイサキツール、esri_slurpあなたのアプリケーションパッケージとして使用することができますので、ESRI JS APIをダウンロードするために。これにより、ビルドを実行して単一のファイルを取得できます。


3

サンプルが深刻なアプリケーションであることを意図していないことは明らかです。サンプルです。

とはいえ、典型的なインターネットの世界では、Backboneのようなものを使用することは、拡張性があり複雑であることが知られているが、多くの場合不要なdojo を使用することはあまり一般的ではありません。

目的をより詳しく説明できれば、確実な推奨事項を提示する方が簡単です。Backboneのようなものは、完全なクライアントサイドアプリケーション用に作成されています。したがって、実際にほとんどの作業をPHP、ASP、またはnodejsで実行している場合は、それほど必要ではありません。または、複数のページとビューをすべて接続する必要がない場合は、jQueryだけで簡単に取得できます。フレームワークはまったく使用できません。


1
esriコードがdojoの上に構築されている場合、なぜdojo以外のものを使用するのでしょうか?Dojoは、バックボーンとjqueryのすべてを実行できます。既に非常に有能なフレームワークをロードしていますが、なぜ他のフレームワークをロードすることをお勧めしますか?
スティーブ

@tmcwは、アプリケーションの開発に識別ツールのサンプルを使用すべきではないことを十分に理解していますが、ArcGIS.comベースのより完全なサンプルについてはどうでしょうか。Esriはこれらと間違った方向に進んでいますか?
スティーブンリード

@tmcw私の目的のためとして、ここで私はEsriの道場のアプローチを使用して、上に働いたサイトの例です。明日もう一度開始する場合、別の方法で行う必要がありますか?
スティーブンリード

2
@Steveうん、興味があればここで講演の録音があります。
スティーブンリード

1
@StephenLead私はそこにいた:)
スティーブ

-3

完全に同意する。ESRIはJavaScript APIです。ArcGISViewer for Flexと競合しているように感じます。サンプルは、どのようにdijiitを使用できるかを示す概念の証明にすぎません...単純な純粋なJavaScript APIを提供し、ユーザーがBing、Google、Openlayersなどのどのフレームワークを使用するかをユーザーに決定してもらいたいと思います。 ..


-4

OmniStationの新しいJavaScriptフレームワークおよびビルドツールであるjsRevolutionは、市場で最も堅牢な市販のフレームワークです。自明ではないアプリケーションの大規模な展開向けに設計されています。OmniStationを代表しています。私たちのクライアントには、100から1000のクラスがあり、10から100の開発者さえいます。これらのクライアントはフレームワークを欠くことはできませんが、jsRevolutionはわずか25クラスの特定のアプリケーションにとって実用的です。

jsRevolutionの多くの機能には、非同期ロード、コードレスネームスペース、URL切り替え可能コードビュー(開発から展開まで)、ビルド時検証付きコードレス継承、ロード時検証付きコードレスインターフェイス、コードレス抽象化(Mixinとも呼ばれる)、機能リソースをインスタンスクラス、マルチバージョニング(同じアプリケーション内のクラスの複数バージョン-実行が簡単)、および他の多くの機能として識別するため。


こんにちはライアン、私たちのサイトへようこそ!商業的な投稿に関するポリシーに準拠するため、回答を少し編集しました。詳細については、よくある質問をご覧ください。他の人に連絡してもらいたい場合は、ユーザープロフィールを使用して連絡先情報を提示できます。
whuber

1
ご使用のテクノロジーを使用したArcGIS JS APIマッピングサイトのリンクはありますか?それ以外の場合、この答えはスパムのように感じます。
Devdatta Tengshe
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.