互換性設定と、アプリケーションのパフォーマンスと動作を劇的に改善する秘密のオプション(QUERY BY FORMULA、Transactions、period and comma)に関するブログ記事のシリーズを開始しました。シリーズの最終回となる今回は、残りの設定について概要を説明します。
ここでは、何年も前に作成された構造の例を示します。互換性オプションは無効になっており、完全にv17モードで動作していることを意味します。
互換性設定は、古い動作をエミュレートすることができますが、永久的なものではないことに留意してください。互換設定は、移行時間を延長してくれますが、あまり長くは待てません…時間が経つと移行オプションは消えてしまいます。新しく作成された構造体では、これらの古い設定を使用できないことを考慮すると、テストされることが少なくなり、予期しない動作のリスクが高まります。
ユニコードモード
OS X、Windows NT、4D v11(およびそれ以降)は、Unicode専用に設計されており、Unicodeで動作します。4Dのデータベースエンジンは、Unicodeでのみ動作します。この言語は互換モードをサポートしており、MacRomanエンコーディングの処理をエミュレートするために、各実行行でテキストをUnicodeに変換したり、Unicodeから変換したりしています。そして、そう、これはパフォーマンスを低下させます。過去10年間、多くの技術ノート、4Dサミットセッション、トレーニングで、Unicodeに移行する方法が紹介されてきました。まだの方は、今すぐ始めましょう。
Unicodeを有効にして、”Save methods as Unicode “の互換性設定も有効にする必要があります。有効にすると、解析されたすべての新しいメソッドが Unicode で保存され、コード内で拡張文字セットをリテラルとして使用できるようになります。メソッドを直接読み書きする古いプラグインを使用する場合を除き、メソッドを Unicode で保存することに互換性の問題はありません (これはもう長い間非推奨です)。
最後に(しかし確実に)、オブジェクト記法はUnicodeでのみ可能です。
オブジェクトでISO日付フォーマットの代わりに日付タイプを使用する
このオプションはv17の新機能です。詳しくは、オブジェクト内の日付に関するブログポストをご覧ください。
アプリケーションのデプロイメントに新しいアーキテクチャを使用する
このオプションは、読み取り専用のアプリケーションの作成を容易にし、最後に使用されたサーバーやデータファイルへのパスがアプリケーション内に保存されないため、更新のデプロイメントにも有効です。詳細はこちらの ブログポストをご覧ください。
4Dからのデータでないデータのドロップを防ぐ
この設定が有効な場合、アプリケーションはまだ4D v2004モードで動作しており、他のアプリケーションから4Dへのドラッグ&ドロップ(テキストと画像以外)は不可能でした。
まだの方は、ドラッグ&ドロップに対応する時期に来ています。詳しくは、ドキュメントのDrag and DropとManaging pasteboardの章をお読みください。
新しいコンテキスト参照モードを使用しない
この設定はとても古く、正直なところ、これが4D 6.0をエミュレートしているのか、6.5をエミュレートしているのかさえも覚えていません。
もし、4Dのウェブサーバーを使わないのであれば、無効にしてください。もし、使っていて、有効になっていて、15年間コードを触っていないなら、更新の時期です …
不明なURLの”/”を削除する
これは、Webサーバーを4D v2003モードに設定します。この設定が有効になっている場合、コードを書き直す時期が来ています。
自動変数割り当て
この設定が有効な場合緊急 – 今すぐお読みください
これは潜在的なセキュリティ問題であり、(コードによっては)大きな問題になる可能性があります。
20年前、これは快適な機能でしたが、より安全なアプローチにすぐに取って代わられました(そして、より多くのコーディングを必要としました)。
有効にすると、HTML フォームで使用される HTML 変数は、Compiler_Web で定義されている限り、自動的に 4D 変数にマップされます。一般的にそこで定義されるのは変数の小さなサブセットだけですが、それらの変数がハッカーから上書きされるという潜在的な脅威は残ります。
変数を割り当てるより良い方法(4D 6.5 で導入されました)は WEB GET VARIABLES.
4Dは、コードを書き直し(必要であれば)、この設定を無効にすることを強くお勧めします。
…おわりに
この記事で互換性設定に関する連載を終了します。さて、新しい互換性の知識を得て、あなたのアプリケーションが安全かつ最適に動作するように設定するのを楽しんでください!