私たちの会社には、ここ米国とカナダの一部で発生するすべての壊滅的な出来事に人々がいます。一例は、イベント直後のカトリーナでかなり流行していたことです。
ASP.NETまたはWPFのいずれかのフィールドでの仕事を改善するためのアプリケーションを構築しており、切断要件により、それがWPFアプリケーションになると確信しています。私たちの従業員は、仕事を作成し、すべての保険と測定データを提供し、インターネットが利用可能かどうかにかかわらず、データベースに保存することができる必要があります。
私たちが頭を悩ませようとしている問題は、壊滅的なイベントが発生したときに、インターネットが利用できない場合でも、従業員が新しいアプリケーションを使用できるようにする必要があるということです。(彼らはカトリーナで3日間オフラインでした)
他の誰かが、このような要件や、バックエンドサービスやデータベースに接続されているかのようにデータを保存しながら、フットプリントの小さいデバイスで機能する方法についての提案に対処する必要がありましたか?また、これにもセキュリティを組み込む必要があり、入力されたデータが問題なく接続されたデータベースに読み込まれるように十分に実行する必要があります。
私たちの長期的な目標は、ラップトップだけでなく、AndroidおよびIPadタブレットデバイスにもこのアプリケーションを提供することです。ASP.NETに対する私たちの最初の望みは、タブレット環境への即時のアプリケーションを提供することでした。彼らが持っている古いアプリケーションでは、ローカルサーバーを実行し、タブレットでリモート接続を実行し、ターミナルサーバーを介してアプリケーションを実行します。きれいではありません。きれいではありません。
これは主観的ではない深刻な質問だと思いますので、削除されないことを願っています。
サーバー側の現在のアーキテクチャは、リポジトリパターン、複合データ転送オブジェクトを返すCRUDリクエストを満たすWCFサービス、およびクライアントが使用するプロキシを備えたEntityFrameworkです。
他の開発者の意見やこのデザインパズルを聞くことに興味があります。
ディスカッションに追加された追加情報
たくさんの良い情報が提供されました!!! 確かにMicrosoftSyncを見る必要があります。切断されたデータベースの場合、初期データベースにはリストテーブル(列挙)のみを配置します。ジョブと、必要に応じてドライブックと呼ばれるアイテムが、支援しているクライアントごとに追加されます。(家を掃除して乾かすまでにインターネットが戻ってくることを願っていますが)これらは、安定したリンクができたらホストに戻されるテーブルです。カトリーナの場合、私たちはオフィスのインターネット接続も失いました。これは、オフィスが何日も通信の救済を提供しなかったことを意味します。
昨夜、私たちのクライアントプロキシがすべてが機能するための鍵であることに気づきました。クライアントは、オンラインまたはオフラインであることに気づかず、同期プロセスをそのライブラリ内に残します。今日話しているデータの量を発見しています。また、ASP.NETはありふれたものでしたが、シッククライアント(実際にはXAMLを使用したWPF)が最終的に最終状態になる可能性があることを明確にしておきたいと思います。
今-複数の更新のため。切り離された仕事は、単一のフランチャイズによって個々の家に行きます。実際、私たちのホームオフィスは特定のフランチャイズを特定のイベントに派遣しています。したがって、複数の人がレコードを更新する問題が発生する可能性は低くなります。その理由は、彼らが各仕事(個人の自宅/オフィス/ビジネス)のレコードを作成しており、1つのフランチャイズだけがそれを処理するためです。もちろん、これは、それらが数日間切断された場合、ジョブを作成するデバイス(誰が、どこで、状態、保険会社などの記録)もジョブを知っている唯一のデバイスであることを意味します。しかし、それは一緒に暮らすことができます。実際、ハブ上のフランチャイズデバイスを同期する機能を備えている可能性があります。
切断された環境をどのように実装したかについての追加の話を聞くのを楽しみにしています。
ありがとう!!!
マイクロソフトの新技術を見る
TechEd 2012のビデオを見るように指示され、答えがあるのではないかと思いました。話は、切断された動作のために2つのライブラリとともにASP.NETとMVC4を使用することについてでした。最初はいいなと思いましたが、それが続くとかなり心配になりました。
まず、切断されたI / OをサポートするためにJavaScriptバックエンドを使用しても、信頼性は得られません。コンパイラーの人(そして2つの解釈言語を書いた人)として、私は解釈的なjavascriptに依存する重要なビジネスモデルを持つのが本当に好きではありません。そして、そのスクリプト!それは私かもしれませんが、それは私を震えさせます。
次に、ViewModelが単なるjavascriptとして存在する「素晴らしい」(???)プログラミングモデルを示します。私は、メモ帳で記述できるアプリケーション(asp.netおよびjavascript)を気にしません。
asp愛好家には不快感はありませんが、構文的にタイプチェックされたよく書かれたC#プログラムは、クラスの名前空間がクロスチェックの手段なしで適切にタイプされているという希望と祈りを込めて書かれたものよりもソフトウェアに対する自信があります。名前が入れ替わった巨大な名前空間になってしまったバグを探すために、何時間もデバッグを行ってきました。私は自分のグループの他の上級開発者に思いを馳せ、このテクノロジーについて全員が合意しています。
しかし、私たちは見続けます。(これは質問というよりは日記になりつつあると思います):)