Wakanda#1

601 views

Published on

sample solution and database posted on GitHub:

https://github.com/miyako/4d-training-wakanda-1

Published in: Technology, News & Politics
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
601
On SlideShare
0
From Embeds
0
Number of Embeds
38
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Wakanda#1

  1. 1. Shibuya, Tokyo Wakanda 勉強会 #1 2013-08-06 2013-06-19 presented by
  2. 2. Shibuya, Tokyo agenda integration
  3. 3. Shibuya, Tokyo agenda WAK3 WAK4 WAK5 openDataStore open4DBase model API v4 model API v5 addOutsideCatalogaddOutsideCatalog addRemoteStoreaddRemoteStore integration
  4. 4. 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...
  5. 5. Shibuya, Tokyo agenda downloads
  6. 6. Shibuya, Tokyo agenda http://download.wakanda.org/ProductionChannel/v1/ http://download.wakanda.org/ProductionChannel/v2/ http://download.wakanda.org/ProductionChannel/v3/ http://download.wakanda.org/ProductionChannel/v4/ downloads
  7. 7. 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
  8. 8. Shibuya, Tokyo open4DBase() relation
  9. 9. Shibuya, Tokyo open4DBase() relation attribute
  10. 10. Shibuya, Tokyo open4DBase() プライマリーキー(必須: 1テーブルに欠落しているとWakandaが起動しない) プライマリーキーを倍長整数に(任意: UUIDとの比較,利便性,サイズ) 1フィールドのインデックス(任意: デフォルトの自動をB-Treeに) nフィールドのインデックス(任意: デフォルトのなしをクラスターB-Treeに) n対1リレーション名(推奨: nテーブル名_1テーブル名) 1対nリレーション名(推奨: 1テーブル名_nテーブル名) 命名規則: 英数字,テーブル名は単数形,冒頭は大文字,フィールド名は小文字 checklist
  11. 11. Shibuya, Tokyo open4DBase() プライマリーキー(必須: 1テーブルに欠落しているとWakandaが起動しない) プライマリーキーを倍長整数に(任意: UUIDとの比較,利便性,サイズ) 1フィールドのインデックス(任意: デフォルトの自動をB-Treeに) nフィールドのインデックス(任意: デフォルトのなしをクラスターB-Treeに) n対1リレーション名(推奨: nテーブル名_1テーブル名) 1対nリレーション名(推奨: 1テーブル名_nテーブル名) 命名規則: 英数字,テーブル名は単数形,冒頭は大文字,フィールド名は小文字 checklist
  12. 12. Shibuya, Tokyo open4DBase() プライマリーキー(必須: 1テーブルに欠落しているとWakandaが起動しない) プライマリーキーを倍長整数に(任意: UUIDとの比較,利便性,サイズ) 1フィールドのインデックス(任意: デフォルトの自動をB-Treeに) nフィールドのインデックス(任意: デフォルトのなしをクラスターB-Treeに) n対1リレーション名(推奨: nテーブル名_1テーブル名) 1対nリレーション名(推奨: 1テーブル名_nテーブル名) 命名規則: 英数字,テーブル名は単数形,冒頭は大文字,フィールド名は小文字 checklist
  13. 13. Shibuya, Tokyo open4DBase() プライマリーキー(必須: 1テーブルに欠落しているとWakandaが起動しない) プライマリーキーを倍長整数に(任意: UUIDとの比較,利便性,サイズ) 1フィールドのインデックス(任意: デフォルトの自動をB-Treeに) nフィールドのインデックス(任意: デフォルトのなしをクラスターB-Treeに) n対1リレーション名(推奨: nテーブル名_1テーブル名) 1対nリレーション名(推奨: 1テーブル名_nテーブル名) 命名規則: 英数字,テーブル名は単数形,冒頭は大文字,フィールド名は小文字 checklist
  14. 14. Shibuya, Tokyo open4DBase() プライマリーキー(必須: 1テーブルに欠落しているとWakandaが起動しない) プライマリーキーを倍長整数に(任意: UUIDとの比較,利便性,サイズ) 1フィールドのインデックス(任意: デフォルトの自動をB-Treeに) nフィールドのインデックス(任意: デフォルトのなしをクラスターB-Treeに) n対1リレーション名(推奨: nテーブル名_1テーブル名) 1対nリレーション名(推奨: 1テーブル名_nテーブル名) 命名規則: 英数字,テーブル名は単数形,冒頭は大文字,フィールド名は小文字 checklist
  15. 15. 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
  16. 16. Shibuya, Tokyo open4DBase() relation name
  17. 17. Shibuya, Tokyo open4DBase() relation name
  18. 18. 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);
  19. 19. Shibuya, Tokyo openDataStore() http://doc.wakanda.org/-/-/openDataStore.301-592820.ja.html removed in WAK4...
  20. 20. 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
  21. 21. 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);
  22. 22. 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);
  23. 23. Shibuya, Tokyo addOutsideCatalog() enterprise feature http://www.wakanda.org/customers/enterprise
  24. 24. Shibuya, Tokyo addRemoteStore() enterprise feature http://www.wakanda.org/customers/enterprise
  25. 25. 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
  26. 26. Shibuya, Tokyo free form syntax (v3) http://doc.wakanda.org/.../Using-the-Free-Form-Edition-Mode.300-706962.ja.html model.js
  27. 27. 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()
  28. 28. 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
  29. 29. 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にアクセス
  30. 30. 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
  31. 31. 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に書き換えるだけ・・・
  32. 32. 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**
  33. 33. 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
  34. 34. 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
  35. 35. 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
  36. 36. 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
  37. 37. 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
  38. 38. 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
  39. 39. Shibuya, Tokyo model API (v5) http://doc.wakanda.org/Model/Working-with-the-Model-API-v5.200-995188.ja.html model.js
  40. 40. 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
  41. 41. 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) 移行時にコードを自動変換 する しない
  42. 42. Shibuya, Tokyo model API (v5) http://doc.wakanda.org/Model/Working-with-the-Model-API-v5.200-995188.ja.html XML to JSON
  43. 43. Shibuya, Tokyo Wakanda 勉強会 #1 2013-08-06 2013-06-19 presented by
  44. 44. Shibuya, Tokyo Wakanda 勉強会 #1 2013-08-06 2013-06-19 presented by
  45. 45. Shibuya, Tokyo agenda integration
  46. 46. Shibuya, Tokyo agenda WAK3 WAK4 WAK5 openDataStore open4DBase model API v4 model API v5 addOutsideCatalogaddOutsideCatalog addRemoteStoreaddRemoteStore integration
  47. 47. 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...
  48. 48. Shibuya, Tokyo agenda downloads
  49. 49. Shibuya, Tokyo agenda http://download.wakanda.org/ProductionChannel/v1/ http://download.wakanda.org/ProductionChannel/v2/ http://download.wakanda.org/ProductionChannel/v3/ http://download.wakanda.org/ProductionChannel/v4/ downloads
  50. 50. 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
  51. 51. Shibuya, Tokyo open4DBase() relation
  52. 52. Shibuya, Tokyo open4DBase() relation attribute
  53. 53. Shibuya, Tokyo open4DBase() プライマリーキー(必須: 1テーブルに欠落しているとWakandaが起動しない) プライマリーキーを倍長整数に(任意: UUIDとの比較,利便性,サイズ) 1フィールドのインデックス(任意: デフォルトの自動をB-Treeに) nフィールドのインデックス(任意: デフォルトのなしをクラスターB-Treeに) n対1リレーション名(推奨: nテーブル名_1テーブル名) 1対nリレーション名(推奨: 1テーブル名_nテーブル名) 命名規則: 英数字,テーブル名は単数形,冒頭は大文字,フィールド名は小文字 checklist
  54. 54. Shibuya, Tokyo open4DBase() プライマリーキー(必須: 1テーブルに欠落しているとWakandaが起動しない) プライマリーキーを倍長整数に(任意: UUIDとの比較,利便性,サイズ) 1フィールドのインデックス(任意: デフォルトの自動をB-Treeに) nフィールドのインデックス(任意: デフォルトのなしをクラスターB-Treeに) n対1リレーション名(推奨: nテーブル名_1テーブル名) 1対nリレーション名(推奨: 1テーブル名_nテーブル名) 命名規則: 英数字,テーブル名は単数形,冒頭は大文字,フィールド名は小文字 checklist
  55. 55. Shibuya, Tokyo open4DBase() プライマリーキー(必須: 1テーブルに欠落しているとWakandaが起動しない) プライマリーキーを倍長整数に(任意: UUIDとの比較,利便性,サイズ) 1フィールドのインデックス(任意: デフォルトの自動をB-Treeに) nフィールドのインデックス(任意: デフォルトのなしをクラスターB-Treeに) n対1リレーション名(推奨: nテーブル名_1テーブル名) 1対nリレーション名(推奨: 1テーブル名_nテーブル名) 命名規則: 英数字,テーブル名は単数形,冒頭は大文字,フィールド名は小文字 checklist
  56. 56. Shibuya, Tokyo open4DBase() プライマリーキー(必須: 1テーブルに欠落しているとWakandaが起動しない) プライマリーキーを倍長整数に(任意: UUIDとの比較,利便性,サイズ) 1フィールドのインデックス(任意: デフォルトの自動をB-Treeに) nフィールドのインデックス(任意: デフォルトのなしをクラスターB-Treeに) n対1リレーション名(推奨: nテーブル名_1テーブル名) 1対nリレーション名(推奨: 1テーブル名_nテーブル名) 命名規則: 英数字,テーブル名は単数形,冒頭は大文字,フィールド名は小文字 checklist
  57. 57. Shibuya, Tokyo open4DBase() プライマリーキー(必須: 1テーブルに欠落しているとWakandaが起動しない) プライマリーキーを倍長整数に(任意: UUIDとの比較,利便性,サイズ) 1フィールドのインデックス(任意: デフォルトの自動をB-Treeに) nフィールドのインデックス(任意: デフォルトのなしをクラスターB-Treeに) n対1リレーション名(推奨: nテーブル名_1テーブル名) 1対nリレーション名(推奨: 1テーブル名_nテーブル名) 命名規則: 英数字,テーブル名は単数形,冒頭は大文字,フィールド名は小文字 checklist
  58. 58. 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
  59. 59. Shibuya, Tokyo open4DBase() relation name
  60. 60. Shibuya, Tokyo open4DBase() relation name
  61. 61. 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);
  62. 62. Shibuya, Tokyo openDataStore() http://doc.wakanda.org/-/-/openDataStore.301-592820.ja.html removed in WAK4...
  63. 63. 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
  64. 64. 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);
  65. 65. 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);
  66. 66. Shibuya, Tokyo addOutsideCatalog() enterprise feature http://www.wakanda.org/customers/enterprise
  67. 67. Shibuya, Tokyo addRemoteStore() enterprise feature http://www.wakanda.org/customers/enterprise
  68. 68. 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
  69. 69. Shibuya, Tokyo free form syntax (v3) http://doc.wakanda.org/.../Using-the-Free-Form-Edition-Mode.300-706962.ja.html model.js
  70. 70. 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()
  71. 71. 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
  72. 72. 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にアクセス
  73. 73. 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
  74. 74. 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に書き換えるだけ・・・
  75. 75. 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**
  76. 76. 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
  77. 77. 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
  78. 78. 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
  79. 79. 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
  80. 80. 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
  81. 81. 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
  82. 82. Shibuya, Tokyo model API (v5) http://doc.wakanda.org/Model/Working-with-the-Model-API-v5.200-995188.ja.html model.js
  83. 83. 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
  84. 84. 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) 移行時にコードを自動変換 する しない
  85. 85. Shibuya, Tokyo model API (v5) http://doc.wakanda.org/Model/Working-with-the-Model-API-v5.200-995188.ja.html XML to JSON
  86. 86. Shibuya, Tokyo Wakanda 勉強会 #1 2013-08-06 2013-06-19 presented by

×