wakanda#1

Post on 21-Dec-2014

313 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

sample solution and database posted on GitHub: https://github.com/miyako/4d-training-wakanda-1

TRANSCRIPT

Shibuya, Tokyo

Wakanda勉強会 #12013-08-06

2013-06-19

presented by

Shibuya, Tokyo

agenda

integration

Shibuya, Tokyo

agenda

WAK3 WAK4 WAK5

openDataStore

open4DBase

model API v4 model API v5

addOutsideCatalogaddOutsideCatalog

addRemoteStoreaddRemoteStore

integration

Shibuya, Tokyo

agenda

WAK3 WAK4 WAK5

openDataStore

open4DBase

model API v4 model API v5

addOutsideCatalogaddOutsideCatalog

addRemoteStoreaddRemoteStore

http://doc.wakanda.org/--v4/What-s-removed-after.904-991912.ja.html

removed in WAK4...

Shibuya, Tokyo

agenda

downloads

Shibuya, Tokyo

open4DBase()

WAK3 121356 122625 124119

v12 Wrong DB4D version number

Wrong DB4D version number

Wrong DB4D version number

v13 OK OK OK

v14 OK OK OK

http://doc.wakanda.org/-/-/open4DBase.301-593664.ja.htmlhttp://doc.wakanda.org/-/-/open4DBase.301-593664.ja.html

Shibuya, Tokyo

open4DBase()

relation

Shibuya, Tokyo

open4DBase()

relation attribute

Shibuya, Tokyo

open4DBase()

プライマリーキー(必須: 1テーブルに欠落しているとWakandaが起動しない)プライマリーキーを倍長整数に(任意: UUIDとの比較,利便性,サイズ)1フィールドのインデックス(任意: デフォルトの自動をB-Treeに)nフィールドのインデックス(任意: デフォルトのなしをクラスターB-Treeに)n対1リレーション名(推奨: nテーブル名_1テーブル名)1対nリレーション名(推奨: 1テーブル名_nテーブル名)命名規則: 英数字,テーブル名は単数形,冒頭は大文字,フィールド名は小文字

checklist

Shibuya, Tokyo

open4DBase()

プライマリーキー(必須: 1テーブルに欠落しているとWakandaが起動しない)プライマリーキーを倍長整数に(任意: UUIDとの比較,利便性,サイズ)1フィールドのインデックス(任意: デフォルトの自動をB-Treeに)nフィールドのインデックス(任意: デフォルトのなしをクラスターB-Treeに)n対1リレーション名(推奨: nテーブル名_1テーブル名)1対nリレーション名(推奨: 1テーブル名_nテーブル名)命名規則: 英数字,テーブル名は単数形,冒頭は大文字,フィールド名は小文字

checklist

Shibuya, Tokyo

open4DBase()

プライマリーキー(必須: 1テーブルに欠落しているとWakandaが起動しない)プライマリーキーを倍長整数に(任意: UUIDとの比較,利便性,サイズ)1フィールドのインデックス(任意: デフォルトの自動をB-Treeに)nフィールドのインデックス(任意: デフォルトのなしをクラスターB-Treeに)n対1リレーション名(推奨: nテーブル名_1テーブル名)1対nリレーション名(推奨: 1テーブル名_nテーブル名)命名規則: 英数字,テーブル名は単数形,冒頭は大文字,フィールド名は小文字

checklist

Shibuya, Tokyo

open4DBase()

プライマリーキー(必須: 1テーブルに欠落しているとWakandaが起動しない)プライマリーキーを倍長整数に(任意: UUIDとの比較,利便性,サイズ)1フィールドのインデックス(任意: デフォルトの自動をB-Treeに)nフィールドのインデックス(任意: デフォルトのなしをクラスターB-Treeに)n対1リレーション名(推奨: nテーブル名_1テーブル名)1対nリレーション名(推奨: 1テーブル名_nテーブル名)命名規則: 英数字,テーブル名は単数形,冒頭は大文字,フィールド名は小文字

checklist

Shibuya, Tokyo

open4DBase()

