我有一个 Silverlight Windows Phone 7 应用程序,它从公共(public) API 中提取数据。我发现自己一遍又一遍地做同样的事情:
显示给用户的内容可以直接取自数据源,例如
ObservableCollection
,或者它可能是对数据源的查询。我想将这个重复的过程分解到一个框架中,理想情况下只需要指定以下内容:
听起来可能很多,但是两个字符串,三个
FrameworkElement
s,还有两种方法比我目前的开销要少。此外,这需要适用于数据在内存中维护的情况,并且需要适用于直接集合和对这些集合的查询。
我的问题是:
这样的事情已经实现了吗?
我对上述主题的想法在某些方面根本上是错误的吗?
这是我正在考虑的设计:
有两个组件,一个 View 和一个模型。
View 被赋予
FrameworkElement
s 表示加载、失败和成功。它还提供了对相应模型的引用。 View 是 UserControl
放置在 UI 中的某个位置。Model 一个类,该类提供了数据的 URI、如何解析数据的方法,以及可选的文件名和如何解析文件。它负责检索数据并在当前状态(加载/失败/成功)发生变化时通知 View。如果从网络下载的数据与缓存不同,则以网络数据为准。当应用程序关闭或被逻辑删除时,模型将数据写入缓存。
听上去怎么样?
最佳答案
我花了一些时间仔细阅读了您的要求,并指出了一些想法作为引用。
首先,对于具有共同行为的重复任务,这绝对是处理它的方法。考虑这个问题的不止您一个人。
做一堆这类事情的人可能已经创建了类似的抽象,但据我所知,没有一个公开发布过。
你能走多远可能取决于你是否打算将它只供你自己使用和那些有非常相似要求的人使用,或者你是否想要处理更一般的情况并制作一个可供非常广泛的受众使用的产品。
我将假设前者,但这并不排除将其作为可以进一步开发和/或 fork 的开源项目发布的可能性。
通过不试图满足所有可能性,您可以对使用实现的性质做出某些假设,尤其是 UI 设计选择。
我认为总体上你的想法是正确的。在阅读您的一些高级想法时,我认为可以简化一些事情(一件好事),同时提供引人注目的 UI。
关于你的初始点。
关于您的潜在投入。
在执行上。
希望这能让你思考一些事情,并让你确信你正朝着正确的道路前进。有很多方法可以解决这个问题。哪条最佳路径最终将由您的目标驱动。
关于silverlight - 数据驱动 Silverlight WP7 应用程序的架构设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4560037/