4D 20 R8での新機能

フォームエディター

改善されたシンタックスチェック

4D 20 R8 では、シンタックスエラーの早期検知がより効率的になりました。これにより、生産性とコードの質がブーストされます。これの主な利点は、フォームとクラスを関連づけることでForm.myProperty のような式のシンタックスチェックが可能になること、プロパティリスト内でのリアルタイムでの式評価、またDIALOG コマンドを使用する際の自動オブジェクトインスタンス化などが含まれます。

コードエディターには打ち間違いが減らすためにForm コマンド用の自動補完機能が追加され、またコードエディターおよびプロパティリスト内でもシンタックスエラーは検知され、よりスムーズで早い開発が実現できます。

改善されたFORM EDITコマンド

4D 20 R8では、FORM EDIT コマンドを使用する際に直接フォームを開いてフォームオブジェクトを選択する ことができ、これによってワークフローを単純化し、生産性を向上させることができます。今後はたくさんのページを移動することなく対象のフォームオブジェクトへと素早くアクセスしてプロパティを変更することができ、フォームの編集がより効率的になります。

依存関係マネージャー

進化したプロジェクト依存関係管理

4D 20 R8 では、依存関係の管理がより分かりやすくなります。GitHubから直接アップデートする依存関係の自動チェックを導入することで、あなたのプロジェクトが常に最新の機能と修正が反映された最新版であることを保証します。セマンティック・バージョニングルールを使用することで、正確なバージョンロッキングから柔軟なレンジまで、アップデート戦略を自分で定義することができるようになり、完全なコントロールを司ることが可能です。よりクリアな通知と、ターゲットアップデートまたはバルクアップデートへの手動オーバーライドオプションにより、依存関係管理をプロジェクト固有の要求に合わせることができるようになります。

4D Server

HTTPリクエストを4D Request Handlersを使用して完全に管理する

4D 20 R8 ではHTTP Request Handlersが導入されます。これは4D HTTP サーバーの強力な新機能で、これにより届いてくるWebリクエストを管理しレスポンスを返すための構築された手法が提供されます。扱っているリクエストがユーザー認証であろうが、ファイルアップロードであろうが、あるいは特定のURL ベースのロジックであろうが、この正確性と柔軟性に優れた機能を使用することで、あなたのWeb アプリケーションがビジネス用途に合致するように補正します。

新しい4D.IncomingMessageおよび 4D.OutgoingMessage クラスを使用することで、URL、ヘッダー、本文コンテンツなどのリクエストのプロパティへと直接アクセスすることができ、これによりあなたのアプリケーションの用途に応じて専用に構築されたレスポンスを返すことができます。それがたとえパフォーマンス解析のためにリクエストを記録する場合でも、ユーザーを権限に応じてリダイレクトする場合でも、あるいは動的にファイルを配信する場合でも、HTTP Request Handlers はその達成を分かりやすくしてくれます。

設定は、HTTPHandlers.json fileのおかげでスピーディーで直感的です。ハンドラーを定義し、それらをシングルトンクラス関数へと簡単にマップすることで、用途の変更に簡単に適応できる、クリーンで整理されたシステムを作成できます。

MacOSでの公証

コンポーネントのストラクチャーの変更

4D 20 R8 以降、4Dコンポーネントのストラクチャーを、SiliconベースのMac用の公証のためのAppleからの必要要項に合致させるために、変更しました。

この新しいストラクチャーによって公証と配布がシンプルになり、4D アプリケーションを配布するのと同じ程度に簡単になりました。

この新しいストラクチャーは、古いバージョンの4D (例:4D 20 R7など)とは互換性はないという点に注意してください。4D 20 R8 でビルドされたコンポーネントでは、CFBundleDisplayName 、CFBundleShortVersionString 、および CFBundleVersion などのフィールドが自動的に設定されています。Build4D でビルドされたコンポーネントの場合、これらのフィールドはお使いのbuildApp.4DSettings を使用して値が入れられます。先述の通り、新しいストラクチャーは古いバージョンの4D(4D 20 R7 や4D 20 LTS)とは互換性がありませんが、4D 20 R8 は古いフォーマットのコンポーネントを使用することはできます。

Debugger

改善されたデバッギングエクスペリエンス

4D 20 R8 ではデバッガとリモートデバッガに革新的な改善がもたらされました。

自動保存式を使用すれば、以前に評価した式を再度入力する必要がなく、よりよいデバッギングエクスペリエンスが約束されます。新しい“ピン留め”機能を使用すると、必須の式に常にアクセスすることができます。

また、ローカル変数線式、およびカスタムの式に関しても、式ペインにおいてより細かにコントロールできるようになります。

最後に、新たにデザインされたインターフェースによって、よりクリアで直感的なデバッギング環境が提供されます。

The 4D-Debugger extension

4DコードをVisual Studio Code内で直接デバッグする

4D 20 R8 では新しいVisual Studio Code用の4D-デバッガ拡張機能が導入され、これによりブレークポイントを設定する、コードを1行ずつ実行する、そして変数を検査する、こういった強力な機能が全てVS Code 内で直接行えるようになりデバッグを改善します。このツールは4D-Analyzerに基づいてビルドされまた統合はスムーズに行われます。これによりデバッグ作業はより早く、直感的に行えるようになります。

