我有一个当前在Windows Azure上运行的自定义ASP.NET 4 Web应用程序。有一大组数据(数千个条目,每个条目都有一个“关键”值和1-3个句子描述)很少变化(过去25年中两次)我需要能够显示为一部分应用程序(在下拉控件,网格等)。
我认为将数据存储在数据库中是没有意义的,因为它几乎不需要更改,并且会在每次重新加载页面时发送几个句子。我正在评估通过LINQ-to-XML访问的XML文件或资源文件。可能需要对字符串进行本地化(我认为它会引导资源文件),但由于涉及业务逻辑,我需要根据各种属性(特定“密钥”)查询数据。值得或其他属性,我相信LINQ会更容易。
有没有人想过在这里使用什么?可能还有其他选择,我当然也会接受这些......谢谢!
答案 0 :(得分:0)
我不会因为数据没有变化而排除数据库 - 假设Azure允许它,像SQL CE或SQLite这样的轻量级数据库可能会正常工作。
也就是说,你提到的其他因素(从一个键到一个短字符串的映射,本地化的潜力,作为UI的一部分显示)使资源文件看起来是最好的方式。
基于资源字符串运行查询似乎有点奇怪,但是 - 我相信它是可能的(参见this question),但运行任何类型的查询,例如“给我所有包含'foo'的资源字符串”都会破坏你本地化的那一刻。
答案 1 :(得分:0)
您可以使用Windows Azure表。它快速可靠,部分支持LINQ。 Here是Azure上LINQ可用的查询运算符。此外,如果您需要本地化,那么您可以使用相同的表和文化作为PartitionKey。放大或缩小时也不会有问题,因为存储对所有节点都是通用的。
Windows Azure表的选项可能是一个专用容器,其中包含通过LINQ-to-XML访问的XML文件。但我更喜欢第一种变体。
答案 2 :(得分:0)
为什么不在资源中存储XML文件?这将使您受益于:简单打包,快速访问,LINQ和本地化。
但是,如果您已经在那里托管了数据库,我不会排除SQL Azure。无论您多久连接一次,都可以快速访问它(无论您已经部署了数据库),也不会支付任何额外费用。 ATS稍微慢一些(尽管可扩展性更强),但是当你去ATS几乎任何东西的时候它都会花费你一分钱。
总的来说,有十几种方法可以做到这一点,所有这些方法都可以。如果性能是您的首要考虑因素,那么通过资源将其嵌入到应用程序中可能是最好的方法。如果灵活性和部署是您最关心的问题,SQL Azure可能是最好的方法。