没有DB的Silverlight中的轮询机制

时间:2009-08-13 15:16:37

标签: silverlight silverlight-3.0

我需要在Silverlight中实现一个轮询机制(带有yes / no选项的简单问题),但我不能使用任何数据库。 客户端说唯一可用的存储是xml文件。

你认为这是一个可行的选择吗?我正在考虑处理文件完整性以及可能由此引起的任何并发问题。当用户提交响应时,它需要锁定整个文件,文件可能会变大。

有什么建议吗? 感谢。

PS:丢失了我之前关于stackoverflow的帐户(无法理解原因)。

3 个答案:

答案 0 :(得分:1)

您是否考虑过为每个用户使用单独的XML文件?您可以将用户所进入的每个轮询序列化为XML中的单独对象。您不需要锁定,因为用户不共享单个文件,但另一方面,您有许多小的XML文件乱扔垃圾,可能难以聚合它们,虽然不应该太麻烦。

例如,您可以使用用户的用户名或其他内容的哈希命名所有文件,因此您将拥有类似a09r0awegamogm.xml的文件,如下所示:

<?xml version="1.0" encoding='UTF-8'?>
<poll>
  <title>My First Poll</title>
  <answers>
    <answer>D</answer>
    <answer>C</answer>
    <answer>A</answer>
    <answer>E</answer>
  </answers>
</poll>

答案 1 :(得分:0)

我之前的项目已经考虑了这个,我相信Silverlight中服务器端数据存储的唯一选择是后端Web服务。您必须在Asp.net中创建一些东西来处理来自Silverlight的请求,以进行投票,检索选项和检索投票。虽然我相信这个后端的最佳选择是数据库,但我想你可以将这些数据存储在XML中并使用LINQ-to-XML进行检索。

答案 2 :(得分:0)

我看到的可能性:   - 为每个用户/民意调查获取一个文件,并使用后台服务来聚合结果。   - 将用户的答案触发到由后台服务读取的队列中,后台服务生成带有结果的agregated xml文件。但是如果你没有数据库,你可能也没有排队系统......

相关问题