弊社には、米国およびカナダの各地で、あらゆる壊滅的なイベントの人々がいます。一例は、イベントの直後にカトリーナでかなり流行していたことです。アプリケーションの開かれていない展開のためのアプローチ
私たちは、ASP.NETまたはWPFのいずれかのフィールドで自分の仕事を改善するためのアプリケーションを構築しています。切断要求によって、WPFアプリケーションになると思われます。私たちの人々は、インターネットを利用できるかどうかにかかわらず、雇用を創出し、すべての保険および測定データを提供し、データベースに保存する必要があります。
私たちが頭を悩ませる問題は、壊滅的な出来事でインターネットが利用できない場合でも、私たちの新しいアプリケーションを使用できるようにする必要があるということです。 (彼らはカトリーナで3日間オフラインでした)
他の誰も、小さなフットプリントデバイスでの機能にどのように近づいてきたのか、データがまだバックエンドのサービスやデータベースに接続されているかのように?また、セキュリティにもセキュリティを組み込む必要があります。入力したデータが問題なく接続されたデータベースに読み込まれるように十分な処理を施す必要があります。
私たちの長期的な目標は、AndroidおよびIPadタブレットデバイスとラップトップにもこのアプリケーションを提供することです。私たちのASP.NETへの最初の要望は、タブレット環境のための即座のアプリケーションを私たちに与えたということでした。古いアプリケーションでは、ローカルサーバーを実行し、タブレット上でリモート接続を実行し、ターミナルサーバー経由でアプリケーションを実行します。綺麗ではない。綺麗ではない。
私はこれが主観的ではない深刻な問題だと感じていますので、うまくいけば削除されません。
サーバー側の現在のアーキテクチャは、リポジトリパターンを持つEntity Framework、複合データ転送オブジェクトを返すCRUD要求を満たすWCFサービス、およびクライアントが使用するためのプロキシです。
他の開発者の意見やこのデザインパズルを聞くことに興味があります。ディスカッションに
追加情報を追加しましたが良い情報の
たくさん提供します!私は確かにMicrosoft Syncを見なければならないだろう。接続されていないデータベースの場合は、初期データベースにリストテーブル(列挙型)のみを配置します。私たちが手がけているクライアントごとに、仕事と必要に応じて乾いた本と呼ばれるアイテムが追加されます。 (ただし、私たちが家を掃除して乾燥させるまでにインターネットが戻ってくることを願っていますが)これは、安定したリンクがあればホストに戻ってくるテーブルです。カトリーナの場合、私たちはオフィスでもインターネット接続を失いました。それは、オフィスで何日もコミュニケーションの救済ができなかったことを意味しました。
昨夜私は、クライアントプロキシがすべての作業の鍵であることに気付きました!クライアントは、オンラインまたはオフラインであることを認識せずに、そのライブラリ内で同期処理を行います。今日私たちがどのくらいのデータを話しているかを発見しています。また、ASP.NETが好きだが、厚いクライアント(実際にはXAMLを使用するWPF)が終了状態になる可能性があることを明確にしたい。
今 - 複数の更新です。切断された作業は、単一のフランチャイズによって個々の家に行きます。事実、私たちのホームオフィスは特定のフランチャイズを特定のイベントに派遣します。だから、複数の人がレコードを更新するという問題の可能性が低くなります。その理由は、各職場(個人の家庭/オフィス/ビジネス)の記録を作成しており、その1つのフランチャイズだけがそれを処理するためです。もちろん、これはまた、ジョブを作成するデバイス(誰、どこで、条件、保険会社などの記録)も、仕事を知っている唯一のデバイスであることが数日間切断された場合にも意味します。しかし、それはと一緒に暮らすことができます。実際には、フランチャイズデバイスをハブ上で同期させる機能を持つことができます。
私は、あなたの接続されていない環境をどのように実装したのかという追加の話を聞くことを楽しみにしています。
ありがとうございました!
マイクロソフトから新技術を見てみると、私は開催されたTechEd 2012からの映像を見て監督と私は答えを持っているかもしれないと思いました。この話は、ASP.NETとMVC4を使用して、2つのライブラリを使用して切断された動作になっていました。最初は凄かったと思っていましたが、それが続きましたので、かなり心配していました。
最初に、切断されたI/Oをサポートするためのjavascriptバックエンドを使用しても、信頼性が生成されません。コンパイラの人(そして2つの解釈言語を書いた人)として、私は解釈的なJavaScriptに頼るクリティカルなビジネスモデルを持つのは本当に好きではありません。そしてそのスクリプト!それは私かもしれませんが、それだけで私は震えます。
次に、あなたのViewModelをジャバスクリプトとして持つ「素晴らしい」(???)プログラミングモデルを示します。私はメモ帳に書かれているアプリケーション(asp.netとjavascript)を気にしません。
いいえ、恋人には意味がありませんが、文法的にタイプチェックされたよく書かれたC#プログラムは、クラスネームスペースが適切にタイプされていないという希望と祈りで書かれたものよりも、クロスチェックの私はデバッグの時間が非常に長くなっています。バグを発見したのは、名前が変わった巨大な名前空間になってしまいました。私は私のグループの他の上級ディベロッパーよりも自分の考えを走らせました。私たちは皆、この技術についてコンセンサスを得ています。
しかし、私たちは引き続き見ています。 (私は、これは質問より日記のよりとなってきている感じ):)
これは、asp.netアプリケーションでなければならない理由があります。スタンドアロンではなく、定期的にアクティビティをポーリングして、マスターデーセットとの遅延同期をとることができますか? – devshorts
これの鍵は、Webサービスのようなものを使うことです。あなたは、このアプリを実行する必要があるかもしれない多くのデバイスをサポートするために様々な技術の味を使用しますが、1つのことは、デバイスとあなたのWebサービスとなるサーバー間の通信ゲートウェイです。各クライアントは、sql liteのようなローカルデータベースを持つことができます。アプリはいくつかの標準的な同期技術を使って変更をポーリングします。しかし、各デバイスは、最後の同期日からWebサービスからの「最新の」変更を取得し、WebサービスのさまざまなWebメソッドを使用して関連する変更を追加または変更します。 – Jeremy
どのようにデータを保存していますか? SQLサーバー? –