Windows Mobile 開発 - どこから始めればよいですか? [終了] 質問する

Windows Mobile 開発 - どこから始めればよいですか? [終了] 質問する

さて、私はもうすぐ Windows Mobile 開発の道を歩み始めます。私はこのテーマについて何も知らないので、何か困ったことがあれば教えてくれる経験のある人を探しています。

現時点では、何が必要なのかさえわかっていませんが、アプリケーションはデータを更新するための一連の CRUD フォームにすぎないと想定しています。私が知っている唯一の他の要件は、信号が利用できない場合にアプリケーションがオフライン ストレージをサポートする必要があることです。これにより、信号が返されたときに何らかの同期が必要になることは明らかです。

私の最初の考えは、アプリケーションは主に Web サービス レイヤーと対話するためのフロントエンドになるということです。WCF はこれらのサービスを構築するのに適したテクノロジになると思いますか? また、オフライン ストレージの問題に関しては、SQL Server CE がよい選択肢になると思いました。

この分野で役に立つと思われる知識があれば、ぜひ教えてください。アドバイス、リンク、書籍など何でも結構です。

編集: オフライン同期には 2 つの方法があることがわかっています。何らかの形式のメッセージ キューを使用するか、SQL 同期ツールを使用するかのどちらかです。これらの比較と紹介をしてくれる人はいますか?

編集 2: もう少し調べてみると、基本的にここでは 3 つの異なるアプローチを使用できるという印象を受けました。

  1. 組み込みデータベースにクエリを実行し、可能な場合はオンラインで同期する
  2. MSMQ と .NET リモート処理
  3. Exchange Server を使用した ExchangeWebServiceMailTransport バインディングを備えた WCF。

さて、最初の問題についてはいくつか良い点が指摘されており、私が直面するであろう問題についてはある程度理解していると思います。しかし、MSMQ の実装と WCF の新しいバインディングの使用に関してもう少し情報を入手したいと思います。

ベストアンサー1

ここでは、これまでの (約 9 か月) .net Windows Mobile 開発の経験から少しお話します。

  1. まあ、時々接続されます。(または、時々切断されます)。キューを使用したメッセージング (つまり、WCF/SOAP/XML またはそれに類似したもの) を使用するか、データベース同期を使用するかを選択する必要があります。私は SQL 同期ルートを選択したので、メッセージングについてはコメントできません。SQL 同期ルートは面倒な作業が伴います。

  2. 私のように SQL Compact で同期ルートを選択する場合、基本的に 2 つの選択肢があります。SQL Server マージ レプリケーションまたは新しい ADO.NET 同期サービスです。前者を選択する場合、モバイル サブスクライバーとパブリッシャーの間で簡単にパーティション分割できるように、DB 設計に細心の注意を払う必要があります。競合について真剣に考える必要があり、正規化された DB 設計では通常分割されないテーブルを分割することがその 1 つの方法です。デバイスがしばらくオフラインになり、パブリッシャー DB (つまりメイン DB) および/またはサブスクライバーが同じデータを変更する状況を考慮する必要があります。デバイスがオンラインに戻ったらどうなるでしょうか。パーティション分割が適切であっても、競合を解決する必要があるかもしれません。これが私が失敗した点です。しかし、SQL マージ レプリケーションはうまく機能し、記述する必要があるコードの量を削減できます。

  3. 独自の DAL を作成してください。データリーダーなどを UI コードから直接使用したり、型指定されたデータセットを使用したりしないでください。Windows Mobile で動作するサードパーティの DAL がある可能性があります (LLBLGEN は動作することがわかっているので、確認する価値があるかもしれません) が、Linq-to-SQL はサポートされておらず、とにかく軽量なものが必要です。DAL はそれほど大きくならない可能性が高いため、自分で作成してください。

  4. .net を使用している場合は、おそらく実装されていないプラットフォーム機能が必要になるでしょう。不足している機能 (特に接続性と電源管理に関連する機能) を補うために、この安価なフレームワークを使用することをお勧めします。http://www.opennetcf.com/Products/SmartDeviceFramework/tabid/65/Default.aspx

  5. Windows Mobile デバイスは、使用されていないときは電力を節約するために部分的に電源をオフにします。ポーリング タイプの設計を行う場合は、x 分ごとにデバイスを起動する必要があります。通常の .net タイマー クラスでは、これは実行されません。OpenNetCF (上記) から使用できるプラットフォーム機能を使用する必要があります。タイマー クラスは LargeIntervalTimer と呼ばれ、OpenNetCF.WindowsCE アセンブリ/名前空間にあります (と思います)。

幸運を!

おすすめ記事