2012-11-05 197 views
0

我們正在爲很多潛在客戶開發LOB應用程序,這些客戶大小不一,規模也不大。我們將不得不爲每個新客戶安裝數據庫。代碼優先或模型優先(實體框架/ RIA服務)

對於我們來說,您認爲最好的方法是什麼?先使用模型(使用edmx並使用wizzard來開發模型和元數據)或Code First。

我們喜歡Entity Framework/RIA Services的簡單性,我們認爲Optimistic Concurrency對於我們的應用程序來說已經足夠了,但是由於數據庫必須在SQL Server中從頭開始安裝(我們不會使用其他數據庫),我們不確定哪種方法最適合我們。

回答

2

只要EF和關於edmx/code的選擇首先我相信它更多的是個人喜好的問題。 Edmx模型似乎比代碼優先,但即使在VS2012中,設計師仍然有點笨重,特別是如果你有50多個實體。我已經放棄了edmx,因爲EF代碼首先變得可用。
關於WCF Ria服務我在LOB應用程序中廣泛使用它,即使是在大型應用程序中,大多數情況下,與普通的WCF相比,它可以節省大量的粘合代碼。
我敢肯定,你知道的以及已發佈的功能,如

  • 服務器端過濾,分頁,甚至分組
  • 客戶端代碼生成,它們可以簡化代碼SL和全CLR之間共享

和其他許多人,但也許你更感興趣的是他的侷限性

  • 您可以從客戶端與嵌套表達式(即任意)雖然你不CA查詢ñ總是一個參數添加到您的查詢,應用過濾器的服務器端,但它是不完全一樣
  • 你不能直接暴露多對多關係使用Silverlight(有但是看看M2M4RIA
  • 必須添加外鍵字段到你的模型(對我來說,好像DB泄漏到模型中)
  • WCF Ria服務在主線程中完成了大部分工作(即在加載/提交更改後加載DomainContext)
  • 如果您的應用程序變大並且您正在考慮拆分您的domainservices/domaincontext,請注意,您將遇到嚴重的痛苦,試圖在原子中提交兩個domaincontext的更改交易
  • 代理代會每次發生你建立你的客戶,並採取(我認爲)超過它應該

儘管我相信這是一個很好的技術RAD,事情最終會好轉:Colin Blair has posted on his blog that him is pushing Microsoft in order to release WCF Ria as opensource,這鑑於微軟已經殺死了Sl/Wcf ria開發商,可以真正改善這些事情

+0

謝謝!你的答案就是我們所需要的 – Rafael