SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
Ext.Directことはじめ
Japan Sencha UG 勉強会 第4回@東京
自己紹介

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

ロボットとかやってる部署にいるのに関わったことがありません
(T_T)
http://www.sec.co.jp/robot

perl, Ext JS とか
アジェンダ

1.   Ext.Directの紹介
2.   しくみについて
3.   実装について
4.   デモ
1.Ext.Directの紹介
Sencha Touch / Ext JS

(Client Side) JavaScriptフレームワーク
● UIコンポーネント
  きれいなUIを実現 (tree,grid,form...)
● MVC
  疎結合な構成
● ユーティリティ
  dom, drag&drop, history, state,
  keymap, format ...
Sencha Touch / Ext JS
Examples
http://www.sencha.com/products/extjs/examples/




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

● サーバとのAjax通信を隠蔽してくれる
 →JavaScriptからサーバ側のメソッドを呼び出す感じ
  (Remote Procedure Call)
● Senchaのデータモデルと組み合わせると便利
Ext.Direct

● サーバとのAjax通信を隠蔽してくれる
 →JavaScriptからサーバ側のメソッドを呼び出す感じ
  (Remote Procedure Call)
● Senchaのデータモデルと組み合わせると便利
  デモではこちらをメインに紹介
2.しくみについて
Ext.Direct
通常のAjax
クライアントJavaScript                       サーバアプリ
                   ① Ajaxリクエスト&レスポンス




      ②レンダリング
      (Ext JSコンポーネント)
Ext.Direct
Direct(下ごしらえ)
クライアントJavaScript                         サーバアプリ
               ① 呼び出せるAPIを問い合わせ




② API一覧を登録
             Ext.direct           ルーター
                             サンプル、Directパックなどに含まれる
                              ● APIの一覧を準備する
                              ● 約束ごとにしたがってAPIを呼び出す
Ext.Direct
Direct(下ごしらえ)
クライアントJavaScript                                                              サーバアプリ
                        ① 呼び出せるAPIを問い合わせ


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



② API一覧を登録
                    Ext.direct                                ルーター
Ext.direct.Manager.addProvider(Ext.app.REMOTING_API);
                                                       サンプル、Directパックなどに含まれる
                                                        ● APIの一覧を準備する
                                                        ● 約束ごとにしたがってAPIを呼び出す
Ext.Direct
Direct(実行)
 クライアントJavaScript                                    サーバアプリ


             ① 登録したAPIをメソッド呼び出し
              例)EchoClass.echo("hoge",fn);
                          ② Ajaxリクエスト

                                                    ③ リクエストパース
                                                      メソッド呼び出し
                                                      レスポンス作成
                 Ext.direct                  ルーター
④ レスポンスパース
  コールバック呼び出し                             サンプル、Directパックなどに含まれる
⑤ コールバックで結果を処理                            ● APIの一覧を準備する
 例)fn = function(res) {                   ● 約束ごとにしたがってAPIを呼び出す
       alert(res);
    };
Ext.Direct
Direct(DirectStore)
 クライアントJavaScript                                  サーバアプリ


             ① 登録したAPIをメソッド呼び出し
              例)EchoClass.echo("hoge",fn);
                         ② Ajaxリクエスト
                     Ext.data.DirectStoreを利用すると
                     データ更新(CRUD)操作に対して①⑤を自動で実行。 ③ リクエストパース
                       ↓                          メソッド呼び出し
                     Grid,Treeなどのデータが自動同期される。     レスポンス作成
                 Ext.direct               ルーター
④ レスポンスパース
  コールバック呼び出し                             サンプル、Directパックなどに含まれる
⑤ コールバックで結果を処理                            ● APIの一覧を準備する
 例)fn = function(res) {                   ● 約束ごとにしたがってAPIを呼び出す
       alert(res);
    };
3.実装について
ルーター

ルーターの実装について
● ExampleのDirect (php)
● Ext.Direct Pack (php,ruby,.Net,CF)
  http://dev.sencha.com/deploy/ext-direct-pack.
  zip
● Sencha Marketのconnectors
  https://market.sencha.com


● Ext.Server (node)
Ext.Server

node.jsのライブラリ。
npm対応。
https://github.com/xenophy/ext-server


サーバでもExt JSライクにものづくり。
Ext.Directではデータ構造がわかりやすくなるメ
リットも。
 JavaScript <-> JSON <-> JavaScript
4.デモ
準備
node.js,npmをインストール
例) % brew install node

Ext.Serverをインストール
% npm install ext-server

サンプル
https://github.com/MtBlue81/DirectSample-
ExtServer
実行
サーバ起動
% node server.js

ブラウザでアクセス
http://localhost:8888
ご静聴ありがとうございました。

Contenu connexe

Tendances

Javaセキュアコーディングセミナー東京第3回演習の解説
Javaセキュアコーディングセミナー東京第3回演習の解説Javaセキュアコーディングセミナー東京第3回演習の解説
Javaセキュアコーディングセミナー東京第3回演習の解説
JPCERT Coordination Center
 
メタプログラミングRubyはこの付録が美味しい
メタプログラミングRubyはこの付録が美味しいメタプログラミングRubyはこの付録が美味しい
メタプログラミングRubyはこの付録が美味しい
Shigeru UCHIYAMA
 
ちょっと詳しくJavaScript 第4回【スコープとクロージャ】
ちょっと詳しくJavaScript 第4回【スコープとクロージャ】ちょっと詳しくJavaScript 第4回【スコープとクロージャ】
ちょっと詳しくJavaScript 第4回【スコープとクロージャ】
株式会社ランチェスター
 
Python で munin plugin を書いてみる
Python で munin plugin を書いてみるPython で munin plugin を書いてみる
Python で munin plugin を書いてみる
ftnk
 

