2012-11-26 70 views
0

我正在尋求在我的WPF c#.NET 4.0 web應用程序中實現此數據結構的最佳方法。WPF瀏覽器應用程序的持久數據集?

應用詳細信息:此應用同時有很多用戶。我正在處理一個有兩個表連接在一起的數據庫,兩個表都用< 10k行,但它們會隨着時間的推移而增長。定期檢查一張表是否需要更新。

問題: 我創建了一個數據集來保存所有信息。我的單元測試顯示,從數據庫填充數據集需要大約0.2秒。如果數據集將在整個應用程序中持續存在,那就沒有時間了。它可以堅持跨越許多用戶的應用程序?

我能想到的另一種方法是使用可觀察集合作爲數據並將它們存儲在單例中。有沒有我在這裏失蹤的方法或對我更好的方法?

回答

1

我想你在這裏誤解了一些非常重要的概念。首先,WPF不是ASP.Net,WPF應用程序不會「在服務器上運行」。無論是在Internet Explorer中運行的XBAP,WPF應用程序都在執行它們的計算機(I.E客戶端)上運行。

因此,您不能在WPF應用程序的許多實例之間共享「單例」,因爲每個實例都將在其自己的進程上的單獨計算機上運行。在這些實例之間沒有實用的方法來共享內存。

然後,如果您需要「Web應用程序」,WPF可能不適合您的項目。 WPF不是一項W​​eb技術,它是一種豐富的桌面應用程序技術,不依賴於HTML或其他任何類似的蹩腳實現。現在,如果您需要(或渴望)WPF提供的豐富性和出色的開發能力,您將不得不實施客戶端/服務器應用程序,可能使用WCF或任何其他通信技術來使您的富客戶端能夠進行通信與服務器。

「服務器」將是一個應用程序,負責查詢數據庫中的數據,然後可能將其緩存到內存中,然後將其發送到客戶端。通常一個WCF服務應用程序就足夠了,儘管取決於您的需求,您可能需要在其上實現更多層。

除此之外,我認爲沒有理由發送WPF客戶端10k行信息,因此您必須拿出一些分頁機制才能以「塊」形式發送數據。

請提供您需要的更多詳細信息,我可以給您更多的見解。

+0

這確實清除了WPF瀏覽器應用程序的運行方式。選擇WPF瀏覽器應用程序的主要原因是我的客戶端正在運行IE7。該應用程序有一個樹形視圖,樹中的每個元素可以在用戶雙擊它時打開一個新的選項卡。我無法找到在IE7中以現代瀏覽器(谷歌瀏覽器,Mozilla Firefox等)的方式工作的簡單標籤解決方案,因此'WPF瀏覽器應用程序'似乎是最好的方法。感謝您提供豐富的答案。 – JMooney

相關問題