我正在寻找在我的WPF c#.NET 4.0 Web应用程序中实现此数据结构的最佳方法。
应用详细信息:此应用程序一次会有很多用户。我正在使用一个数据库,该数据库有两个链接在一起的表,两个表都是< 10k行,但它们会随着时间的推移而增长。需要定期检查一个表以进行更新。
问题: 我创建了一个数据集来保存所有信息。我的单元测试显示从数据库填充数据集需要大约0.2秒。如果数据集将在整个应用程序中持续存在,则不是时候。它可以在许多用户的应用程序中持续存在吗?
我能想到的另一种方法是使用可观察的集合来存储数据并将它们存储在单例中。有没有我在这里找不到的方法或者对我有用的东西?
答案 0 :(得分:1)
我认为你在这里误解了一些非常重要的概念。首先,WPF不是ASP.Net,WPF应用程序不“在服务器上运行”。 WPF应用程序在执行它们的计算机上运行(I.E客户端),无论是在Internet Explorer中运行的XBAP。
因此,您不能在WPF应用程序的许多实例之间共享“单例”,因为每个实例都将在其自己的进程上在单独的计算机上运行。在这些实例之间没有实用的方法来共享内存。
然后,如果您需要“Web应用程序”,WPF可能不适合您的项目。 WPF不是一种Web技术,它是一种丰富的桌面应用程序技术,不依赖于糟糕的HTML实现或类似的东西。
现在,如果您需要(或希望)WPF提供的丰富性,可怕性和易用性,您将必须实现客户端/服务器应用程序,可能使用WCF或任何其他通信技术来使您的富客户端与之通信服务器。
“服务器”将是一个应用程序,负责从数据库中查询数据,然后可能将其缓存在内存中,然后将其发送到客户端。通常,WCF服务应用程序就足够了,但根据您的要求,您可能需要在其上实现更多层。
除此之外,我认为没有充分的理由向WPF客户端发送10k行信息,因此您必须提出一些分页机制才能以“块”的形式发送数据。 / p>
请提供您需要的更多详细信息,我可以为您提供更多见解。