4D v16 R5での新機能

 

セキュリティ

改善された4D Serverのセキュリティ

4Dはクライアント/サーバー間の暗号化通信のために、Transport Layer Security (TLS v1.0、TLS v1.1、および TLS v1.2) をサポートしています。4D v16 R5以降、サポートされる最低限のバージョンはTLS v1.2となり、それより古いバージョンのものは安全でない恐れがあるため、接続は拒否されます。4D Serverのセキュリティを向上させるためには、4D v16 R5にアップグレードするだけで済みます。Webページもメソッドも何も手を加える必要は無く、クライアント/サーバーアプリケーションも同じく何も手を加える必要はありません。

TLS v1.2をサポートしていない古いブラウザ(あるいはツール)をサポートする必要が出てきた場合には、 Get database parameter および SET DATABASE PARAMETER コマンドのMin TLS version セレクターを使用することで、セキュリティレベルを落とすことができます。

Generate Digest コマンドとSHA-2 サポート

ダイジェスト機能は、データの整合性チェックやデータ交換、あるいはデータ比較の際にはとても便利なものです。 Generate digest コマンドは改善され、SHA-2をサポートするようになりました。SHA-2 familyのうち、2つの新しいアルゴリズムをサポートします: SHA-256とSHA-512です。シンタックスは同じですが、2つの新しい定数、SHA256 digest および SHA512 digestが追加されます。

WEB USER LOGINでのハッシュとパスワード検証

ハッシュ機構はパスワードを保管するには理想的な方法です。パスワードのハッシュの生成および検証のために、2つの新しいコマンドが作成されました: Generate password hash および Verify password hash です。これらはどちらも遅く設計されているbcrypt アルゴリズムに基づいており、そのためブルートフォース攻撃もスピードが遅くなり、被害が最小限に食い止められるということです。

プリエンプティブプロセスで使用可能なコマンドの追加

メソッドをプリエンプティブプロセスで実行するということは、アプリケーションはより早くなり、より多くの接続ユーザーをサポートできるということです。4D v16 R5では、20以上の既存のコマンドがプリエンプティブプロセス内で使用できるように改善されました。デフォルトではプロジェクトメソッドはコオペラティブモードで実行されるという点に注意して下さい。そのため、プリエンプティブモードに切り替えたい時には、メソッドプロパティ内の実行モードプロパティオプションを”プリエンプティブモードで実行可能“に設定するようにして下さい。

 

jsonポインターの管理

JSONポインターは、JSONドキュメントを再利用可能な小さなパーツへと分割することで、JSONドキュメントを組み立てるのを容易にします。

4DではJSON resolve pointers コマンドによってJSONポインターをサポートするようになりました。このコマンドは引数として渡されたオブジェクト内のJSONポインターを分析し、ポインターの解決の成否のステータス、結果の値、および潜在的なエラーの一覧を格納したオブジェクトを返します。

未定義の値の扱いについて

オブジェクト記法における未定義のプロパティと値の使用はシンプルになりました。4Dランゲージにおいて未定義の値を式の中でどこでも受け入れるようになったからです。また、未定義の値を変数へと割り当てた場合には、その変数の型に応じたデフォルトの値に設定されるようになりました。これはつまり、存在しないオブジェクトのプロパティを読み込もうとした場合でも、エラーが生成されたりコードの実行が止まったりすることはないということを意味します。

フォーム間でデータを受け渡しする

新しいForm コマンドを使用することで、オブジェクトをフォームとバインドし、内部的に使用することができます。あるいは、データベースからデータが来ない際にはグローバル変数を使用することもできます。やることは簡単、オブジェクトに入れた引数をDIALOG コマンドを使用してフォームに渡すだけです。このオブジェクト内のプロパティは全てFormコマンド経由で利用可能です。サブフォームエリアに対しても同様のことをすることができます。

リストボックスにヘルプTipsを表示可能に

