2012-08-14 53 views
0

我们目前的方案似乎是为.resx文件量身定制的,但我的理解有点模糊,我正在寻找一些钙化。通过asp.net web应用中的.resx vs静态图像来恢复图像

我们的webApp对于我们的不同客户是不同的,但所有客户的区别并不相同。我的意思是一个客户可能只想更改标识,而另一个客户可能想更改标识,一些按钮以及背景颜色。

为了解决这个问题,我创建了一个default.resx,它包含我们的默认皮肤,所有元素图像,字符串和颜色代码。还有一个client.resx,它只包含那些客户端独特的元素(不同的标识和按钮)或以前的东西。

然后,我做了一个资源管理器,它将检查资源的client.resx,并将其返回到页面,如果资源不存在,那么它将从default.resx中检索图像。

其他开发者之一说这是低效的,而不是使用.resx文件,我们应该有一个图像文件夹树,并重新工具资源管理器使用图像路径位置,而不是.resx资源。

我不太了解如何通过.resx文件提供图像,以及如何通过文件夹树提供图像,并且无法指责他的说法。我认为,通过.resx服务器上的图像对文件夹中的图像所需的时间可以忽略不计,但我无法找到关于此的任何特定信息。根据自己的喜好重新设计资源管理器并不需要太多时间,但我希望确保他的主张是合理的,然后再将时间投入到这个过程中。

作为一个方面说明,我们正在谈论100多个图像,可以非常。

回答

0

我想推荐你给你的客户改变CSS文件的机会,而不是改变背景/颜色/图像等的resx文件。所以你将有一些默认的CSS文件,客户可以覆盖(他们将有机会上传他们的css文件或只是将其替换到服务器上)。在你的默认CSS中,你应该有CSS类,并且链接到你的图像作为背景(标识等)。因此,如果客户想要更改徽标/图像/颜色 - 他们可以在服务器上放置一些图像 - 替换CSS文件并检查一切看起来会不错。 而对于字符串只是继续使用resx文件。

并回答您的问题:如果您将拥有100多张图片 - 我认为将某些文件夹中的文件替换为resx文件会更好(您希望将所有图像作为原始数据存放在resx文件中,对吗?或者你将只有正确的图像链接)。如果文件将包含所有图像作为原始数据,则文件可能很大,因此为了解析它,您需要大量的RAM。而且我也不认为你会在一个地方需要它们,也许一些图像你会在一天中偶尔显示一次,对,因此不加载它会更好。但是,如果您将在主页(或母版页,无论)上显示的所有图像 - 如果您将使用缓存,则不会在性能上发现很大的差异。

+0

谢谢你的回应。我针对CSS上的.resx文件,因为我们在Windows产品中有相同的要求,我想为这两种产品使用相同的共享库。资源文件位于共享库中。我一直在将包含文件夹中的图像拖动到位于同一文件夹中的.resx文件中,但尚未从该文件夹中删除图像。有了这样的想法,这只是创建一个图像的引用,以便我所做的只是加载引用而不是整个图像缓存。 – Siegeon 2012-08-14 18:55:12