4D-デバッガ拡張機能はVS Code マーケットプレイスからインストールすることができます。4D Server がマシン上で実行されていることを確認し、.vscode/launch.json ファイル内で接続を設定してください。またデフォルトのデバッガポートを使用して既存のサーバーでデバッガを起動することもできます。

4D Write Pro

コマンドシンタックスの改善

4D 20 R8 では4D Write Pro にめざましい改善がもたらされます。これにより、コードは綺麗になり、メンテナンスが容易となり、素早い実装が可能となります。アップデートされたコマンドと関数を使用すれば、オブジェクト、コレクション、そして新しい引数をよりサポートできるようになり、これによりドキュメント管理から表の操作まで、あらゆる作業がシンプルになります。

  • 単純化された属性: WP SET ATTRIBUTES に対してオブジェクトを使用することで、すばやく書式設定を適用できます。
  • 柔軟な表: WP TABLE APPEND ROW コマンドはフォーミュラとコレクションをサポートします。
  • 画像: WP INSERT PICTURE はピクチャー要素を返すようになり、また4D.File 型の引数を受け取ることができるようになりました。
  • コンテンツの挿入: WP INSERT DOCUMENT BODY はドキュメントのコンテンツのみに特化するようになりました。
  • 新しい関数が追加されました。This.sectionIndex および This.sectionName、また This.pageIndex などを使用することで、ドキュメントの要素にアクセスするのがより分かりやすくなります。

4D View Pro

Excel の読込み/書出しのアップデート

4D 20 R8 では、4D View Pro でExcel ファイルを扱うのが今までより更に効率的で柔軟になりました。VP EXPORT DOCUMENT コマンドの新しい書き出しオプション を使用すると、より細かなコントロールが可能になり、バインドされたソース、スタイル、数式などを必要に応じて含める/含めないを選択できます。一貫した書式設定を保つために行と列のヘッダーを固定化することもでき、より早いワークブックのロードのために計算データを含めることもできます。さらには書き出したファイルを保護するためにパスワードを設定することもできます。

読み込み側に関しては、VP IMPORT DOCUMENT コマンドは書式設定、セルスタイル、フォーミュラなどをそのまま読み込む高度なオプションをサポートするようになり、これによってオリジナルのExcel データの整合性を維持することができます。これはつまりファイルを整形する雑務が減り、より信頼のおけるデータを4D View Pro インターフェースに統合することができるということです。全ての書き出しおよび読み込み機能は分かりやすい$excelOptions オブジェクト内に整理されており、コードをより維持可能にするだけでなく、既存のプロジェクトに対しての後方互換性を確保することにもつながります。

4D Netkit

Googleからユーザー情報を取得

4D 20 R8 では、Google のユーザー情報へのアクセスがより早く、効率的に行えるようになります。新しいビルトインの機能を使用すれば、認証されたユーザー、ドメイン情報、連絡先などの詳細な情報を簡単に取得することができます。その目的がユーザーインターフェースの改善であろうがEメール通信の自動化であろうが、Google.user.getCurrent()Google.user.list()、およびGoogle.user.get() といったシンプルなコマンドを使用することで、関連したデータに素早くアクセスし、管理することができるようになります。

セキュリティ

改善された暗号署名および検証

4D 20 R8 では、4D.CryptoKey.sign() および 4D.CryptoKey.verify() 関数がBlob とテキストの両方をサポートするようになり、これによりフォーマット間の変換を行う必要がなくなりました。この改善によりワークフローはシンプル化され、簡単にバイナリーデータを直接署名して検証することが可能になりました。

セッション

開発とテスト用にシンプル化されたセッション管理

4D 20 R8 では、セッションオブジェクトはスタンドアローンアプリおよびシングルユーザーアプリ内においても完全に動作するようになりました。これによって開発とデバッグの期間中、複雑な回避策を設ける必要がなくなりました。セッションオブジェクトは有効なオブジェクトを提供し、これによりより容易なセッションデータ管理、ロールベースの制約、クライアント/サーバー機能のテストなどが可能となり、全て簡略されたワークフローで行うことができるようになります。

アプリケーションのビルド

スタンドアロンアプリケーションを容易にビルドする

スタンドアロンアプリケーションをビルドするためには、埋め込みライセンスは必要なくなります。これによってプロセスは単純化され、アプリケーションの配布がより柔軟に行えるようになります。エンドユーザーがあなたの制作したスタンドアロンアプリケーションを起動すると、ユーザーフレンドリーなダイアログを通して簡単に4Dデスクトップライセンスを登録することができるようになります。また、登録されたライセンスを持ったスタンドアロンアプリケーションは終了時に4Dのスポンサーロゴを表示することはありません。これにより洗練されたプロフェッショナルなユーザーエクスペリエンスを提供します。

ネットワーク管理

TCP接続を管理する新たなクラス

4D 20 R8 ではTCPConnection クラスが導入され、これによりオブジェクト指向を使用した、非同期でTCP クライアント接続を管理する現代的でな手法が可能になります。このクラスではアップデートされたシンタックスが用いられ、onConnection、onData、および onError などのコールバックを使用することができます。これを使用することで、接続を確立したり、データをBlob として送信したり、イベントをシームレスに管理することが可能になります。