2010-01-20 69 views
9

我將構建一個內部偶爾連接的應用程序(OCA)。你會建議我採用哪些技術。構建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. 該應用程序的數據存儲在5個獨立的數據庫中,但在一個SQL實例中。

我在尋找關於選擇哪條路徑的具體建議。合併複製或同步框架數據庫同步提供程序?訂閱服務器上的SQL Express或SQL CE?我可以爲DAL使用LINQ to SQL嗎?

是Silverlight'Offline/Out of Browser App'Example Here,是否可行?

這是我的第一個大型商業應用程序,所以任何有經驗的意見,歡迎。


根據要求,這裏是關於數據類型的一些額外信息。我的用戶是護士和社會工作者,他們前往會員家中爲他們創建「計劃」或「健康評估評估」。這些都是藥物清單或當前「提供者」列表。實現成員目標的步驟或當前/過去診斷的列表。像這樣的東西。

此外,還有典型的會員姓名,地址,電話號碼等。通常這是一個數據存儲和檢索應用程序,方便報告。很少有「處理」發生,護士和社會工作者在分配成員的團隊中工作,所以我通常沒有交叉或潛在的數據衝突。護士和SW的同時,分別負責不同區域的在MCP(會員中心計劃


其他問題;如果我可以使用SQL 2008,Sync Framework真的只是一個可行的選擇嗎?似乎由於更改跟蹤等....想法?

+0

請分享一些關於您將使用哪種數據的信息。具體來說,您期望在每個方向(用戶和服務器之間)有什麼樣的音量和流失率? – 2010-01-20 18:39:43

+0

opps,錯過了卷的一部分。我們有300名員工和5000名會員。他們傾向於每天在多個「計劃」上工作。 – 2010-01-20 18:50:01

+0

@RefractedPaladin你最終做到了這一點嗎?我正在考慮製作類似的程序。任何指針? – 2013-03-20 11:14:03

回答

4

一旦你解決了變化檢測和數據移動的問題,其他一切都是微不足道的。換句話說,WPF,Silverlight,Forms甚至WCF等技術都與您的主要問題正交,您的選擇應該基於您的個人偏好和經驗。真正難以解決的問題是斷開連接並同步更改。這留下了兩個開箱即用的途徑:Synch Framework或複製。

我想說,對於您的情況,請定義Synch Framework。合併複製,就像所有形式的複製一樣,是爲連續連接的系統而設計的。而且大多數批評性複製只能用於靜態名稱。連接各種熱點和ISP的筆記本電腦有一個很糟糕的習慣,每個連接都改變FQ名稱。只有在使用VPN類型的情況下,複製才能解決此問題,而VPN通常是主要的支持問題。複製不是爲OCA系統的高移動性而設計的。

由於需要Change Data CaptureChange Tracking,Synch Framework幾乎會迫使你到SQL 2008後端,兩者都是SQL 2008的唯一特性。

你仍然有很多難題要解決前進(認證,版本和升級,數據衝突解決策略,客戶端意外介質損耗等等等等上的數據安全)

+0

可能是一個愚蠢的問題,但與'Sync Framework'我仍然可以使用'Linq To Sql'作爲我的DAL? – 2010-01-20 19:01:18

+0

典型的Sync Framework客戶端是SQL Server CE,而LINQ2SQL僅適用於'真正的'SQL Server(即* * not * CE)。您可以使用linq來代替EF。您也可以選擇在客戶端上部署SQL Express,並且可以同時使用Synch Framework *和* linq到sql。在你的鞋子裏,我會選擇客戶端上的linq 2 Entity Framework和SQL Server CE。當然,我不知道你的所有要求。 – 2010-01-20 19:05:15

+0

我不介意Linq的EF部分,尤其是在衡量Express與CE的額外「膨脹」時。 在另一點上;他們只需要在辦公室時能夠連接,這是否有所不同?不在現場。從中央到每個分支已經存在VPN。基本上他們只是把數據帶給成員。當他們回到辦公室時,進行更改並重新同步。 這是否改變你的任何建議? – 2010-01-20 19:09:15

2

就個人而言,我會說:

  • .NET 3。5
  • WCF數據服務(客戶端應用程序和數據之間的通信)
  • SQL Server的2K5/2K8(無論你可以使用)
  • Silverlight的瓦特/瀏覽器功能的
  • VistaDB的(存儲數據在本地客戶端,直到你可以推到服務器)
+0

我可以推薦SQL Micro Edition與SyncFramework,而不是VistaDB作爲OCA客戶端 - 服務器交互 – abatishchev 2010-01-20 18:47:15

+0

@abatishchev'Micro Edition'與Compact Edition相同嗎? – 2010-01-20 18:48:12

+0

@Refracted聖騎士:對不起,我的秋天。確實CE,而不是ME – abatishchev 2010-01-21 13:40:11

1

使用了,如果你正在創建的東西,而脫機和不連接,當您連接後,更新數據庫鍵唯一標識符

這將是比使用自動增量鍵

+0

謝謝。這是我已經覆蓋的一個,但我正在收集一個重要的。 – 2010-01-20 19:11:37

1

上偶爾連接的應用程序時的工作方式更容易,我會鼓勵你看看到SQL Server CE的客戶機,同步服務,以處理連接。 Here is a good tutorial.

1

你可以從創建這個東西看起來似乎。

但是,這似乎與CRM應用程序非常相似,如果您可以在不從頭開始的情況下找到企業軟件包來完成此操作,而是修改其中一個配置以符合您的業務規則。

在以前的生活中,我是一個稱爲Siebel的配置開發人員,它可能接近您尋找的東西。他們甚至有一個名爲Siebel Remote的內置同步工具。

這可能是一個比從頭開始自己滾動更便宜的路線。

1

我爲葡萄酒銷售代表寫了一份訂單服務計劃。 Here is the video.客戶端軟件使用點擊一次安裝。這也安裝SQL Server Express並加載數據庫。我使用Microsoft Sync Framework將本地數據庫與服務器上的數據庫同步(請參閱視頻的最後一節。)

  • 現在功能強大的客戶端,我沒有看到任何不使用SQL Server Express的原因,它是免費的,限制爲4GB。

  • SQL CE有太多限制 - 沒有存儲過程是主要的。

  • 您需要將GUID無處不在作爲主鍵 - 請參閱新的NewSequentialID()。

  • 我喜歡點擊一次,這是一個很大的節省時間。

我很期待Silverlight,但只是沒有時間去研究它。不知道如果我現在做或不做,我會用Silverlight做到這一點。

說了這麼多,對於沒有經驗的人來說這不是一個項目。所以我也會得到一些非常有經驗的幫助。

相關問題