代码之家  ›  专栏  ›  技术社区  ›  Jeremiah

如何处理一个需要30k文件的项目[[关闭]

  •  0
  • Jeremiah  · 技术社区  · 16 年前

    Visual Studio 2010 RC->Silverlight应用程序

    我们有一个需要访问的图像库。它们是从一个供应商(通过安装程序)给我们的,它们不在数据库中,而是文件夹中的文件(一个非常大的文件夹)。我们不控制图像何时更改,因此供应商需要能够单独覆盖它们。我们经常从这个供应商那里得到更新,说明这些图像是“随机”变化的,而且我们(程序员)不知道。

    问题是: 我不想要三万张SVN图片。见鬼,我甚至不想在我的解决方案中想象它们。但是,我们的应用程序需要它们才能正常运行。因此,我们的构建/暂存服务器需要访问这些映像(我们有两个构建服务器)。

    如果您的应用程序无法按指定的方式工作,而无法访问每个30k图像,并且您无法控制这些图像何时更改,您将如何处理它?

    我不想有一个疯狂的大型SVN存储库。因为我不知道这些图片什么时候会改变,我真的不希望它们出现在我的解决方案中(当然也不希望出现大的解决方案)。我也不希望每次这些图像改变时都要执行一大堆手动步骤。

    我很想做一个WCF服务,如果图像存在,它会返回图像,如果不存在,它会返回一个伪图像。这样,所有dev框都将返回一个虚拟映像,而我们的build/staging/production框将返回真实映像(实际安装了供应商的映像安装程序的映像)。

    这是一个必须解决的问题。

    其他人做了什么来处理这些类型的问题?

    我愿意接受建议。

    6 回复  |  直到 16 年前
        1
  •  3
  •   nyxtom    16 年前

    通常对于大量图片,尤其是高达30k的图片,您需要一个专门用于图像的内容交付网络。这不应该超过设置一个简单的HttpHandler,它可以处理请求,而这些请求又可以将这些照片返回到你的应用程序。

        2
  •  1
  •   Page    16 年前

    我强烈建议不要将图像存储在源代码管理中,尤其是当它们要频繁更改时。此外,将这些映像添加到项目/解决方案中可能会降低VS的性能。

    我认为为开发者引入一个虚拟图像的想法是好的。作为部署过程的一部分,您可以向构建脚本中添加一些内容,以便将映像复制到正确的位置。

        3
  •  0
  •   Jacob G    16 年前

        4
  •  0
  •   Bernd    16 年前

    如果这些图片在源代码管理中不可用,则它们不在您的版本中,也不随部署包一起提供。

    因此,应用程序应该在有图像文件和没有图像文件的情况下工作。如果图像丢失,返回一个假人可能是一个安全的解决方案。

        5
  •  0
  •   djhworld    16 年前

    你必须扪心自问的问题是,在开发人员级别,图像是项目不可或缺的一部分吗?虚拟图像的想法将是一个合适的答案。

        6
  •  0
  •   Pekka    16 年前

    我绝对不建议将这些图像保留在源代码管理中。

    我不知道你的应用程序以哪种方式访问文件。

    如果是通过文件系统,那么将指向中心images目录的硬链接放入存储库如何?这样,您的开发人员就可以签出应用程序,并从一开始就拥有一个工作版本(前提是可以在存储库中签入和签出Windows硬链接,否则可能需要一些脚本)