Mendix 8.10 - 人生をより良くする | Mendix

メインコンテンツへスキップ

Mendix 8.10 – 人生をより良くする

Mendix 8.10 - 人生をより良くする

At Mendix 私たちは常に、あなたの生活をより良くするために取り組んでいます。今月の製品リリースでは、外部データとシームレスに統合するデータベース コネクタ、オフライン ファースト アプリでの同期制御の強化、アクセシビリティ オプションの改善、強力なマイクロフロー式など、いくつかの新機能を提供しました。これらの更新により、開発者の作業が楽になり、エンド ユーザーが満足すると確信しています。

スタジオプロ

データベースコネクタ: バックエンドデータをフロントエンドユーザーに提供します

JDBC は、世の中にあるあらゆる種類のデータベースを接続する事実上の標準です。このリリースでは、データベース コネクタを使用して、ほぼすべての種類のデータベースに保存されているデータでアプリを簡単に拡張できるようになりました。

その データベースコネクタ 従来の SQL クエリを使用してデータを取得できます。

構文強調表示付きSQLクエリ
構文強調表示付きSQLクエリ

結果は簡単にアプリにマッピングできます。

結果オブジェクトタイプをエンティティから選択できるようになりました

クエリ句をパラメータ化して柔軟性を高めることができます。

ステートメント内のパラメータはタイプによって入力され、Studio Proは正しい値を渡しているかどうかをチェックします。

マイクロフロー ツールボックスには、次の 2 つの新しいアクティビティがあります。 Execute parameterized query の三脚と Execute parameterized statementこれらは、既存の 2 つのアクティビティの横にあります。新しいアクティビティにすぐに移行する必要はありません。自分のペースで移行できます。

新しいパラメータ化されたアクティビティ

これらの改善はStudio Pro 8.6以降で利用可能です。 データベースコネクタ この新機能を利用するには、App Storeからv3.xをダウンロードしてください。ソースモデルの詳細については、 GitHubリポジトリ.

パラメータ化された文字列テンプレート

文字列を直接連結して大規模なクエリを構築すると、すぐに面倒になり、場合によっては安全でなくなることがあります。パラメータ化されたクエリはこれらの問題を解決できます。このリリースでは、 文字列テンプレート パラメータと型情報が追加され、モジュール開発者はパラメータ化されたクエリを作成できるようになりました。

文字列テンプレートパラメータがなければ、クエリベースのモジュールを作成するのは難しく、通常、クエリを適切に構築する負担はモジュールの消費者に課せられます。次の例では、古いデータベースコネクタを使用して外部データベースに対してステートメントを実行します。開発者は、完全なJDBC URLでクエリを渡し、完全なクエリを構築してから、 Execute Statement アクション:

実行ステートメントでは、開発者は完全なクエリを1つの文字列で提供する必要があります。

これは単純なクエリには便利です。しかし、高度なクエリは簡単にフォーマットできず、構文の強調表示などのエディター サービスもないため、すぐにメンテナンスが難しくなります。クエリが安全であることを保証する責任は、部分的に開発者にかかっています。実際、場合によっては、チェックされていないユーザー入力に基づく式を手動でサニタイズする必要があります。

文字列テンプレートパラメータを使用すると、これは過去のものになります。開発者は完全に安全なパラメータ化されたSQL文を書くことができます。 Mendix Studio Pro では、Java アクションに文字列テンプレート パラメータを追加すると、このアクションの呼び出し元は通常の文字列入力ではなくテンプレート入力を取得します。次の例は、この新しい機能を使用して外部データベースに対してパラメータ化された更新ステートメントを実行するデータベース コネクタの例です。

SQL 構文の強調表示を備えたテンプレート化されたクエリ

データベースコネクタはJDBCを使用してこのクエリを実行します。 PreparedStatementつまり、渡されるすべての式は型チェックされ、エスケープされます。

では、データベースコネクタではどのように実装されているのでしょうか?Studio Proでは、テンプレートには Mendixスタイルのインデックス付きテンプレート パラメータ、つまり、 {1} の三脚と {2}Java実装では、これをJDBCにマッピングする必要がある。 PreparedStatementプレースホルダー、例: {1}はJDBCに置き換える必要がある ?次の行では、プレースホルダーを次のいずれかに置き換えることができます。 IStringTemplate メソッド:

String updatedTemplate = template.replacePlaceholders((parameter, index) -> "?");

この更新されたテンプレートから、準備されたステートメントを作成できます。

PreparedStatement pstmt = con.prepareStatement(updatedTemplate);

テンプレートパラメータとその型と値のリストも以下で提供されます。 IStringTemplate各テンプレートパラメータの型情報と値を使用して、正しいインデックスにパラメータを追加することができます。 PreparedStatement:

List templateParameters = stringTemplate.getParameters();
for (int i = 0; i < templateParameters.size(); i++) {
ITemplateParameter parameter = templateParameters.get(i);
switch (parameter.getParameterType()) {
case INTEGER:
pstmt.setLong(i + 1, (long) parameter.getValue());
break;
case STRING:
pstmt.setString(i + 1, (String)parameter.getValue());
break;
case BOOLEAN:
pstmt.setBoolean(i + 1, (Boolean)parameter.getValue());
break;
case DECIMAL:
pstmt.setBigDecimal(i + 1, (BigDecimal)parameter.getValue());
break;
case DATETIME:
pstmt.setDate(i + 1, convertDate(parameter.getValue()));
break;
}
}

