【问题标题】:Persistent Dataset for WPF Browser App?WPF 浏览器应用程序的持久数据集?
【发布时间】:2012-11-14 05:07:49
【问题描述】:

我正在寻找在我的 WPF c# .NET 4.0 Web 应用程序中实现此数据结构的最佳方法。

应用详情:此应用将同时拥有多个用户。我正在使用一个有 2 个表链接在一起的数据库,它们的行数都小于 10k,但它们会随着时间的推移而增长。需要定期检查一张表是否有更新。

问题: 我创建了一个数据集来保存所有信息。我的单元测试显示从数据库中填充数据集大约需要 0.2 秒。如果数据集将在整个应用程序中持续存在,现在还不是时候。它可以在许多用户的应用程序中持续存在吗?

我能想到的另一种方法是对数据使用可观察的集合并将它们存储在单例中。有什么我在这里遗漏的方法或对我更有效的方法吗?

【问题讨论】:

    标签: c# wpf dataset webbrowser-control


    【解决方案1】:

    我认为您在这里误解了一些非常重要的概念。首先,WPF 不是 ASP.Net,WPF 应用程序不会“在服务器上运行”。 WPF 应用程序在执行它们的计算机(即客户端)上运行,无论是在 Internet Explorer 中运行的 XBAP。

    因此,您不能在 WPF 应用程序的多个实例之间共享“单例”这样的东西,因为每个实例都将在单独的计算机上以自己的进程运行。没有实用的方法在这些实例之间共享内存。

    那么,如果您需要“Web 应用程序”,WPF 可能不适合您的项目。 WPF 不是一种 Web 技术,它是一种丰富的桌面应用程序技术,它不依赖于 HTML 或类似的糟糕实现。

    现在,如果您需要(或希望)WPF 提供的丰富性、令人敬畏和易于开发,您将必须实现一个客户端/服务器应用程序,可能使用 WCF 或任何其他通信技术来使您的富客户端能够与服务器。

    “服务器”将是一个应用程序,负责从数据库中查询数据,然后可能将其缓存在内存中,然后将其发送给客户端。通常,一个 WCF 服务应用程序就足够了,但根据您的要求,您可能需要在其之上实现更多层。

    除此之外,我认为没有充分的理由向 WPF 客户端发送 10k 行信息,因此您必须想出一些分页机制才能以“块”的形式发送数据。

    请提供有关您需要什么的更多详细信息,我可以为您提供更多见解。

    【讨论】:

    • 这确实清楚了 WPF 浏览器应用程序的运行方式。选择WPF浏览器应用的主要原因是我的客户端运行的是IE7。该应用程序有一个树视图,当用户双击树中的每个元素时,它都可以打开一个新选项卡。我找不到像在现代浏览器(Google Chrome、Mozilla Firefox 等)中那样在 IE7 中工作的简单选项卡解决方案,因此“WPF 浏览器应用程序”似乎是最好的方法。感谢您提供信息丰富的答案。
    猜你喜欢
    • 2012-02-01
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-19
    • 2011-08-09
    相关资源
    最近更新 更多