4D Write Pro
テキストをピクチャーとテキストボックスの周りで折り返す
4D 20 R5 では、ピクチャーとテキストボックスにはテキスト折り返し機能が追加され、これにより柔軟なドキュメントレイアウトデザインが可能になりました。新しいアンカーモードを使用することで、ユーザーは画像とテキストボックスの周りでテキスト折り返すことができ、これにより制約なしに、より視覚的にアピールするドキュメントの生成が可能になりました。
4D Write Pro インターフェースは、ピクチャーとテキストボックスの表示方法を選択できるように改善されました。標準アクション用の新しい値、image/anchorLayout および textBox/anchorLayout も用意されています。また、以下の新しい属性をを使うことでこれらの設定をプログラミング経由で調整することもできます: wk text wrap top bottom、wk text wrap square、wk text wrap square left、wk text wrap square right、および wk text wrap square largest
またおまけとして、これらの機能はSVG、PDF、およびHTML(埋め込みモードに基づく) への書き出しと、Word からの読み込み/書き出し時にも考慮されます。
インターフェースからセクションを管理
4D 20 R5 ではユーザーインターフェースからセクションブレークを管理できるようになりました。
インターフェースのアップデートにより2つのボタンからアクセス可能なメニューが追加され、これをユーザーが使用することで(これまで通り)セクションブレークを挿入したり、異なるページのオプションにアクセスできるようになります。これによってセクション内での簡単なカスタマイズ、例えば最初のページを後続のページと変えてみたり、あるいは右ページと左ページを差別化するなどのカスタマイズをインターフェースから直接行えるようになります。これに加えて、新しいメニューを使用することで、ヘッダーやフッターをセクションとサブセクションから削除することもできるようになります。
表組に行とカラムを無制限に追加する
4D 20 R5 では、1000行の上限が撤廃されます。
上限は4D Write Pro によって固定・管理されることはなくなり、今後は利用可能なメモリ量が上限となります。これによりデータソースを表に割り当てる際に、制約にとらわれることなく表組みを作成することができます。
wk page sizeでドキュメントサイズを管理
4D 20 R5 では4D Write Pro に新しいドキュメント属性が追加されます: wk page size です。この便利な機能を使用することで、ドキュメントの幅と高さの両方をワンステップで設定することができるようになります。カレントプリンターに関わらず、定義済みのプリンターフォーマット、ユーザー定義のカスタムフォーマット、あるいは標準ISO フォーマット(A0 – C10、DL、リーガル、など)から選択できるようになりました。これによってドキュメントサイズをさまざまな用途に向けて定義することを単純化でき、時間とコードの節約につながります。
ORDA
エンティティセレクションのデータを制限する
4D 20 R5 ではフィルターの実装を単純化することで、エンティティセレクションのデータ制限を改善します。これによって、特定の条件やユーザー操作に特化したより正確なデータ取得を保証するとともに、洗練されたクエリ/セレクション制約によってデータアクセスを保護します。
これを使用することで、4D デベロッパーは指定されたデータクラスから読み出したデータにビジネスフィルターを適用することができます。Web デベロッパーはユーザーや、Web セッションに保存されている他の関連する情報に基づいて取得したデータをフィルタリングすることができます。Qodly デベロッパーは読み出したデータをアプリケーションを操作しているエンドユーザーに基づいてフィルタリングすることができます。
REST
改善された4Dクライアントライセンス使用Improved 4D Client Licenses Usage
4D 20 R5 ではREST API 用の新機能、強制ログインを導入します。このモードでは適切に認証されるまでは誰もあなたのデータにアクセスすることはできず、認証が完了するまではREST API 経由でデータを閲覧することも操作することもできません。またこの機能を使用した場合には、認証に成功するまでは4D クライアントライセンスが消費されることがないようにします。
プログラミング関連機能
TRY-CATCHブロックの導入
throw() コマンドを実装し、Try(式)キーワードの導入を経て、4D 20 R5 では4D のエラー管理システムの次なる進化となる新機能が搭載されています: Try-Catch コードブロックです!
デベロッパーはコードをTry、Catch、そしてEnd try キーワードで括ることで、エラーを正確に管理、表示することができます。エラーが発生した場合、Catch ブロックのコードがそれを適切に管理するために実行されます。
共有クラス
4D 20 R5 では共有クラスが導入されます。これによって共有オブジェクトでのクラスの使用が容易になります。
共有クラスを使用することで、必要な設定を自動的に管理できるようになり、それによって共有オブジェクトの作成と使用の過程がシンプルになります。クラスコンストラクターまたは関数に”shared” キーワードを追加することで、そのクラスまたは関数が共有オブジェクトを作成または編集することを指示します。
4D シングルトン
4D 20 R5 ではとても便利な機能が導入されます: シングルトンです。これはアプリケーションのどこからでもアクセス可能なオブジェクトです。これは多くの機能を提供し、プロセスを超えた値やユーティリティクラスのホストとして機能するだけでなく、さらにはファクトリー・パターンのようなデザイン・パターンの基礎要素として機能します。
シングルトンには2つのタイプがあります:
- 通常のシングルトン、各プロセスに1つずつ持てる
- 共有シングルトン、アプリケーション全体で1つ持てる
これらの定義はシンプルです。クラスコンストラクターに”singleton” を追加するだけです。その後、作成したシングルトンには”me” 属性を使用することで簡単にアクセスできます。
合理化されたプロパティ宣言と初期化
4D 20 R5 ではプロパティ宣言を合理化する新機能を導入します。これを使用することで、デベロッパーは単一の行でプロパティの宣言と初期化を同時に行うことができるようになります。この改善によってコードの可読性と効率性はシンプルになり、個別の初期化ブロックの必要がなくなります。デベロッパーは類推された型または宣言された型および初期化に対応する、よりクリーンでメンテナンスのしやすいコードベースを作成することができるようになります。
クライアント/サーバー接続向けの新しい4Dリモートセッションオブジェクト
4D 20 R5 ではSession コマンドに拡張された新機能が導入され、これによってクライアント/サーバー接続とストアドプロシージャーをカバーするだけでなく、4D アプリケーション内の既存のWeb セッションやMobile セッションもカバーすることができます。このアップデートのために新しいクラス””が追加されました。これは4D リモートセッションを管理するために特化してデザインされたモノで、以下のプロパティを提供します: ID、info、storage および userName
単純化されたパッケージ管理
4D 20 R5 ではパッケージ管理を単純化する新機能を導入します: パッケージマネージャーです。今後はプロジェクトのコンポーネントをComponents フォルダに保存しなくてもよくなります。その代わりにこの新機能はdependencies.json および environment4d.json を使用し、これによってデベロッパーはアプリケーション内の依存関係をよりクリアに見ることができ、コンポーネントのパスをカスタマイズすることができるようになります。
これに加え、4D およびプロジェクトのComponents フォルダ内のコンポーネントの両方にデザインメニューのプロジェクト依存関係という名前の新しい画面でアクセスすることができるようになります。近い将来、このインターフェースから直接依存関係を追加/管理することや、他のパッケージマネージャーの機能を使用することができるようになる予定です。
4D プロジェクト
バージョン管理システムにおける改善されたカタログ管理
皆さんのフィードバックに基づき、4D プロジェクトのセットアップを大幅に改善しました。
以前は、テーブル、フィールド、リレーションなどの色や位置などは、catalog.4DCatalog 内に保存されていました。今後は、この情報はcatalog_editor.jsonと呼ばれる個別のファイルへと保存されるようになります。
これによって、変更の管理や作業のレビューが、特に複数のデベロッパーで開発をしているような場合に簡単になります。この変更によって、誰かがテーブルやフィールドの位置などを微調整した場合でもカタログファイルそのものには何の変更も加えられません。
この新機能によってコンフリクトを防いだり変更のレビューがシンプルになります。また、古いプロジェクトに対してこの新しい設定を切り替えるスイッチも付けました。この機能をうっかり有効化してしまっても、心配はいりません。古い設定に戻すことでそれを取り消すことができます。
4D View Pro
カスタムの関数の改善
4D 20 R5 ではスプレッドシート内において対象となるセルの数を知ることなくカラムや行のコンテンツに対するカスタムの計算ができるようになります。これはカスタムのフォーミュラに対して複数のセルレンジまたはオブジェクトを渡すことが可能になったからです。これによって全てのセルのコンテンツを格納したコレクションまたはオブジェクトを4D メソッド内で取得することができるようになりました。
4D Netkit
GMAILでEメールを送信せずに追加する
4D 20 R5 では下書きメールを作成し、それらを送信することなく指定されたラベルでメールボックス内に直接保存することができる新機能が追加されました。これによってメール内に保存しておいたテンプレートに容易にアクセスし、似たようなメールが必要になった場合にはすぐに編集するということができるようになりました。
PKCE for OAuth 2.0
4D 20 R5 ではOAuth 2.0 認証においてPKCE (Proof Key for Code Exchange) を含めるようになりました。OAuth2Provider クラス内のcs.NetKit 内のPKCEEnabled 設定を有効化することで、メールの傍受やリプレイ攻撃に対するセキュリティが強化されることになります。この機能は、それぞれの認証コード交換が安全な暗号化を経ているかをチェックすることで更なる保護を追加します。
証明書を使用したOAuth2.0 認証
4D 20 R5 では、Netkit はより改善されたセキュリティのために、OAuth 2.0 の証明書ベースの認証をサポートするようになりました。
クライアントシークレットの代わりに証明書を使用することで、特にMicrosoft Identity Platform などにおいて認証はより堅牢となります。
ユーザーインターフェース
新しいウィンドウタイプを使用してアプリの見た目をカスタマイズ
追加された2つウィンドウタイプを使用することで、ボタンや検索ボックスなどの独自の要素をウィンドウタイトルバーに追加してデザインすることができます。これはつまりアプリケーションの見た目を自分の用途に応じて完全に自由にカスタマイズすることができることを意味します。
それだけではありません!開発プロセスを合理化するための複数の新コマンドが導入されました:
- ウィンドウを、Windows のタイトルバーまたはmacOS のDockに収納する REDUCE RESTORE WINDOW
- あるウィンドウがWindows のタイトルバーまたはmacOS のDock に収納されているかどうかをチェックする Is Window Reduced
- あるウィンドウが最大化されているかどうかをチェックする Is Window Maximized
改善されたネットワーク通信(QUIC)
IPv6 およびブロードキャストサポートand Broadcast support
QUIC(将来的な4D リモートと4D Server のネットワークシステム) がまだ開発途中で製品での使用の準備はできてない一方、4D 20 R5 では周辺の機能が追加されます: ご自分のネットワークをテストし始める時です。
ブロードキャスト機能を使用すると、ユーザーは自分のネットワーク内でアプリケーションを実行中の4D Server を簡単に特定して接続することができ、これによりシームレスな統合が可能になります。これにくわえて、ブロードキャスト機能はより正確なサーバーの一覧を提供するように精錬され、これによりユーザーが関係のあるサーバーにのみ接続できるようにします。
また、IPv6 もサポートされるようになり、ご自分の4D Server をIPv6 ネットワークで使用することができるようになりました。
Visual Studio Code
ワークスペースシンタックスチェック
4D 20 R5 と4Dアナライザー拡張機能において、Visual Studio Code はワークスペースシンタックスチェッキングを提供するようになりました。これによりエラーを減らすのを手助けし、4D プロジェクト全体でミスをチェックすることでコーディングをより合理化します。エラーと警告はサイドバーに表示されるため、場所を探すのと問題を修正するのが容易になります。
Tool4Dの自動ダウンロード
4Dアナライザー拡張機能のバージョン0.2.0 において、4D アプリケーションを手動でインストールしてそのパスを拡張機能の引数として入力するのではなく、拡張機能がtool4d のバージョンを自動的にダウンロードし、システム内の場所に保存してバックグラウンドで実行するようにします。このシンプル化は、4D をVSコードで開発し始めるプロセスを合理化し、それを改善することを目的としています。
GitHub CodeSpaces
GitHubのCodespces はリポジトリをVisual Studio Code またはCodespaces アプリケーション経由であればどこからでも編集することができ、これによってリモート開発がシンプルになります。
4D プロジェクトに統合されたことで、デベロッパーは4D アナライザーのようなツールを使用することでコードハイライトや自動補完などの機能を通じてコーディング・エクスペリエンスを向上させることができます。先の項目にも説明のあった通り、4Dアナライザーは指定されたtool4d アプリケーションを自動的にダウンロードし、バージョンをアップデートします。4D はこれに特化したバージョンのtool4d をリリースしました。これによってGitHub は同じことをCodespaces 環境において実行できるようになります。