我正在开发一个.NET应用程序,它需要在Azure和常规Windows服务器上运行(2003)。它需要存储几GB的数据,而SQL Azure对我来说太贵了,所以我将在云版本中使用Azure表。您能否推荐一种存储解决方案,该解决方案将在独立服务器上运行,并具有与Azure表类似的API和行为?从我所看到的Server AppFabric不包括表。
如果您认为Windows Azure表存储是什么,它是基于键值对的非关系数据库,可通过REST API访问。请下载有关Windows Azure和NoSQL数据库详细信息的this文档。
如果我在你的情况下,我的方法是找到类似于Azure表存储的东西,我可以通过REST访问它并具有类似的可访问性API。因此,如果您试图找到在机器上运行的类似数据库,您真的需要寻找:
如果你想尝试一些你肯定会看到的东西:
以下是没有其他索引功能的键/值数据库列表:
如果没有,您确定可以获得任何开源数据库并进行修改以满足您的需求,然后将其作为您对社区的贡献提供给其他人。
添加
现在,您可以使用Windows Azure虚拟机在Linux或Windows计算机上运行任何类型的键值对DB,并与您的应用程序建立连接。
我不确定要推荐哪种存储解决方案,但只要您编写一个接口来抽象所有数据存储代码,几乎任何数据库解决方案都可以工作。然后为Azure Table存储编写该接口的实现,以及要在非云服务器上使用的任何其他数据库
无论如何,您应该这样做,以便您的代码与Azure Table Storage API不紧密耦合。
如果将该接口的编码与IoC容器相结合,那么单行代码或单个配置设置将使您能够根据运行代码的平台在数据实现之间切换。