C# 数据库或项目文件夹中的图像作为资源

C# 数据库或项目文件夹中的图像作为资源,c#,windows-phone-7,sql-server-ce,bytearray,windows-phone-7.1,C#,Windows Phone 7,Sql Server Ce,Bytearray,Windows Phone 7.1,我正在创建一个应用程序,在其中我将拥有用户无法编辑的数据库。它只有数据,并向用户显示。我发现我不必使用本地存储,我只需将数据库添加到项目中,它是只读的。所以我做了,一切都很好。现在我想在我的应用程序中添加图像,但我不确定哪种方法更好。我可以将每个图像添加到文件夹中,在数据库中存储图像的路径,这非常简单,现在就可以做到。或者我发现我可以将图像作为图像(字节[])存储在数据库中。什么更好?数据库中的图像会更小吗?加载图像会更快吗?若数据库中的图像是更好的解决方案,我可以简单地将图像添加到现有数据库中

我正在创建一个应用程序,在其中我将拥有用户无法编辑的数据库。它只有数据,并向用户显示。我发现我不必使用本地存储,我只需将数据库添加到项目中,它是只读的。所以我做了,一切都很好。现在我想在我的应用程序中添加图像,但我不确定哪种方法更好。我可以将每个图像添加到文件夹中,在数据库中存储图像的路径,这非常简单,现在就可以做到。或者我发现我可以将图像作为图像(字节[])存储在数据库中。什么更好?数据库中的图像会更小吗?加载图像会更快吗?若数据库中的图像是更好的解决方案,我可以简单地将图像添加到现有数据库中吗?在winforms中是否有这样做的文章?谢谢

编辑:
我很高兴我的问题有这么多答案和观点。我想更多地解释我的需要。我的应用程序应该有大约150张图片,图片大小应该是150px和100px。我想知道这个应用程序在没有互联网连接的情况下还能工作。它可以连接更新,但仅此而已。再次感谢所有意见:)

网络文件夹。还可以考虑从云服务器(如Amazon S3)远程加载它们,以释放对您自己服务器的访问

我个人会将所有图像存储在独立的存储中,并将图像路径存储在数据库中


我会将所有图像作为一个字节[]存储在隔离的存储库中

对于我们的应用程序,我们发现混合方法效果最好。我们将SQL环境配置为支持,然后导入了所有映像。这使我们能够灵活地使用“sql”格式的图像,同时仍将实际图像存储到磁盘。这是一个快速的解决方案,可能对您也适用。

最好的选择是将图像存储在web文件夹中,如果您将其保存在DB中,您将浪费时间从DB中检索它们,因为这需要更多的时间

这里已经给出的答案没有错,但这实际上取决于您试图完成的任务以及当前的设置方式

最好是为静态图像使用内容交付网络,以减轻web服务器的负载

您可以从数据库提供服务,也可以作为文件结构中的资源文件提供服务。如果图像是静态的,不要忘记添加适当的缓存,这对于静态内容来说是很遥远的未来

如果您正在渲染图像,我肯定会将图像保存在数据库中,以便能够从任意数量的web服务器访问图像


如果您愿意,您可以将最近使用的图像保存在内存中或存储在本地文件系统中,从而进一步完善这一点,这样您就不必每次都从数据库中获取文件。

关于您将图像放在何处,有很多“如果”、“但是”和“可能”,我认为没有正确或错误的方法

值得一提的是,如果应用程序是具有高可用性的业务关键型应用程序,我会将它们存储在数据库中,这仅仅是因为可以使用其余数据备份应用程序。数据库可以镜像等,因此将所有图像作为“数据”处理是有益的。此外,如果事情变得越来越大,并且使用了web服务器场和负载平衡器等,那么当图像位于一个地方时,它会有所帮助


对我来说,我会使用数据库。但这一切都取决于应用程序的规模。

我不同意。上网不是很快,如果不需要的话,不要将图片存储在服务器上。与直接在设备上保存内容相比,将内容上传到网络速度较慢。我很高兴能找到所有答案。经过思考,选择数据库,我选择你的答案。谢谢