プライマリーキー(必須: 1テーブルに欠落しているとWakandaが起動しない)プライマリーキーを倍長整数に(任意: UUIDとの比較,利便性,サイズ)1フィールドのインデックス(任意: デフォルトの自動をB-Treeに)nフィールドのインデックス(任意: デフォルトのなしをクラスターB-Treeに)n対1リレーション名(推奨: nテーブル名_1テーブル名)1対nリレーション名(推奨: 1テーブル名_nテーブル名)命名規則: 英数字,テーブル名は単数形,冒頭は大文字,フィールド名は小文字

checklist

Shibuya, Tokyo

open4DBase()

プライマリーキー(必須: 1テーブルに欠落しているとWakandaが起動しない)プライマリーキーを倍長整数に(任意: UUIDとの比較,利便性,サイズ)1フィールドのインデックス(任意: デフォルトの自動をB-Treeに)nフィールドのインデックス(任意: デフォルトのなしをクラスターB-Treeに)n対1リレーション名(推奨: nテーブル名_1テーブル名)1対nリレーション名(推奨: 1テーブル名_nテーブル名)命名規則: 英数字,テーブル名は単数形,冒頭は大文字,フィールド名は小文字

checklist

http://doc.wakanda.org/home2.ja.html#/-/-.300-661504.ja.html

Shibuya, Tokyo

open4DBase()

relation name

Shibuya, Tokyo

open4DBase()

relation name

Shibuya, Tokyo

open4DBase()

var modelFolder = ds.getModelFolder();var postFolder = modelFolder.parent.parent.path + "Post.4dbase/";var structureFile = File(postFolder + "Post.4DB");var dataFile = File(postFolder + "Post.4DD");

var dsPost = open4DBase(structureFile, dataFile);

Shibuya, Tokyo

openDataStore()

http://doc.wakanda.org/-/-/openDataStore.301-592820.ja.html

removed in WAK4...

Shibuya, Tokyo

openDataStore()

http://doc.wakanda.org/-/-/openDataStore.301-592820.ja.html

removed in WAK4...

WAK3 WAK4 WAK5

waModel XML JSON JSON

breakpoints XML JSON JSON

waPreferences XML XML XML

waSettings XML XML XML

waSolution XML XML XML

waProject XML XML XML

waPerm XML XML XML

waDirectory XML XML XML

Shibuya, Tokyo

openDataStore()

var modelFolder = ds.getModelFolder();var studentsFolder = modelFolder.parent.parent.path + "Students/Students/";var modelFile = File(studentsFolder + "Model.waModel");var dataFile = File(studentsFolder + "DataFolder/data.waData");

var dsStudents = openDataStore(modelFile, dataFile);

Shibuya, Tokyo

openDataStore()

var modelFolder = ds.getModelFolder();var studentsFolder = modelFolder.parent.parent.path + "Students/Students/";var modelFile = File(studentsFolder + "Model.waModel");var dataFile = File(studentsFolder + "DataFolder/data.waData");

var dsStudents = openDataStore(modelFile, dataFile);

Shibuya, Tokyo

free form syntax (v3)

http://doc.wakanda.org/.../Using-the-Free-Form-Edition-Mode.300-706962.ja.html

guided model