Tendances (20)

JavaScript入門
JavaScript入門JavaScript入門
JavaScript入門
 
Swift 2.0 で変わったところ「前編」 #cswift
Swift 2.0 で変わったところ「前編」 #cswiftSwift 2.0 で変わったところ「前編」 #cswift
Swift 2.0 で変わったところ「前編」 #cswift
 
Javaセキュアコーディングセミナー東京第3回演習の解説
Javaセキュアコーディングセミナー東京第3回演習の解説Javaセキュアコーディングセミナー東京第3回演習の解説
Javaセキュアコーディングセミナー東京第3回演習の解説
 
メタプログラミングRubyはこの付録が美味しい
メタプログラミングRubyはこの付録が美味しいメタプログラミングRubyはこの付録が美味しい
メタプログラミングRubyはこの付録が美味しい
 
SEH on mingw32
SEH on mingw32SEH on mingw32
SEH on mingw32
 
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
 
PHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 とPHP と SAPI と ZendEngine3 と
PHP と SAPI と ZendEngine3 と
 
JavaScript 講習会 #1
JavaScript 講習会 #1JavaScript 講習会 #1
JavaScript 講習会 #1
 
php-src の歩き方
php-src の歩き方php-src の歩き方
php-src の歩き方
 
ジェネリック関数の呼び出され方 #cocoa_kansai
ジェネリック関数の呼び出され方 #cocoa_kansaiジェネリック関数の呼び出され方 #cocoa_kansai
ジェネリック関数の呼び出され方 #cocoa_kansai
 
ちょっと詳しくJavaScript 第4回【スコープとクロージャ】
ちょっと詳しくJavaScript 第4回【スコープとクロージャ】ちょっと詳しくJavaScript 第4回【スコープとクロージャ】
ちょっと詳しくJavaScript 第4回【スコープとクロージャ】
 
Task
TaskTask
Task
 
おいしいLisp
おいしいLispおいしいLisp
おいしいLisp
 
シェル入門
シェル入門シェル入門
シェル入門
 
Functional Way
Functional WayFunctional Way
Functional Way
 
TensorFlow XLA 「XLAとは、から、最近の利用事例について」
TensorFlow XLA 「XLAとは、から、最近の利用事例について」TensorFlow XLA 「XLAとは、から、最近の利用事例について」
TensorFlow XLA 「XLAとは、から、最近の利用事例について」
 
Testman
TestmanTestman
Testman
 
PHPの今とこれから2014
PHPの今とこれから2014PHPの今とこれから2014
PHPの今とこれから2014
 
pecl-AOPの紹介
pecl-AOPの紹介pecl-AOPの紹介
pecl-AOPの紹介
 
Python で munin plugin を書いてみる
Python で munin plugin を書いてみるPython で munin plugin を書いてみる
Python で munin plugin を書いてみる
 

Similaire à Ext.directことはじめ

Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携
Shinichi Tomita
 
勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発
Kazuki Nakajima
 
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE).NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)
Tusyoshi Matsuzaki
 
実践 Reactive Extensions
実践 Reactive Extensions実践 Reactive Extensions
実践 Reactive Extensions
Shin Ise
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
Akira Inoue
 
50分で掴み取る ASP.NET Web API パターン&テクニック
50分で掴み取る ASP.NET Web API パターン&テクニック50分で掴み取る ASP.NET Web API パターン&テクニック
50分で掴み取る ASP.NET Web API パターン&テクニック
miso- soup3
 
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
Masatoshi Tada
 

Similaire à Ext.directことはじめ (20)

Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携Streaming API で実現する クラウド ⇔ イントラ連携
Streaming API で実現する クラウド ⇔ イントラ連携
 
Ajax 応用
Ajax 応用Ajax 応用
Ajax 応用
 
How to Make Own Framework built on OWIN
How to Make Own Framework built on OWINHow to Make Own Framework built on OWIN
How to Make Own Framework built on OWIN
 
勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発勉強会force#3 iOSアプリ開発
勉強会force#3 iOSアプリ開発
 
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE).NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE)
 
実践 Reactive Extensions
実践 Reactive Extensions実践 Reactive Extensions
実践 Reactive Extensions
 
Reactive Extensionsで非同期処理を簡単に
Reactive Extensionsで非同期処理を簡単にReactive Extensionsで非同期処理を簡単に
Reactive Extensionsで非同期処理を簡単に
 
ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説ASP.NET シングル ページ アプリケーション (SPA) 詳説
ASP.NET シングル ページ アプリケーション (SPA) 詳説
 
やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介
 
How To Drink Wsgi
How To Drink WsgiHow To Drink Wsgi
How To Drink Wsgi
 
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)
 
HTML5&API総まくり
HTML5&API総まくりHTML5&API総まくり
HTML5&API総まくり
 
50分で掴み取る ASP.NET Web API パターン&テクニック
50分で掴み取る ASP.NET Web API パターン&テクニック50分で掴み取る ASP.NET Web API パターン&テクニック
50分で掴み取る ASP.NET Web API パターン&テクニック
 
XPagesでRESTを使ってみたら、こんなんだった
XPagesでRESTを使ってみたら、こんなんだったXPagesでRESTを使ってみたら、こんなんだった
XPagesでRESTを使ってみたら、こんなんだった
 
NoSQL and JavaScript 2013-02-09
NoSQL and JavaScript 2013-02-09NoSQL and JavaScript 2013-02-09
NoSQL and JavaScript 2013-02-09
 
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
 
Ext.direct
Ext.directExt.direct
Ext.direct
 
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
 
MlnagoyaRx
MlnagoyaRxMlnagoyaRx
MlnagoyaRx
 
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
 

Ext.directことはじめ