文字列テンプレートを使用して、データベースコネクタや類似のモジュールへのユーザーフレンドリーなインターフェースを構築できます。自分で作成したモジュールを含むあらゆる種類のモジュールに対して、クエリまたはクエリのような構造を使用する使いやすいアクティビティを作成します。インスピレーションを得るために、 GitHub のデータベース コネクタ.

モバイル

デバイスに同期: 選択したオブジェクトのみを同期します

オフライン ファースト アプリが同期するたびに、オフライン データベースがクリアされ、最初から再入力されてデータの整合性が保証されます。ただし、これにより、頻繁に変更されない大量のデータ セットなど、不要なオーバーヘッドが発生する可能性があります。そのため、頻繁に同期する必要はありません。

このリリースでは、sync-to-device というマイクロフロー アクティビティを追加しました。このアクティビティにより、開発者はマイクロフローを介して必要なオブジェクトのみをデバイスに同期できます。これらのオブジェクトはローカル データベースに追加され、他のデータは同期されないため、非常にパフォーマンスの高いオプションになります。複数のエンティティのオブジェクトを同期する場合は、このアクティビティを複数回呼び出すことができます。

今日のニュース項目を同期するために使用されるデバイスへの同期

もう 10 つの良い例は、製品リストのように、めったに変更されない大量の静的データ (例: XNUMX 以上のオブジェクト) がある場合です。この場合、すべてのオブジェクトを一括でダウンロードしている間、デバイスに進行状況画面を表示できます。サーバー上のデータが変更されると、変更されたオブジェクトだけを同期できるため、デバイスへの同期が非常に柔軟かつ効率的になります。

を参照してください リリースノート をご覧ください。

ウェブ

新しいウェブナノフローアクティビティによるアクセシビリティの向上

アクセシビリティの高いアプリを構築することは、アプリをよりユーザーフレンドリーにするために不可欠です。今回のリリースでは、アクセシビリティを向上させるためにいくつかのアップデートを行いました。アップデートの詳細については、 リリースノート または 評価ガイド アクセシビリティ サポートの詳細については、こちらをご覧ください。

また、Web 用の 4 つの新しいナノフロー アクティビティも公開しました。これらのアクティビティは、フォーカス要素をより細かく制御できるようにすることで、ユーザー エクスペリエンスを向上させます。

フォーカスを設定する: 特定の要素に直接フォーカスを設定する
次に焦点を合わせる: 次の可能な要素にフォーカスを設定します
前のフォーカス: 前の要素にフォーカスを設定します
にスクロールします: ページ上の要素

新しいウェブアクションモジュール

これらのアクティビティは、アプリストアの新しいウェブアクションモジュールからダウンロードできます。 こちら.

Platform

簡素化されたストーリー概要ページ

開発者ポータルのストーリー概要ページは今年初めに大きく変わりました。2月から新しいデザインに切り替えることができましたが、現在はこれがデフォルトになっています。 Mendix コミュニティ Slack.

今回のアップデートでは、このページをさらに簡素化して、よりユーザーフレンドリーにしました。ページ上部の検索ボックスを使用するだけで、適切なストーリーを見つけることができます。説明、ラベル、ステータスでストーリーを一度に検索します。

簡略化された検索

「新しいストーリー」ページの「別のストーリーを作成」ボタンをクリックするか、キーボード ショートカット Shift+Enter を使用して時間を節約します。

別の物語を創る

これらの変更に加えて、ストーリーの編集、概要ページでのストーリーの読み込み、アクティブなスプリントに到達するときのストーリー API などのパフォーマンスも改善されました。

喜びをもたらすもの

マイクロフロー式における関連付け

マイクロフロー式では常に関連付けを使用できますが、使用例は限られています。関連付けが空かどうかを確認したり、別のオブジェクトと比較したり、割り当てに使用したりできます。ただし、それ以上のことが必要な場合、たとえば属性の値を確認する必要がある場合は、常に 検索します 最初に関連オブジェクトを選択します。しかし、もうそうではありません。

このリリースでは、関連付けの使用が簡単になりました。たとえば、決定や値の設定など、すべてのマイクロフロー式内で関連付けを直接追跡できるようになりました。次のように記述するだけです。 $variable/Module.Association/Module.TargetEntity/Attribute 参照されたオブジェクトの属性を取得します。

しかし、そこで止まる必要はありません。2 つ以上の関連付けをフォローし、特殊化が使用されている場合は関連付けのエンティティの種類を確認することもできます。

複数の関連付けを追跡し、タイプを確認する

一貫性エラーと警告の視覚的なインジケーター

アプリケーションモデルの一貫性を確保するには、 Mendix 高度なエラーチェックメカニズムを提供します。完全に正しくないモデルを作成すると、構文エラーと意味エラー、警告が表示されます。これらのエラーと警告は、 エラー ペイン Studio Pro のリストです。

モデルの構築中にさらに迅速なフィードバックを提供するために、Studio Pro では、関連する要素の上に一貫性エラーと警告の数を視覚化できるようになりました。エラーには赤いインジケーターが表示され、警告にはオレンジ色のインジケーターが表示されます。

エラーと警告の視覚的なインジケーター

この機能は、 アイデア 提出された Mendix アイデアフォーラム アクセル・ブリンク著。アクセル、開発に協力してくれてありがとう Mendix より簡単に!

人生をより良くし続けよう

新しい機能や特徴の詳細については、 リリースノートそして、いつものように、最新バージョンをダウンロードしてください Mendix スタジオプロ 人生をより良くするために。

言語を選択してください