2013年10月9日水曜日

GeneXusミーティングレポート 2日目その2:オフライン - GX23

引き続きオフラインのセッションです。

※当情報は製品出荷前の情報であり、製品出荷時には変更になる場合もあります。あらかじめご了承ください。

スピーカーは開発チームのLeonardo Pineyroです。










まずはアーキテクチャーのおさらい。
オンラインでは、スマートデバイス側はUIのみとなり、サーバー側にサービス/ビジネス層(GeneXusオブジェクトとしてはプロシージャ、データプロバイダ、ビジネスコンポーネント)・データーベース(各DBMS)が配置されます。




オフラインの場合は、スマートデバイス側にUIに加えてビジネス層(GeneXusオブジェクトとしてはプロシージャ、データプロバイダ、ビジネスコンポーネント)とデータベース(SQLite)が加わります。

 オフラインに設定するとメインオブジェクトの下にオフラインデータベースオブジェクトが生成されます。
ビルド時にはローカルデータベースの影響分析レポートが表示されます。
この部分詳しく聞けませんでしたが、データベーステーブル作成・データベース再編成処理は恐らくWebアプリと違って、ビルド時ではなくデバイスにアプリをインストール・アップデート時に(バックグラウンドで)実行されるものと想像されます。
従って、GeneXus上の影響分析レポートでは再編成の実行・キャンセルボタンが見当たりません。

基本はルートとなるメインオブジェクトのConecitivity SupportプロパティをOfflineに設定すると、その配下のオブジェクトのデータベースが全てローカル(オフライン)データベースに作成されます。





但し、ルートオブジェクト配下でも(メインオブジェクトに対して)Conectivity SupportプロパティをOnlineに設定すれば該当するテーブルはローカルデータベースではなくサーバー側のデータベースに作成されます。
こうする事でオフラインとオンラインを混在させてアプリが作成できます。

この例だとマスタデータはオフラインで回線状況に関係無く参照できて、エントリデータは常にオンラインでリアルタイムにサーバーに書き込みを行う様なモデルです。


同期用のAPIも追加されます。
・IsServerAvailableメソッド(回線が接続しているか否か)
・Type()メソッド
 ・戻り値:NetworkAPIConnectionStatusドメイン(回線接続状態を表すEnum)





マニュアル同期の時に使用する同期用API
・Receive()
・Send()







オフラインデータベースのプロパティに同期設定があります。
・Data Synchronization Criteria
 ・Automatic
 ・Manual
・Minimum time between synchronization(自動同期時の同期間隔)










0 件のコメント:

コメントを投稿