4D v16 R5において、2つのコマンドがヘルプTipsをリストボックスのセルに表示するために改善されました。一つ目は OBJECT SET HELP TIP コマンドで、リストボックスもサポートするように拡張されました。もう一つは LISTBOX GET CELL POSITION コマンドで、これは二つの任意の引数(x座標とy座標、ピクセル単位)をサポートするようになり、その座標に対応するカラムと列の番号を返します。

4D Write Pro

プログラムでヘッダーとフッターを管理

新しいコマンドのセットを使用することで、4D Write Proのヘッダーとフッターはプログラムで管理し、テンプレートに基づいた他のドキュメントを作成することができるようになりました。これらのコマンドは以下の二つのカテゴリーに分けられます:

  • ドキュメント内にあるヘッダー、フッターあるいはボディの参照を取得して、その参照から割り当てられたレンジを取得し、特定のセクションのドキュメントを作成するためのコマンド。これに該当するコマンド: WP Get headerWP Get body および WP Get footer
  • カーソルを特定の位置に移動させるためのコマンド: WP Get frame コマンドはカーソルが現在どこのフレームにあるのかの参照を取得します。一方、 WP SET FRAME コマンドはカーソルを特定のフレームへと移動させます。

ピクチャー式のサポート

4D Write Pro では、ピクチャー式をサポートするようになりました。4D v16 R5以降、コマンドは拡張され、画像を返す式は全てサポートするようになりました。式には4D変数、フィールド、関数、あるいはユーザー定義のメソッドなどを使用することができます。

4Dメソッドを式として使用する場合は、使用する前にSET ALLOWED METHODS コマンドを使用してメソッドの使用を有効化する必要がある点に注意して下さい。

背景画像を余白を残さないように設定

4D Write Proでは、新しく追加された画像の切り落とし・配置属性の背景スタイルのおかげで、背景画像がページ全体を埋めるように設定することが可能になりました。これにより、画像を境界線、パッディング、コンテンツだけでなく、紙サイズに裁断することができるようになりました。

この属性は以下の手段でコントロールすることができます:

  • 4D ランゲージ: WP SET ATTRIBUTES コマンドを使用して、新しいwk paper box 値を背景画像のクリッピングや配置属性に対して設定することができます。
  • 標準アクション: INVOKE ACTION コマンドを使用して、あるいは他の標準アクションと同じようにデザインモードから設定することができます。
  • 4D Write Pro ウィジェット: “background picture” あるいは “document”項目を選択する際には、clip および origin オプションには新しいpaper box オプションが選択可能です。

 

 

4D view Pro: 自動行高

4D View Proはすでに配列ベースのリストボックスにおいては行ごとの高さを変えることをサポートしています。4D v16 R5では完全に自動な行高をサポートするようになり、これはつまりリストボックスは行ごとに、その中身のテキストあるいはピクチャー全体を表示できるように行の高さを調整するということです。

プロパティリスト内にて、3つの新しいプロパティが追加されました: 自動行高、最小行高、そして最大行高です。これらの設定によってデベロッパーは自動行高モードを使用するかどうかを設定し、また最小・最大の行の高さも設定することができます。

これらの設定は LISTBOX SET PROPERTY コマンドと、新しい LISTBOX SET AUTO ROW HEIGHT コマンドを使用することによってプログラムで管理することもできます。

独自のサーバー管理ダイアログ画面

4D Webサーバーについての詳細な情報

新しいWEB Get server info コマンドは4D Webサーバーについての詳細な情報を取得します。このコマンドには任意のwithCacheInfo 引数があり、Webサーバーのキャッシュ情報が必要な時には有用です。この属性はデフォルトでは”False”に設定されています。

 

get process activity コマンドの改善

 Get process activity コマンドは結果がより解析しやすくなるように改善されました。それに加えて、新しいsystemID 属性が含まれるようになり、これによってプロセスの種類(ユーザー、4D、スペア)を識別できるようになりました。

もっと知りたいですか? 4D v16 R5についての全ての記事を読んでみましょう!