10

社内で時々接続するアプリ (OCA) を構築します。どのような技術を採用することをお勧めしますか?

ここに私のパラメータがあります:

  1. .NET ショップ ( 3.5sp1 )
  2. コード ビハインドの C# ( winform,wpf,silverlight )
  3. SQL Server バックエンド ( 2005 または2008保留中の承認)
  4. ソロ開発者
  5. ソロ SQL 管理者
  6. ローテクエンドユーザー
  7. 5 つのブランチ オフィスへの低帯域幅
  8. これは LOB アプリですが、POS ではありません。
  9. 大多数のユーザーは、メンバーの家に持ち込むラップトップを持っています。
  10. このアプリのデータは、1 つの SQL インスタンスではありますが、5 つの別々のデータベースに保存されます。

どのパスを選択するかについての具体的な推奨事項を探しています。マージ レプリケーションまたは Sync Framework データベース同期プロバイダーですか? サブスクライバーでの SQL Express または SQL CE? DAL に LINQ to SQL を使用できますか?

Silverlight の「オフライン/ブラウザ アプリ外」の例はここにありますか?

これは私の最初の大規模なビジネス アプリケーションであるため、経験豊富なコメントを歓迎します。


ここで要求されているように、データのタイプに関する追加情報があります。私のユーザーは、メンバーの家に行き、彼らのために「計画」または「健康評価レビュー」を作成する看護師と社会福祉士です。これらは、医薬品リストや現在の「プロバイダー」のリストのようなものです。メンバーの目標を達成するための手順、または現在/過去の診断のリスト。そういうもの。

また、典型的なメンバーの名前、住所、電話番号など。ほとんどの場合、これはレポートを容易にするデータ ストレージおよび検索アプリです。「処理」はほとんど行われず、看護師とソーシャルワーカーはメンバーが割り当てられたチームで作業するため、クロスオーバーや潜在的なデータ競合は通常ほとんどありません. 看護師と SW も、MCP (メンバー中心の計画)のさまざまな領域を担当しています。


追加の質問; SQL 2008 を使用できる場合、Sync Framework は本当に唯一の実行可能なオプションですか? Change Tracking などにより、そのように思われます。

4

6 に答える 6

4

変更の検出とデータの移動の問題を解決すると、他のすべては簡単になります。言い換えると、WPF、Silverlight、Forms、さらにはWCFなどのテクノロジは主な問題に直交しており、個人的な好みや経験に基づいて選択する必要があります。ひびが入る本当のハードナットは、切断されて動作し、変更を同期しています。これにより、SynchFrameworkまたはReplicationという2つのすぐに使用できる手段が残ります。

あなたのシナリオでは、間違いなくSynchFrameworkと言えます。マージレプリケーションは、すべての形式のレプリケーションと同様に、断続的な切断で継続的に接続されるシステム向けに設計されています。そして最も重要なのは、レプリケーションは静的な名前に対してのみ機能することです。さまざまなホットスポットやISPから接続するラップトップには、接続ごとにFQ名を変更するという厄介な習慣があります。レプリケーションは、ある種のVPNが使用され、VPNが通常主要なサポートの問題である場合にのみ、これを克服できます。レプリケーションは、OCAシステムの高いモビリティのために設計されたものではありません。

Synch Frameworkは、データキャプチャまたは変更追跡を変更する必要があるため、SQL2008バックエンドにかなり強制されます。どちらもSQL2008のみの機能です。

まだ解決すべき難しい問題がたくさんあります(認証、バージョン管理とアップグレード、データの競合解決ポリシー、偶発的なメディア損失に対するクライアント上のデータの保護など)

于 2010-01-20T18:56:47.647 に答える
2

個人的には、次のように言います。

  • .NET 3.5
  • WCF Data Services (クライアント アプリとデータ間の通信用)
  • SQL Server 2k5/2k8 (使用できるもの)
  • ブラウザ機能外の Silverlight
  • VistaDB (サーバーにプッシュできるようになるまで、データをクライアントにローカルに保存するため)
于 2010-01-20T18:40:04.517 に答える
1

このようなものをゼロから作成できるようです。

ただし、これはCRMアプリケーションに非常によく似ているように思われます。最初から始めずに、ビジネスルールに合わせて構成の1つを変更することなく、これを実行するエンタープライズソフトウェアパッケージを見つけられたとしても、私は驚かないでしょう。

前の人生では、私はSiebelと呼ばれるこのものの構成開発者でしたが、これはあなたが探しているものに近いかもしれません。SiebelRemoteと呼ばれる同期ツールも組み込まれています。

自分でゼロからローリングするよりも安いルートかもしれません。

于 2010-01-20T19:00:54.130 に答える
1

ワインの営業担当者向けの受注プログラムを作成しました。これがビデオです。 クライアントソフトウェアは、クリックワンスを使用してインストールされます。また、SQL Server Expressがインストールされ、データベースが読み込まれます。Microsoft Sync Frameworkを使用して、ローカルデータベースをサーバー上のデータベースと同期しました(ビデオの最後のセクションを参照してください)。

  • 強力なクライアントでは、SQLServerExpressを使用しない理由はわかりません。4GBの制限で無料です。

  • SQL CEにはあまりにも多くの制限があり、主要なものであるストアドプロシージャはありませんでした。

  • 主キーとしてどこでもGUIDを使用する必要があります-新しいNewSequentialID()を参照してください。

  • 私はクリックが大好きです-一度、それは大きな時間の節約になります。

Silverlightを楽しみにしていますが、調査する時間がありませんでした。今それを行うかどうか、Silverlightでそれを行ったかどうかはわかりません。

とはいえ、これは経験の浅い人のためのプロジェクトではありません。ですから、私も非常に経験豊富な助けを得るでしょう。

于 2010-01-20T19:08:02.240 に答える
1

オフラインで接続していないときに何かを作成し、接続したときにデータベースを更新する場合は、キーに一意の識別子を使用します。

これは、自動インクリメント キーを使用するよりもはるかに簡単です。

于 2010-01-20T18:43:34.043 に答える
1

時々接続されるアプリケーションに取り組んできたので、接続を処理する同期サービスを使用して、クライアント マシン用の SQL Server CE を検討することをお勧めします。ここに良いチュートリアルがあります。

于 2010-01-20T18:47:35.203 に答える