ext.directことはじめ

21
Ext.Directことはじめ Japan Sencha UG 勉強会 第4回@東京

Upload: shuhei-aoyama

Post on 18-Dec-2014

1.252 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Ext.directことはじめ

Ext.Directことはじめ

Japan Sencha UG 勉強会 第4回@東京

Page 2: Ext.directことはじめ

自己紹介

セックという会社で働いています。

ロボットとかやってる部署にいるのに関わったことがありません(T_T)

http://www.sec.co.jp/robot

perl, Ext JS とか

Page 3: Ext.directことはじめ

アジェンダ

1. Ext.Directの紹介

2. しくみについて3. 実装について4. デモ

Page 4: Ext.directことはじめ

1.Ext.Directの紹介

Page 5: Ext.directことはじめ

Sencha Touch / Ext JS

(Client Side) JavaScriptフレームワーク

● UIコンポーネント

きれいなUIを実現 (tree,grid,form...)

● MVC疎結合な構成

● ユーティリティdom, drag&drop, history, state, keymap, format ...

Page 6: Ext.directことはじめ

Sencha Touch / Ext JSExampleshttp://www.sencha.com/products/extjs/examples/

Directわかりにくい・・・そもそも動かないし(´・ω・`)

Page 7: Ext.directことはじめ

Ext.Direct

● サーバとのAjax通信を隠蔽してくれる

 →JavaScriptからサーバ側のメソッドを呼び出す感じ

  (Remote Procedure Call)

● Senchaのデータモデルと組み合わせると便利

Page 8: Ext.directことはじめ

Ext.Direct

● サーバとのAjax通信を隠蔽してくれる

 →JavaScriptからサーバ側のメソッドを呼び出す感じ

  (Remote Procedure Call)

● Senchaのデータモデルと組み合わせると便利

デモではこちらをメインに紹介

Page 9: Ext.directことはじめ

2.しくみについて

Page 10: Ext.directことはじめ

Ext.Direct

クライアントJavaScript サーバアプリ

① Ajaxリクエスト&レスポンス

②レンダリング(Ext JSコンポーネント)

通常のAjax

Page 11: Ext.directことはじめ

Ext.Direct

クライアントJavaScript サーバアプリ

① 呼び出せるAPIを問い合わせ

ルーター

サンプル、Directパックなどに含まれる

● APIの一覧を準備する

● 約束ごとにしたがってAPIを呼び出す

Direct(下ごしらえ)

Ext.direct② API一覧を登録

Page 12: Ext.directことはじめ

Ext.Direct

クライアントJavaScript サーバアプリ

① 呼び出せるAPIを問い合わせ

ルーターExt.direct② API一覧を登録

サンプル、Directパックなどに含まれる

● APIの一覧を準備する

● 約束ごとにしたがってAPIを呼び出す

Direct(下ごしらえ)

Ext.ns('Ext.app');Ext.app.REMOTING_API = {"url":"router.php","type":"remoting","actions":{"EchoClass":[{"name":"echo"," len":1}}};

Ext.direct.Manager.addProvider(Ext.app.REMOTING_API);

Page 13: Ext.directことはじめ

Ext.Direct

クライアントJavaScript サーバアプリ

① 登録したAPIをメソッド呼び出し

 例)EchoClass.echo("hoge",fn);

ルーター

② Ajaxリクエスト

Direct(実行)

Ext.direct

③ リクエストパース

メソッド呼び出し

レスポンス作成

④ レスポンスパース

コールバック呼び出し

⑤ コールバックで結果を処理

 例)fn = function(res) { alert(res); };

サンプル、Directパックなどに含まれる

● APIの一覧を準備する

● 約束ごとにしたがってAPIを呼び出す

Page 14: Ext.directことはじめ

Ext.Direct

クライアントJavaScript サーバアプリ

① 登録したAPIをメソッド呼び出し

 例)EchoClass.echo("hoge",fn);

ルーター

② Ajaxリクエスト

Direct(DirectStore)

Ext.direct

③ リクエストパース

メソッド呼び出し

レスポンス作成

④ レスポンスパース

コールバック呼び出し

⑤ コールバックで結果を処理

 例)fn = function(res) { alert(res); };

Ext.data.DirectStoreを利用すると

データ更新(CRUD)操作に対して①⑤を自動で実行。

  ↓Grid,Treeなどのデータが自動同期される。

サンプル、Directパックなどに含まれる

● APIの一覧を準備する

● 約束ごとにしたがってAPIを呼び出す

Page 15: Ext.directことはじめ

3.実装について

Page 16: Ext.directことはじめ

ルーター

ルーターの実装について● ExampleのDirect (php)● Ext.Direct Pack (php,ruby,.Net,CF)

http://dev.sencha.com/deploy/ext-direct-pack.zip

● Sencha Marketのconnectorshttps://market.sencha.com

● Ext.Server (node)

Page 17: Ext.directことはじめ

Ext.Server

node.jsのライブラリ。

npm対応。

https://github.com/xenophy/ext-server

サーバでもExt JSライクにものづくり。

Ext.Directではデータ構造がわかりやすくなるメ

リットも。 JavaScript <-> JSON <-> JavaScript

Page 18: Ext.directことはじめ

4.デモ

Page 19: Ext.directことはじめ

準備

node.js,npmをインストール

例) % brew install node

Ext.Serverをインストール

% npm install ext-server

サンプルhttps://github.com/MtBlue81/DirectSample-ExtServer

Page 20: Ext.directことはじめ

実行

サーバ起動% node server.js

ブラウザでアクセスhttp://localhost:8888

Page 21: Ext.directことはじめ

ご静聴ありがとうございました。