Upgrade to Pro — share decks privately, control downloads, hide ads and more …

v19 part 1

v19 part 1

4D Japan

July 15, 2021
Tweet

More Decks by 4D Japan

Other Decks in Technology

Transcript

  1. 7⽉14⽇のセッション 1 14:00 デザインモード 2 14:05 ライブラリアップデート 3 14:10 Web

    Area 4 14:15 Web Server 5 14:20 フォームエディター 6 14:27 リストボックス 7 14:34 4D View Pro 8 14:41 デスクトップとアピアランス 9 14:45 Apple Silicon 10 14:55 オ・ル・ダ part 1 11 15:05 オブジェクト指向プログラミング 12 15:28 ORDA Class API part 1
  2. デザインモード プロジェクトモード 4DProject, 4DZ ϓϩδΣΫτϞʔυͷϝϦοτ όʔδϣϯ؅ཧɾνʔϜ։ൃ׆༻ ΫϥεAPI Apple Siliconλʔήοτ バイナリモード

    4DB, 4DC όΠφϦϞʔυͷϝϦοτ ޙํޓ׵ੑ ؀ڥઃఆ / όΠφϦܗࣜͷσʔλϕʔε࡞੒Λ༗ޮԽ͢Δ デフォルトはプロジェクトモード
  3. デザインモード プロジェクトモード 4DProject, 4DZ ϓϩδΣΫτϞʔυͷϝϦοτ όʔδϣϯ؅ཧɾνʔϜ։ൃ׆༻ ΫϥεAPI Apple Siliconλʔήοτ バイナリモード

    4DB, 4DC όΠφϦϞʔυͷϝϦοτ ޙํޓ׵ੑ ؀ڥઃఆ / όΠφϦܗࣜͷσʔλϕʔε࡞੒Λ༗ޮԽ͢Δ デフォルトはプロジェクトモード developer.4D.com doc.4D.com
  4. WA Run offscreen area autoQuit=True On Load On End URL

    Loading On Unload On URL Loading Error
  5. WA Run offscreen area autoQuit=False On Load On End URL

    Loading On Unload On URL Loading Error ACCEPT CANCEL WA Evaluate JavaScript WA EXECUTE JAVASCRIPT FUNCTION WA Get current URL WA GET LAST URL ERROR WA Get page content WA Get page title WA OPEN URL WA REFRESH CURRENT URL WA STOP LOADING URL WA OPEN WEB INSPECTOR new!
  6. WA Run offscreen area autoQuit=False On Load On End URL

    Loading On Unload On URL Loading Error ACCEPT CANCEL $4dオブジェクト WA Evaluate JavaScript WA EXECUTE JAVASCRIPT FUNCTION WA Get current URL WA GET LAST URL ERROR WA Get page content WA Get page title WA OPEN URL WA REFRESH CURRENT URL WA STOP LOADING URL WA OPEN WEB INSPECTOR new!
  7. WA Run offscreen area autoQuit=False On Load On End URL

    Loading On Unload On URL Loading Error ACCEPT CANCEL ヘッドレスモード $4dオブジェクト WA Evaluate JavaScript WA EXECUTE JAVASCRIPT FUNCTION WA Get current URL WA GET LAST URL ERROR WA Get page content WA Get page title WA OPEN URL WA REFRESH CURRENT URL WA STOP LOADING URL WA OPEN WEB INSPECTOR new!
  8. WA Run offscreen area autoQuit=False On Load On End URL

    Loading On Unload On URL Loading Error ACCEPT CANCEL ヘッドレスモード $4dオブジェクト WA Evaluate JavaScript WA EXECUTE JAVASCRIPT FUNCTION WA Get current URL WA GET LAST URL ERROR WA Get page content WA Get page title WA OPEN URL WA REFRESH CURRENT URL WA STOP LOADING URL WA OPEN WEB INSPECTOR プリエンプティブモード new!
  9. Web Server Multiple web servers in a single 4D instance;

    Scalable sessions for advanced web applications
  10. セッション管理 旧式セッション v13 スケーラブルセッション v19 Webプロセス プリエンプティブ Webプロセス プリエンプティブ Session

    Webプロセス プリエンプティブ Webプロセス プリエンプティブ セッション情報はプロセスのコンテキストで管理 Cookie Cookie Cookie Cookie 同⼀セッションのリクエストはシリアル処理 同⼀セッションのリクエストはパラレル処理 共有オブジェクト
  11. WEB SET OPTION Web scalable session データベース設定 / Web /

    オプションⅠ セッション管理 旧式セッション v13 スケーラブルセッション v19 Webプロセス プリエンプティブ Webプロセス プリエンプティブ Session Webプロセス プリエンプティブ Webプロセス プリエンプティブ セッション情報はプロセスのコンテキストで管理 Cookie Cookie Cookie Cookie 同⼀セッションのリクエストはシリアル処理 同⼀セッションのリクエストはパラレル処理 共有オブジェクト
  12. ホスト On Web Connection WebFolder Cache 192.168.0.1:8081 192.168.0.1 On Web

    Connection WebFolder Cache コンポーネント サーバーオブジェクト
  13. WEB Server list ホスト On Web Connection WebFolder Cache 192.168.0.1:8081

    192.168.0.1 On Web Connection WebFolder Cache コンポーネント サーバーオブジェクト
  14. WEB Server WEB Server list Host database server ホスト On

    Web Connection WebFolder Cache 192.168.0.1:8081 192.168.0.1 On Web Connection WebFolder Cache コンポーネント サーバーオブジェクト
  15. WEB Server WEB Server list Host database server ホスト On

    Web Connection WebFolder Cache 192.168.0.1:8081 192.168.0.1 On Web Connection WebFolder Cache コンポーネント 汎⽤メソッド WEB Server Request receiving server サーバーオブジェクト
  16. セキュリティ Cross Origin Resource Sharing WEB SET OPTION Web CORS

    enabled データベース設定 / Web / オプションⅡ Web CORS settings collection of objects 0 (disabled) or 1 (enabled) { host:"*.domain.org", methods:"post;delete" ] Cross Site Request Forgery WEB SET HTTP HEADERでもOK
  17. セキュリティ Cross Origin Resource Sharing WEB SET OPTION Web CORS

    enabled データベース設定 / Web / オプションⅡ Web CORS settings collection of objects 0 (disabled) or 1 (enabled) { host:"*.domain.org", methods:"post;delete" ] Cross Site Request Forgery { sessionCookieSameSite:"Lax" ] Strict (default) Lax None (Secure=automatically True) HTTPS (Secure=always True) Cookie WEB Server.start(settings) WEB SET HTTP HEADERでは設定できない WEB SET HTTP HEADERでもOK
  18. リストボックス データソース フッター⾃動計算 時間型カラム 配列 v13 v2004 カレントセレクション v13 v11

    命名セレクション v13 v11 コレクション v19 v19 エンティティセレクション v19 v19
  19. リストボックス データソース フッター⾃動計算 時間型カラム 配列 v13 v2004 カレントセレクション v13 v11

    命名セレクション v13 v11 コレクション v19 v19 エンティティセレクション v19 v19 混合データ型のフッター計算 average, sum: ਺஋Ҏ֎Λແࢹ min, max: null < bool < string < number < object < collection < date * collection.sortͱಉ͡
  20. Manage clicks in edited cells リストボックス Form event code On

    Clicked Contextual click Is editing text Dynamic pop up menu Pop up menu • クリックイベント • セル⼊⼒中のイベントを判別 • カスタムコンテキストメニューに FORM Event.code
  21. リストボックス Ease your developer’s life with list boxes 基本プロパティ リストボックス特有のプロパティ

    On Header Click On Display Detail FORM Event.code .description .objectName .headerName .columnName .column .isRowSelected .area .areaName On Mouse Move • FORM Event(新コマンド) • オブジェクト型 • View Proエリアも対応
  22. Pro list box features are now FREE! リストボックス カラムのデータソースにオブジェクト配列を使⽤ ⾏毎に⾼さを設定

    LISTBOX SET ROW HEIGHT LISTBOX Get row height ⾏⾼さ配列プロパティ lk row hight array LISTBOX SET ARRAY LISTBOX Get array View Pro user only × View Pro user only × ドロップダウンメニュー 背景⾊で塗りつぶし コンボボックス ボタン 省略ボタン On Alternate Click スリーステートチェックボックス 最⼤値 最⼩値 単位切り替えボタン
  23. View Pro ローカライズ⾔語 英語 フランス語 ⽇本語 ドイツ語 スペイン語 ポルトガル語 リボンインタフェース

    ツールバー エラーメッセージ コンテキストメニュー 関数名(フランス語のみ) SUM SOMME 㲗 ローカライズ箇所
  24. View Pro フォーミュラの挿⼊(従来式) 変数 コマンド プロジェクトメソッド フィールド SET FIELD TITLES

    SET TABLE TITLES VP SET ALLOWED METHODS フィールドは処理が違う ラッパーメソッドが必要 メソッド
  25. If (Form event code=On Load)ɹ $o:=New objectɹ $o.GREETINGS:=New objectɹ $o.GREETINGS.formula:=Formula(࣌ީͷѫࡰ)

    $o.GREETINGS.summary:="ΧϨϯτ೔෇ʹରԠ͢Δ࣌ީͷѫࡰΛฦ͠·͢ɻ" ɹ ɹ ɹVP SET CUSTOM FUNCTIONS("ViewProArea"; $o)ɹ End if View Pro フォーミュラの挿⼊ メソッド フォーミュラ フィールド・変数・ίϚϯυ スプレッドシートの    fx etc.
  26. Siliconターゲットコンパイルの仕組み コンパイル開始 4D Compiler Intel/ARMターゲット オブジェクト記法 メソッドをunicodeで保存 தࢭ ෆ੒ޭ Apple

    clang ੒ޭ オペコードの⽣成 オペコードのリンク処理 コンパイル リンク ੜ੒ࡁΈϝιου͸εΩοϓ CPUίΞ਺Λಈһͯ͠ฏߦॲཧ σʔλϕʔεઃఆ Apple Siliconターゲット lib4d-arm64.dylib ίϯύΠϥʔ ダイナミックライブラリ
  27. SiliconλʔήοτίϯύΠϧͷ࢓૊Έ C_VARIANT($var; $formula) $formula:=Formula(String($1; ISO date GMT; $2)) ALERT($formula.call(Null; Current

    date; Current time)) arm64-apple-macos11 cpp $constants.cpp $descriptors.cpp $functions.cpp $variables.cpp method.cpp プロジェクトメソッド $asm4d.o $constants.o $descriptors.o $functions.o $variables.o $asm4d.h.pch method.o 4D.LinkFileList method.4dm オペコード⽣成 ソースコード変換
  28. Mac M1 ⾃分のプロセッサ (Apple Silicon) 全てのプロセッサ (Intel/AMDおよびApple Silicon) Mac Intel

    ⾃分のプロセッサ (Intel/AMD) 全てのプロセッサ (Intel/AMDおよびApple Silicon) Windows ⾃分のプロセッサ (Intel/AMD) 全てのプロセッサ (Intel/AMDおよびApple Silicon) Apple clang Apple clang Apple clang 4D compiler 4D compiler 4D compiler 4D compiler × クロスコンパイル Mac Intel: OK Windows: NG (siliconコンパイルにはXcodeまたはdeveloper toolsが必要)
  29. 共有エンティティセレクション 共有オブジェクト CALL WORKER New process エンティティセレクション エンティティセレクション CALL WORKER

    New process エンティティセレクション 暗黙的コピー エンティティセレクション エンティティセレクション 暗黙的コピー
  30. ORDA Class API ORDA Classes to handle your data model

    Welcome to the world of ORDA classes; part 1
  31. ORDA Class API • 簡単にサービスを公開 • 実装を隠蔽して抽象化レイヤーを提供 • シンプルなREST APIで他のアプリケーションと連携

    Student ID 232 firstname A lastname A englishLevel 216 finalExam A rank 216 schoolID 232 テーブル データクラス StudentSelection StudentEntity Student REST API /rest/Student/registerStudent 拡張クラス Class extends DataClass Function registerStudent Class extends Entity Function getFirstAhead Class extends EntitySelection Function setFinalExam /rest/Student(1)/getFirstAhead /rest/Student/setFinalExam
 /$entityset/{entitySetNumber} part 2 プロジェクトモード プライマリーキー(複合キーを除く) 条件
  32. プロトタイプチェーン クラス継承 4D クラスストア クラスストア cs 4D.DataStoreImplementation 4D.DataClass 4D.Entity 4D.EntitySelection

    ストラクチャ テーブル レコード 命名セレクション/セット ビルトイン実装 メソッド プロパティ cs.DataStore cs.Student cs.StudentEntity cs.StudentSelection 各データベース/コンポーネント [Student]テーブル [Student]レコード [Student]໋໊ηϨΫγϣϯ/ηοτ ユーザー実装 メソッド プロパティ Object ビルトインクラス ユーザークラス コンストラクタ
  33. インスタンス ds または クラスストア cs cs.DataStore cs.Student cs.StudentEntity cs.StudentSelection 各データベース/コンポーネント

    [Student]テーブル [Student]レコード [Student]໋໊ηϨΫγϣϯ/ηοτ cs.MyClass ユーザークラス Open datastore ds.Student ds.Student.new() ds.Student.query() ユーザー実装 メソッド プロパティ コンストラクタ cs.MyClass.new() ユーザークラス インスタンス Student.get() StudentEntity.first() StudentEntity.last() StudentEntity.next() StudentEntity.previous() StudentEntity.clone() StudentSelection.first() StudentSelection.last() Student.all() Student.fromCollection() Student.newSelection() StudentEntity.getSelection() StudentSelection.drop() StudentSelection.query() StudentSelection.orderByFormula() StudentSelection.and() StudentSelection.minus() StudentSelection.or() StudentSelection.orderBy() StudentSelection.slice() Create entity selection または または テーブルと同名のクラスは使⽤不可(オーバーライド) ds データストア