guidedModel ={! Student :! ! gradeId :! ! {! !! onGet:function()! {!

unlock script

free form syntax

model ={! Student :! ! gradeId :! ! {! !! onGet:function()! {!

model.js

reload model

Shibuya, Tokyo

free form syntax (v3)

http://doc.wakanda.org/.../Using-the-Free-Form-Edition-Mode.300-706962.ja.html

model.js

guidedModel model

クラス GUI JavaScript

属性 GUI JavaScript

メソッド JavaScript JavaScript

コードエディターにジャンプ YES NO

ファイル数 model.js model.js+include()

Shibuya, Tokyo

free form syntax (v3)

http://doc.wakanda.org/.../Using-the-Free-Form-Edition-Mode.300-706962.ja.html

model.js

guidedModel ={ Student : { fullName : { onSet = function(value) { var names = value.split(' '); this.firstName = names[0]; this.lastName = names[1]; } } }};

guided model

Shibuya, Tokyo

free form syntax (v3)

http://doc.wakanda.org/.../Using-the-Free-Form-Edition-Mode.300-706962.ja.html

model.js

model = {};model.Student = {};model.Student.fullName = {};

model.Student.name.onSet = function(value){ var names = value.split(' '); this.firstName = names[0]; this.lastName = names[1];}

free form syntax

グローバルオブジェクトmodelにアクセス

Shibuya, Tokyo

free form syntax (v3)

http://doc.wakanda.org/.../Using-the-Free-Form-Edition-Mode.300-706962.ja.html

model.js

model = {};model.Student = {};model.Student.fullName = {};

model.Student.name.onSet = function(value){ var names = value.split(' '); this.firstName = names[0]; this.lastName = names[1];}

free form syntax

グローバルオブジェクトmodelにアクセス

deprecated

Shibuya, Tokyo

model API (v4)

http://doc.wakanda.org/Model/Working-with-the-Model-API.200-975844.ja.html

model.js

* @startlock~@endlockを除去してguidedModelをmodelに書き換えるだけ・・・

Shibuya, Tokyo

model API (v4)

http://doc.wakanda.org/Model/Working-with-the-Model-API.200-975844.ja.html

model.js

* @startlock~@endlockを除去してguidedModelをmodelに書き換えるだけ・・・

v3 v4

モデルエディターに表示 NO YES

コードエディターにジャンプ NO NO

移行時にコードを自動変換 NO NO**

Shibuya, Tokyo

model API (v4)

http://doc.wakanda.org/Model/Working-with-the-Model-API.200-975844.ja.html

model = {};var sc = model.addClass("Student");sc.addAttribute("ID", "storage", "long", "key auto");sc.addAttribute("firstName", "storage", "string", "btree");sc.addAttribute("lastName", "storage", "string", "btree");sc.addAttribute("name", "calculated", "string");sc.name.onSet = function(value){ var names = value.split(' '); this.firstName = names[0]; this.lastName = names[1];}

model.Student = {};model.Student.fullName = {};

model.Student.name.onSet = function(value){ var names = value.split(' '); this.firstName = names[0]; this.lastName = names[1];}

v3: グローバルオブジェクトmodelにアクセス

model.js

Shibuya, Tokyo

model API (v4)

http://doc.wakanda.org/Model/Working-with-the-Model-API.200-975844.ja.html

model = new DataStoreCatalog();var sc = model.addClass("Student");sc.addAttribute("ID", "storage", "long", "key auto");sc.addAttribute("firstName", "storage", "string", "btree");sc.addAttribute("lastName", "storage", "string", "btree");sc.addAttribute("name", "calculated", "string");sc.name.onSet = function(value){ var names = value.split(' '); this.firstName = names[0]; this.lastName = names[1];}

model.Student = {};model.Student.fullName = {};

model.Student.name.onSet = function(value){ var names = value.split(' '); this.firstName = names[0]; this.lastName = names[1];}

v4: コンストラクターを使用

model.js

Shibuya, Tokyo

model API (v4)

http://doc.wakanda.org/Model/Working-with-the-Model-API.200-975844.ja.html

model = new DataStoreCatalog();var sc = model.addClass("Student");sc.addAttribute("ID", "storage", "long", "key auto");sc.addAttribute("firstName", "storage", "string", "btree");sc.addAttribute("lastName", "storage", "string", "btree");sc.addAttribute("name", "calculated", "string");sc.name.onSet = function(value){ var names = value.split(' '); this.firstName = names[0]; this.lastName = names[1];}

v3コードを削除

model.js

Shibuya, Tokyo

model API (v4)

http://doc.wakanda.org/Model/Working-with-the-Model-API.200-975844.ja.html

model = new DataStoreCatalog();var sc = model.addClass("Student");sc.addAttribute("ID", "storage", "long", "key auto");sc.addAttribute("firstName", "storage", "string", "btree");sc.addAttribute("lastName", "storage", "string", "btree");sc.addAttribute("name", "calculated", "string");sc.name.onSet = function(value){ var names = value.split(' '); this.firstName = names[0]; this.lastName = names[1];}

クラスと属性の定義をmodel API v4に書き換え

model.js

Shibuya, Tokyo

model API (v4)

http://doc.wakanda.org/Model/Working-with-the-Model-API.200-975844.ja.html

model = new DataStoreCatalog();var sc = model.addClass("Student");sc.addAttribute("ID", "storage", "long", "key auto");sc.addAttribute("firstName", "storage", "string", "btree");sc.addAttribute("lastName", "storage", "string", "btree");sc.addAttribute("name", "calculated", "string");sc.name.onSet = function(value){ var names = value.split(' '); this.firstName = names[0]; this.lastName = names[1];}

計算属性の定義をmodel API v4に書き換え

model.js

Shibuya, Tokyo

model API (v4)

http://doc.wakanda.org/Model/Working-with-the-Model-API.200-975844.ja.html

model = new DataStoreCatalog();var sc = model.addClass("Student");sc.addAttribute("ID", "storage", "long", "key auto");sc.addAttribute("firstName", "storage", "string", "btree");sc.addAttribute("lastName", "storage", "string", "btree");sc.addAttribute("name", "calculated", "string");sc.name.onSet = function(value){ var names = value.split(' '); this.firstName = names[0]; this.lastName = names[1];}

model.js

Shibuya, Tokyo

model API (v5)

http://doc.wakanda.org/Model/Working-with-the-Model-API-v5.200-995188.ja.html

model.js

Shibuya, Tokyo

model API (v5)

http://doc.wakanda.org/Model/Working-with-the-Model-API-v5.200-995188.ja.html

v3 v4 v5

モデルエディターに表示 NO YES YES

コードエディターにジャンプ NO NO YES

移行時にコードを自動変換 NO NO YES

model.js

Shibuya, Tokyo

model API (v5)

http://doc.wakanda.org/Model/Working-with-the-Model-API-v5.200-995188.ja.html

unlock script

waModel (JSON)

WAK4

model API (v4)

waModel (XML)

WAK3

model.js

unlock script

free form syntax (v3)

waModel (JSON)

WAK5

unlock script

model API (v5)

移行時にコードを自動変換するしない

Shibuya, Tokyo

model API (v5)

http://doc.wakanda.org/Model/Working-with-the-Model-API-v5.200-995188.ja.html

XML to JSON

Shibuya, Tokyo

Wakanda勉強会 #12013-08-06

2013-06-19

presented by

Shibuya, Tokyo

Wakanda勉強会 #12013-08-06

2013-06-19

presented by

Shibuya, Tokyo

agenda

integration

Shibuya, Tokyo

agenda

WAK3 WAK4 WAK5

openDataStore

open4DBase

model API v4 model API v5

addOutsideCatalogaddOutsideCatalog

addRemoteStoreaddRemoteStore

integration

Shibuya, Tokyo

agenda

WAK3 WAK4 WAK5

openDataStore

open4DBase

model API v4 model API v5

addOutsideCatalogaddOutsideCatalog

addRemoteStoreaddRemoteStore

http://doc.wakanda.org/--v4/What-s-removed-after.904-991912.ja.html

removed in WAK4...

Shibuya, Tokyo

agenda

downloads

Shibuya, Tokyo

open4DBase()

WAK3 121356 122625 124119

v12 Wrong DB4D version number

Wrong DB4D version number

Wrong DB4D version number

v13 OK OK OK

v14 OK OK OK

http://doc.wakanda.org/-/-/open4DBase.301-593664.ja.htmlhttp://doc.wakanda.org/-/-/open4DBase.301-593664.ja.html

Shibuya, Tokyo

open4DBase()

relation

Shibuya, Tokyo

open4DBase()

relation attribute

Shibuya, Tokyo

open4DBase()

プライマリーキー(必須: 1テーブルに欠落しているとWakandaが起動しない)プライマリーキーを倍長整数に(任意: UUIDとの比較,利便性,サイズ)1フィールドのインデックス(任意: デフォルトの自動をB-Treeに)nフィールドのインデックス(任意: デフォルトのなしをクラスターB-Treeに)n対1リレーション名(推奨: nテーブル名_1テーブル名)1対nリレーション名(推奨: 1テーブル名_nテーブル名)命名規則: 英数字,テーブル名は単数形,冒頭は大文字,フィールド名は小文字

checklist

Shibuya, Tokyo

open4DBase()

プライマリーキー(必須: 1テーブルに欠落しているとWakandaが起動しない)プライマリーキーを倍長整数に(任意: UUIDとの比較,利便性,サイズ)1フィールドのインデックス(任意: デフォルトの自動をB-Treeに)nフィールドのインデックス(任意: デフォルトのなしをクラスターB-Treeに)n対1リレーション名(推奨: nテーブル名_1テーブル名)1対nリレーション名(推奨: 1テーブル名_nテーブル名)命名規則: 英数字,テーブル名は単数形,冒頭は大文字,フィールド名は小文字

checklist

Shibuya, Tokyo

open4DBase()

プライマリーキー(必須: 1テーブルに欠落しているとWakandaが起動しない)プライマリーキーを倍長整数に(任意: UUIDとの比較,利便性,サイズ)1フィールドのインデックス(任意: デフォルトの自動をB-Treeに)nフィールドのインデックス(任意: デフォルトのなしをクラスターB-Treeに)n対1リレーション名(推奨: nテーブル名_1テーブル名)1対nリレーション名(推奨: 1テーブル名_nテーブル名)命名規則: 英数字,テーブル名は単数形,冒頭は大文字,フィールド名は小文字

checklist

Shibuya, Tokyo

open4DBase()

プライマリーキー(必須: 1テーブルに欠落しているとWakandaが起動しない)プライマリーキーを倍長整数に(任意: UUIDとの比較,利便性,サイズ)1フィールドのインデックス(任意: デフォルトの自動をB-Treeに)nフィールドのインデックス(任意: デフォルトのなしをクラスターB-Treeに)n対1リレーション名(推奨: nテーブル名_1テーブル名)1対nリレーション名(推奨: 1テーブル名_nテーブル名)命名規則: 英数字,テーブル名は単数形,冒頭は大文字,フィールド名は小文字

checklist

Shibuya, Tokyo

open4DBase()

プライマリーキー(必須: 1テーブルに欠落しているとWakandaが起動しない)プライマリーキーを倍長整数に(任意: UUIDとの比較,利便性,サイズ)1フィールドのインデックス(任意: デフォルトの自動をB-Treeに)nフィールドのインデックス(任意: デフォルトのなしをクラスターB-Treeに)n対1リレーション名(推奨: nテーブル名_1テーブル名)1対nリレーション名(推奨: 1テーブル名_nテーブル名)命名規則: 英数字,テーブル名は単数形,冒頭は大文字,フィールド名は小文字

checklist

Shibuya, Tokyo

open4DBase()

プライマリーキー(必須: 1テーブルに欠落しているとWakandaが起動しない)プライマリーキーを倍長整数に(任意: UUIDとの比較,利便性,サイズ)1フィールドのインデックス(任意: デフォルトの自動をB-Treeに)nフィールドのインデックス(任意: デフォルトのなしをクラスターB-Treeに)n対1リレーション名(推奨: nテーブル名_1テーブル名)1対nリレーション名(推奨: 1テーブル名_nテーブル名)命名規則: 英数字,テーブル名は単数形,冒頭は大文字,フィールド名は小文字

checklist

http://doc.wakanda.org/home2.ja.html#/-/-.300-661504.ja.html

Shibuya, Tokyo

open4DBase()

relation name

Shibuya, Tokyo

open4DBase()

relation name

Shibuya, Tokyo

open4DBase()

var modelFolder = ds.getModelFolder();var postFolder = modelFolder.parent.parent.path + "Post.4dbase/";var structureFile = File(postFolder + "Post.4DB");var dataFile = File(postFolder + "Post.4DD");

var dsPost = open4DBase(structureFile, dataFile);

Shibuya, Tokyo

openDataStore()

http://doc.wakanda.org/-/-/openDataStore.301-592820.ja.html

removed in WAK4...

Shibuya, Tokyo

openDataStore()

http://doc.wakanda.org/-/-/openDataStore.301-592820.ja.html

removed in WAK4...

WAK3 WAK4 WAK5

waModel XML JSON JSON

breakpoints XML JSON JSON

waPreferences XML XML XML

waSettings XML XML XML

waSolution XML XML XML

waProject XML XML XML

waPerm XML XML XML

waDirectory XML XML XML

Shibuya, Tokyo

openDataStore()

var modelFolder = ds.getModelFolder();var studentsFolder = modelFolder.parent.parent.path + "Students/Students/";var modelFile = File(studentsFolder + "Model.waModel");var dataFile = File(studentsFolder + "DataFolder/data.waData");

var dsStudents = openDataStore(modelFile, dataFile);

Shibuya, Tokyo

openDataStore()

var modelFolder = ds.getModelFolder();var studentsFolder = modelFolder.parent.parent.path + "Students/Students/";var modelFile = File(studentsFolder + "Model.waModel");var dataFile = File(studentsFolder + "DataFolder/data.waData");

var dsStudents = openDataStore(modelFile, dataFile);

Shibuya, Tokyo

free form syntax (v3)

http://doc.wakanda.org/.../Using-the-Free-Form-Edition-Mode.300-706962.ja.html

guided model

guidedModel ={! Student :! ! gradeId :! ! {! !! onGet:function()! {!

unlock script

free form syntax

model ={! Student :! ! gradeId :! ! {! !! onGet:function()! {!

model.js

reload model

Shibuya, Tokyo

free form syntax (v3)

http://doc.wakanda.org/.../Using-the-Free-Form-Edition-Mode.300-706962.ja.html

model.js

guidedModel model

クラス GUI JavaScript

属性 GUI JavaScript

メソッド JavaScript JavaScript

コードエディターにジャンプ YES NO

ファイル数 model.js model.js+include()

Shibuya, Tokyo

free form syntax (v3)

http://doc.wakanda.org/.../Using-the-Free-Form-Edition-Mode.300-706962.ja.html

model.js

guidedModel ={ Student : { fullName : { onSet = function(value) { var names = value.split(' '); this.firstName = names[0]; this.lastName = names[1]; } } }};

guided model

Shibuya, Tokyo

free form syntax (v3)

http://doc.wakanda.org/.../Using-the-Free-Form-Edition-Mode.300-706962.ja.html

model.js

model = {};model.Student = {};model.Student.fullName = {};

model.Student.name.onSet = function(value){ var names = value.split(' '); this.firstName = names[0]; this.lastName = names[1];}

free form syntax

グローバルオブジェクトmodelにアクセス

Shibuya, Tokyo

free form syntax (v3)

http://doc.wakanda.org/.../Using-the-Free-Form-Edition-Mode.300-706962.ja.html

model.js

model = {};model.Student = {};model.Student.fullName = {};

model.Student.name.onSet = function(value){ var names = value.split(' '); this.firstName = names[0]; this.lastName = names[1];}

free form syntax

グローバルオブジェクトmodelにアクセス

deprecated

Shibuya, Tokyo

model API (v4)

http://doc.wakanda.org/Model/Working-with-the-Model-API.200-975844.ja.html

model.js

* @startlock~@endlockを除去してguidedModelをmodelに書き換えるだけ・・・

Shibuya, Tokyo

model API (v4)

http://doc.wakanda.org/Model/Working-with-the-Model-API.200-975844.ja.html

model.js

* @startlock~@endlockを除去してguidedModelをmodelに書き換えるだけ・・・

v3 v4

モデルエディターに表示 NO YES

コードエディターにジャンプ NO NO

移行時にコードを自動変換 NO NO**

Shibuya, Tokyo

model API (v4)

http://doc.wakanda.org/Model/Working-with-the-Model-API.200-975844.ja.html

model = {};var sc = model.addClass("Student");sc.addAttribute("ID", "storage", "long", "key auto");sc.addAttribute("firstName", "storage", "string", "btree");sc.addAttribute("lastName", "storage", "string", "btree");sc.addAttribute("name", "calculated", "string");sc.name.onSet = function(value){ var names = value.split(' '); this.firstName = names[0]; this.lastName = names[1];}

model.Student = {};model.Student.fullName = {};

model.Student.name.onSet = function(value){ var names = value.split(' '); this.firstName = names[0]; this.lastName = names[1];}

v3: グローバルオブジェクトmodelにアクセス

model.js

Shibuya, Tokyo

model API (v4)

http://doc.wakanda.org/Model/Working-with-the-Model-API.200-975844.ja.html

model = new DataStoreCatalog();var sc = model.addClass("Student");sc.addAttribute("ID", "storage", "long", "key auto");sc.addAttribute("firstName", "storage", "string", "btree");sc.addAttribute("lastName", "storage", "string", "btree");sc.addAttribute("name", "calculated", "string");sc.name.onSet = function(value){ var names = value.split(' '); this.firstName = names[0]; this.lastName = names[1];}

model.Student = {};model.Student.fullName = {};

model.Student.name.onSet = function(value){ var names = value.split(' '); this.firstName = names[0]; this.lastName = names[1];}

v4: コンストラクターを使用

model.js

Shibuya, Tokyo

model API (v4)

http://doc.wakanda.org/Model/Working-with-the-Model-API.200-975844.ja.html

model = new DataStoreCatalog();var sc = model.addClass("Student");sc.addAttribute("ID", "storage", "long", "key auto");sc.addAttribute("firstName", "storage", "string", "btree");sc.addAttribute("lastName", "storage", "string", "btree");sc.addAttribute("name", "calculated", "string");sc.name.onSet = function(value){ var names = value.split(' '); this.firstName = names[0]; this.lastName = names[1];}

v3コードを削除

model.js

Shibuya, Tokyo

model API (v4)

http://doc.wakanda.org/Model/Working-with-the-Model-API.200-975844.ja.html

model = new DataStoreCatalog();var sc = model.addClass("Student");sc.addAttribute("ID", "storage", "long", "key auto");sc.addAttribute("firstName", "storage", "string", "btree");sc.addAttribute("lastName", "storage", "string", "btree");sc.addAttribute("name", "calculated", "string");sc.name.onSet = function(value){ var names = value.split(' '); this.firstName = names[0]; this.lastName = names[1];}

クラスと属性の定義をmodel API v4に書き換え

model.js

Shibuya, Tokyo

model API (v4)

http://doc.wakanda.org/Model/Working-with-the-Model-API.200-975844.ja.html

model = new DataStoreCatalog();var sc = model.addClass("Student");sc.addAttribute("ID", "storage", "long", "key auto");sc.addAttribute("firstName", "storage", "string", "btree");sc.addAttribute("lastName", "storage", "string", "btree");sc.addAttribute("name", "calculated", "string");sc.name.onSet = function(value){ var names = value.split(' '); this.firstName = names[0]; this.lastName = names[1];}

計算属性の定義をmodel API v4に書き換え

model.js

Shibuya, Tokyo

model API (v4)

http://doc.wakanda.org/Model/Working-with-the-Model-API.200-975844.ja.html

model = new DataStoreCatalog();var sc = model.addClass("Student");sc.addAttribute("ID", "storage", "long", "key auto");sc.addAttribute("firstName", "storage", "string", "btree");sc.addAttribute("lastName", "storage", "string", "btree");sc.addAttribute("name", "calculated", "string");sc.name.onSet = function(value){ var names = value.split(' '); this.firstName = names[0]; this.lastName = names[1];}

model.js

Shibuya, Tokyo

model API (v5)

http://doc.wakanda.org/Model/Working-with-the-Model-API-v5.200-995188.ja.html

model.js

Shibuya, Tokyo

model API (v5)

http://doc.wakanda.org/Model/Working-with-the-Model-API-v5.200-995188.ja.html

v3 v4 v5

モデルエディターに表示 NO YES YES

コードエディターにジャンプ NO NO YES

移行時にコードを自動変換 NO NO YES

model.js

Shibuya, Tokyo

model API (v5)

http://doc.wakanda.org/Model/Working-with-the-Model-API-v5.200-995188.ja.html

unlock script

waModel (JSON)

WAK4

model API (v4)

waModel (XML)

WAK3

model.js

unlock script

free form syntax (v3)

waModel (JSON)

WAK5

unlock script

model API (v5)

移行時にコードを自動変換するしない

Shibuya, Tokyo

model API (v5)

http://doc.wakanda.org/Model/Working-with-the-Model-API-v5.200-995188.ja.html

XML to JSON

Shibuya, Tokyo

Wakanda勉強会 #12013-08-06

2013-06-19

presented by

top related