Enviar pesquisa
Carregar
Ext.direct
•
2 gostaram
•
1,187 visualizações
Shuhei Aoyama
Seguir
社内勉強会用資料
Leia menos
Leia mais
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 29
Baixar agora
Baixar para ler offline
Recomendados
Performance Schema @ MySQL Casual #2
Performance Schema @ MySQL Casual #2
Mikiya Okuno
Java による Web アプリケーションのプロトタイプのために最近使っている構成
Java による Web アプリケーションのプロトタイプのために最近使っている構成
Yu Nobuoka
Form libraries
Form libraries
Atsushi Odagiri
Ll xcode
Ll xcode
Net Kanayan
20160422 laravel.osaka
20160422 laravel.osaka
シオリ ショウノ
Adobe JSX入門
Adobe JSX入門
silvers ofsilvers
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~
normalian
Backbone.js
Backbone.js
daisuke shimizu
Recomendados
Performance Schema @ MySQL Casual #2
Performance Schema @ MySQL Casual #2
Mikiya Okuno
Java による Web アプリケーションのプロトタイプのために最近使っている構成
Java による Web アプリケーションのプロトタイプのために最近使っている構成
Yu Nobuoka
Form libraries
Form libraries
Atsushi Odagiri
Ll xcode
Ll xcode
Net Kanayan
20160422 laravel.osaka
20160422 laravel.osaka
シオリ ショウノ
Adobe JSX入門
Adobe JSX入門
silvers ofsilvers
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~
T51 jQueryで学ぶJavaScriptでのフロント開発~ASP.NET MVC3もあるよっ!~
normalian
Backbone.js
Backbone.js
daisuke shimizu
traceur-compilerで ECMAScript6を体験
traceur-compilerで ECMAScript6を体験
Toshio Ehara
Cubby 2006-08-23
Cubby 2006-08-23
Agata Toshikata
T sql の parse と generator
T sql の parse と generator
Oda Shinsuke
はじめてのVue.js
はじめてのVue.js
Kei Yagi
Kawaz的jQuery入門
Kawaz的jQuery入門
Kohki Miki
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
Mikiya Okuno
MyBatisで流れるようなメソッドチェーン
MyBatisで流れるようなメソッドチェーン
Shinichi Kozake
まだDOM操作で消耗してるの?
まだDOM操作で消耗してるの?
IRI MO
AngularJS入門
AngularJS入門
Kenji Shirane
CodeIgniterのページングに関して。
CodeIgniterのページングに関して。
Takatsugu Ishikawa
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
Vue.js で XSS
Vue.js で XSS
tobaru_yuta
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
Naoyuki Yamada
初めての Data api cms どうでしょう - 大阪夏の陣
初めての Data api cms どうでしょう - 大阪夏の陣
Yuji Takayama
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
Ayumi Goto
初めての Data API CMS どうでしょう - 仙台編 -
初めての Data API CMS どうでしょう - 仙台編 -
Yuji Takayama
大阪Node学園八時限目 「expressで作るWebアプリ」
大阪Node学園八時限目 「expressで作るWebアプリ」
Shunsuke Watanabe
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
Yuki Takei
Windows Azure PHP Tips
Windows Azure PHP Tips
Microsoft Openness Japan
ScalaMatsuri 2016
ScalaMatsuri 2016
Yoshitaka Fujii
初めての Data api
初めての Data api
Yuji Takayama
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Akira Inoue
Mais conteúdo relacionado
Mais procurados
traceur-compilerで ECMAScript6を体験
traceur-compilerで ECMAScript6を体験
Toshio Ehara
Cubby 2006-08-23
Cubby 2006-08-23
Agata Toshikata
T sql の parse と generator
T sql の parse と generator
Oda Shinsuke
はじめてのVue.js
はじめてのVue.js
Kei Yagi
Kawaz的jQuery入門
Kawaz的jQuery入門
Kohki Miki
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
Mikiya Okuno
MyBatisで流れるようなメソッドチェーン
MyBatisで流れるようなメソッドチェーン
Shinichi Kozake
まだDOM操作で消耗してるの?
まだDOM操作で消耗してるの?
IRI MO
AngularJS入門
AngularJS入門
Kenji Shirane
CodeIgniterのページングに関して。
CodeIgniterのページングに関して。
Takatsugu Ishikawa
Mais procurados
(10)
traceur-compilerで ECMAScript6を体験
traceur-compilerで ECMAScript6を体験
Cubby 2006-08-23
Cubby 2006-08-23
T sql の parse と generator
T sql の parse と generator
はじめてのVue.js
はじめてのVue.js
Kawaz的jQuery入門
Kawaz的jQuery入門
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
MyBatisで流れるようなメソッドチェーン
MyBatisで流れるようなメソッドチェーン
まだDOM操作で消耗してるの?
まだDOM操作で消耗してるの?
AngularJS入門
AngularJS入門
CodeIgniterのページングに関して。
CodeIgniterのページングに関して。
Semelhante a Ext.direct
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
Vue.js で XSS
Vue.js で XSS
tobaru_yuta
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
Naoyuki Yamada
初めての Data api cms どうでしょう - 大阪夏の陣
初めての Data api cms どうでしょう - 大阪夏の陣
Yuji Takayama
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
Ayumi Goto
初めての Data API CMS どうでしょう - 仙台編 -
初めての Data API CMS どうでしょう - 仙台編 -
Yuji Takayama
大阪Node学園八時限目 「expressで作るWebアプリ」
大阪Node学園八時限目 「expressで作るWebアプリ」
Shunsuke Watanabe
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
Yuki Takei
Windows Azure PHP Tips
Windows Azure PHP Tips
Microsoft Openness Japan
ScalaMatsuri 2016
ScalaMatsuri 2016
Yoshitaka Fujii
初めての Data api
初めての Data api
Yuji Takayama
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Akira Inoue
Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界
Yuji Takayama
Djangoフレームワークの紹介
Djangoフレームワークの紹介
Shinya Okano
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Yoshifumi Kawai
20091030cakephphandson 01
20091030cakephphandson 01
Yusuke Ando
Parse.comと始めるBackbone.js入門(jscafe7)
Parse.comと始めるBackbone.js入門(jscafe7)
Ryuma Tsukano
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Toshiaki Maki
node+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作る
Kiyoshi SATOH
Semelhante a Ext.direct
(20)
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Vue.js で XSS
Vue.js で XSS
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
初めての Data api cms どうでしょう - 大阪夏の陣
初めての Data api cms どうでしょう - 大阪夏の陣
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
初めての Data API CMS どうでしょう - 仙台編 -
初めての Data API CMS どうでしょう - 仙台編 -
大阪Node学園八時限目 「expressで作るWebアプリ」
大阪Node学園八時限目 「expressで作るWebアプリ」
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
Windows Azure PHP Tips
Windows Azure PHP Tips
ScalaMatsuri 2016
ScalaMatsuri 2016
初めての Data api
初めての Data api
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Data apiで実現 進化するwebの世界
Data apiで実現 進化するwebの世界
Djangoフレームワークの紹介
Djangoフレームワークの紹介
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
20091030cakephphandson 01
20091030cakephphandson 01
Parse.comと始めるBackbone.js入門(jscafe7)
Parse.comと始めるBackbone.js入門(jscafe7)
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
Spring Frameworkの今 (2013年版) #jjug_ccc #ccc_r17 #springframework
node+socket.io+enchant.jsでチャットゲーを作る
node+socket.io+enchant.jsでチャットゲーを作る
Ext.direct
1.
ExtJS入門 Ext.Direct 2012/11/22
2.
アジェンダ ● 案件紹介 ● ExtJS(Ext.Direct) ●
作ってみる ● one more thing.
3.
こんな案件あるよね ある日 「簡単なテーブルでCRUDアプリ作って。 これ画面イメージね。」 「期間?1週間くらいでチャチャッと作って。」 「( ゚д゚)ポカーン」 よくある(らしい)おはなし。
4.
画面イメージ (注)案件の実物とは異なります。
5.
こんな案件あるよね 簡単なアプリといっても・・・ ● 詰めてみると意外にやること多い。 ● 要望とか増えるんじゃない? 設計とか拡張性を考えたら得意なフレームワークがあ るといいよね。 ということで、ExtJSを使ってみた。
6.
ExtJS ってなに? JavaScriptベースでの クライアントMVCフレームワーク (開発:Sencha http://www.sencha.com/) ● きれいなUI
⇒ bootstrap, jQueryUI, etc ● MVC ⇒ Backbone.js, AngularJS, etc その両方が備わってる。
7.
ウリはたくさん ● Sencha Touch
- スマフォ向けRIAアプリ対応 ● Sencha Architect - ビジュアルエディタ ● Sencha Cmd - ビルドコマンド and more... 今回はこのへん触れません。m(_ _)m イチ押し ⇒ Ext.DirectとMVCアーキテクチャ
8.
Ext.Direct JavaScriptから擬似的にサーバクラス・メソッドを叩 く感じ(Remote Procedure Call) readystatusが何番だったら復帰して・・・とかのい つものAjaxコードが不要に。 やってることがわかりやすくなって、 可読性があがる。
9.
たとえば こんな構成(LAMP)で
サーバ ブラウザ (Apache) (ExtJS) RDB + PHP (MySQL)
10.
サーバ? ServerClass.php <?php class ServerClass
{ public function getFormData() { return array( 'success' => true, 'data' => array('name' => 'Aoyama') ); } } ?>
11.
クライアント? client.js <script type "text/html">
ServerClass.getFormData(function(ret) { console.log(ret.data.formData); // name => Aoyama }); </script>
12.
もちろん 使うための準備、お作法があるので・・・ 次からのサンプルでご紹介。 今回のサーバ側サンプルはPHP。 他の言語でも結構行けるらしい。 PerlとかJavaとか.Netとか。 https://market.sencha.com/extensions
13.
MVCは? 冒頭のCRUDアプリを目標にサンプルで確認。 1.
サーバでDBのアクセス用クラスを準備。 2. アプリのエントリポイントを作る。 3. モデルを準備。 4. ビューを準備。 5. コントローラで整理。
14.
その1 DBアクセスクラス準備 その前に、Ext Direct Packを配置。 http://www.sencha.com/products/extjs/download/ php/classess下にサーバクラスを実装します。 (このあたりはRooterの実装に依存)
15.
その1 DBアクセスクラス準備 CRUDを想定して、 Members::getAll, add, update,
remove を実装。 コメントの@remotableがPHP版Direct用メソッドの印。 (スタブなら固定配列を返すだけでもOK) class Members { /** * @remotable */ public function getAll() { return {DB取得の結果} } }
16.
その2 アプリのエントリポイント ベースとなるHTMLはExtJSとサーバメソッド情報(api.php)、エント リポイント用JS(myapp.js)を読み込む。 myapp.js Ext.onReady(function()
{ Ext.tip.QuickTipManager.init(); Ext.direct.Manager.addProvider(Ext.app.REMOTING_API); }); Ext.application({ アプリの各種設定(名前とか) });
17.
その3 モデル準備 model/Member.js (テーブルに利用するデータ定義) Ext.define('MyApp.model.Member',
{ extend : 'Ext.data.Model', fields :[ {name: 'section' , type: 'string'}, {name: 'name' , type: 'string'}, {name: 'offence' , type: 'int'}, {name: 'defence' , type: 'int'}, {name: 'speed' , type: 'int'}, {name: 'condition' , type: 'string'}, {name: 'birth' , type: 'timestamp'}, {name: 'weapon' , type: 'string'} ] });
18.
その3 データストア準備 store/Members.js (ストア=テーブルデータのコントローラ)
Ext.define('MyApp.store.Members', { extend : 'Ext.data.Store', model : 'MyApp.model.Member', proxy : { type : 'direct', api : { create : Members.add, // 1のサーバメソッドを指定 read : Members.getAll, ... }, reader : { type : 'json' ... }
19.
その4 ビュー準備 view配下に以下を準備。 Viewport.js
// 画面の下地、3ペインを定義 Header.js MemberList.js // センターに配置 Footer.js とりあえず3ペインで準備。 MemberList.jsがモデルに紐付くビューに。
20.
その5 コントローラで整理 controller/Members.jsを配置、 動作(create, update, delete)を記述。 ・データ読み込み(read)はストアのautoLoadにお任せ ・updateをeditorプラグインにお任せ
21.
できあがり Ajaxを意識せずにCRUD操作完了。
22.
one more thing チャートとか付けたくないですか? 簡単にビューを追加。データ連携できるのが強み。
- 「レゴのようだ」(某氏) ExtJSではチャートUI (Chartクラス)が準備されてるいるので拡張 して追加。 Ext.chart.Chart:ベクターデータ(SVG)を使ったグラフUI Raphaëlがベース(Sencha内に組込み) http://raphaeljs.com/
23.
さらに one more
thing Ext.Directがわかりにくい サーバメソッドを呼び出す動きが見たい。 というわけで、Footer部に簡単なサーバクラス呼び出し用のボタ ンを追加。(ほんとはビューでコントロールしちゃダメ(^_^;)) view/Footer.js --> view/EchoBox.js }, { xtype : 'button', text : 'Server Info', handler : function(btn) { EchoClass.who(function(text) { alert(text); }); } }]
24.
サーバ側の準備 サーバにEchoClassを追加。 api.php にEchoClassを登録。
EchoClass.php class EchoClass { // api.php 抜粋 /** $api->add( * @remotable array( */ 'EchoClass', public function who() { 'Members' return "I am server"; ) } ); }
25.
o... one more
thing (^_^;) Proxyモデル ● ExtJS(Sencha)はデータのProxyモデルが整備されている。 ● テーブルのような配列型データ構造は以下の構成をとる。 Memory? Proxy File? Table Server? View Store データ バインディング Reader/ Writer ⇒ LocalStrage使ってみると、クライアントのみのアプリに切り替わる
26.
最後に 楽しくUI作ってみませんか。 まるでレゴのように・・・(^^♪ サンプルソースはこちら。https://github. com/MtBlue81/DirectSample
27.
ユーザグループ 9月に日本でのユーザグループが発足しました。 Japan Sencha User
Group http://www.meetup.com/Japan-Sencha-User-Group/
28.
書籍も Sencha Ext JS
4実践開発ガイド http://amzn.to/Rc0DSp
29.
書籍も Sencha Ext JS
4実践開発ガイド 2 来年初旬発売予定?
Baixar agora