OCAを構築するためのツール(場合によっては接続されたアプリケーション)
-
21-09-2019 - |
質問
私は社内、時々接続されたアプリ(OCA)を構築します。どのテクノロジーを採用することをお勧めしますか。
これが私のパラメーターです:
- .NETショップ(3.5SP1)
- 背後のコードのc#Winform、WPF、Silverlight)
- SQL Server BackEnd(2005または おそらく 2008保留中の承認)
- ソロ開発者
- ソロSQL管理者
- ローテクエンドユーザー
- 5つの支店への低帯域幅
- これはロブアプリですが、POSではありません。
- 大多数のユーザーはメンバーの家に持って行くラップトップを持っています
- このアプリのデータは、1つのSQLインスタンスではありますが、5つの別々のデータベースに保存されます。
どのパスを選択するかについての具体的な推奨事項を探しています。複製または同期フレームワークデータベース同期プロバイダーをマージしますか?サブスクライバーのSQL ExpressまたはSQL CE? DALにLINQをSQLに使用できますか?
シルバーライト「オフライン/ブラウザアプリ」です ここで例, 、実行可能?
これは私の最初の大規模なビジネスアプリケーションなので、経験豊富なコメントは大歓迎です。
ここで要求されているように、データの種類に関するいくつかの追加情報があります。私のユーザーは、メンバーの家に行って、彼らのために「計画」または「健康評価のレビュー」を作成する看護師とソーシャルワーカーです。これらは、薬物リストやそこに現在の「プロバイダー」のリストのようなものです。メンバーの目標を達成するための手順またはそこにある現在/過去の診断のリスト。そういうもの。
また、典型的なメンバー名、住所、電話番号など。これは、レポートを容易にするデータストレージおよび検索アプリです。 「処理」はほとんど行われず、看護師とソーシャルワーカーはメンバーが割り当てられたチームで働いているため、通常、クロスオーバーや潜在的なデータの競合がほとんどありません。看護師とSWは、MCPのさまざまな地域の責任者も担当しています(メンバーセンタープラン)
追加の質問。 SQL 2008を使用できる場合、同期フレームワークは実際に実行可能なオプションにすぎませんか?そのように、変更の追跡などのために....考えは?
解決
変更の検出とデータの動きの問題を解決すると、他のすべては些細なことになります。言い換えれば、WPF、Silverlight、Forms、さらにはWCFなどのテクノロジーは、あなたの主な問題に直交することであり、あなたの選択はあなたの個人的な好みと経験に基づいている必要があります。ひび割れの本当のハードナットは、変更を切断し、変化を同期させることです。これにより、すぐに使用できる2つの通りが残ります:同期フレームワークまたはレプリケーション。
私は、あなたのシナリオのために、間違いなく言うでしょう 同期フレームワーク. 。マージレプリケーションは、あらゆる形態の複製と同様に、介入の切断に継続的に接続されているシステム用に設計されています。そして、最も批判的に複製することは、静的な名前でのみ機能します。さまざまなホットスポットとISPから接続するラップトップは、各接続でFQ名を変更するという厄介な習慣を持っています。レプリケーションは、ある種のVPNが使用され、VPNが通常大きなサポートの問題である場合にのみ、これを克服できます。複製は、OCAシステムの高いモビリティ用に設計されていません。
同期フレームワークは、する必要があるため、SQL 2008バックエンドにほぼ強制されます データキャプチャを変更します また 追跡を変更します, 、どちらもSQL 2008のみを機能させます。
先に解決するのに多くの難しい問題があります(認証、バージョンのアップグレード、データ競合解決ポリシー、偶発的なメディアの損失などのクライアントに関するデータの保護など)
他のヒント
個人的に、私は言うでしょう:
- .NET 3.5
- WCFデータサービス(クライアントアプリとデータ間の通信用)
- SQL Server 2K5/2K8(使用できる場合でも)
- ブラウザの機能を備えたSilverlight
- vistadb(サーバーにプッシュできるまでクライアントにデータを局所的に保存するため)
使用する 一意の識別子 キーの場合、オフライン中および接続せず、接続しているときにデータベースを更新する場合はキーの場合。
これは、自動インクリメントキーを使用するよりもはるかに簡単になります
時折接続されたアプリケーションに取り組んできたので、接続を処理する同期サービスを使用して、クライアントマシンのSQL Server CEに注目することをお勧めします。 これが良いチュートリアルです。
このようなものをゼロから作成することができます。
ただし、これはCRMアプリケーションのようなひどいように思えます。ゼロから開始せずにこれを行うためのエンタープライズソフトウェアパッケージを見つけて、ビジネスルールを満たすために構成の1つを変更できても驚かないでしょう。
前の人生で、私はこのことの構成開発者でした シーベル それはあなたが探しているものに近いかもしれません。 Siebel Remoteと呼ばれる組み込みの同期ツールもあります。
自分のものをゼロから転がすよりも、行くのに安いルートかもしれません。
ワイン営業担当者の注文プログラムを書きました。 これがビデオです。 クライアントソフトウェアは、click-onceを使用してインストールされます。また、SQL Server Expressをインストールし、データベースをロードします。 Microsoft Syncフレームワークを使用して、ローカルデータベースをサーバー上のデータベースと同期しました(ビデオの最後のセクションを参照)。
強力なクライアントが今では、SQL Server Expressを使用しない理由は見当たりません。4GBの制限で無料です。
SQL CEにはあまりにも多くの制限がありました - 保存されたプロセスは主要なものではありません。
どこでもガイドを主要なキーとして使用する必要があります。新しいnew sequentionId()を参照してください。
私はクリックオンセが大好きです、それは大きな時間の節約です。
シルバーライトを楽しみにしていますが、それを調べる時間がありませんでした。シルバーライトで今それをやったかどうかはわからない。
これをすべて言って、これは経験の浅い人のためのプロジェクトではありません。それで、私はいくつかの非常に経験豊富な助けを得るでしょう。