【问题标题】:Concept of "Data Directory" on each platform每个平台上的“数据目录”概念
【发布时间】:2008-11-02 05:32:08
【问题描述】:

这与Where should cross-platform apps keep their data? 非常相似,但对其进行了一些扩展。

关于数据的父目录应该在哪里有一些很好的建议,但对于给定应用程序的目录应该是什么,则没有太多建议。

例如,假设我们在 My Brand 中有一个由 My Corp 编写的跨平台应用程序,名为 My App。假设 My Brand 中的其他产品可能需要自己的数据,My Corp 中的其他品牌也是如此。它的数据和/或配置在 Windows 上应该放在哪里?在 Unix 上? Mac OS9? Mac OS X?其他?

例如,在 Windows 上,数据会进入“...\Application Data\My Corp\My Brand\My App”,而在 Mac OS X 上,数据会进入 ~/Library/Application Support/My Corp /My Brand/My App”,在 Unix 上它会进入“~/.mycorp/mybrand/myapp”?(我想其他平台会使用 unix 的 mangling,即使基本目录可能不同。)

如果没有真正的约定,这看起来合理吗?对 Mac OS9 有什么建议吗?

【问题讨论】:

    标签: cross-platform


    【解决方案1】:

    只是开始反思:

    您必须明确区分:

    • 应用状态数据
    • 设置
    • 数据(可用于多个应用程序)

    后者最终可能在数据库中,或者可以由一个或多个应用程序管理,或者由通信总线封装,以避免所有其他应用程序在它们之间进行对话以访问这些数据。

    代表应用程序状态的数据可以放在“应用程序数据”中,如问题“where cross-platform apps keep their data ?”中所述。

    但是设置...这取决于您的应用程序是否需要使用多个“配置”启动:

    • 每个平台一个:如果您必须在开发阶段管理它们,并在发布阶段打包该文件,以便将其存储在“应用程序数据”中
    • many 用于 one 平台,例如具有不同的堆大小,或表示同一应用程序要执行的不同操作的不同设置。这导致设置文件的爆炸式增长(也存储在“应用程序数据”的各种子目录中)
      这就是将这些数据抽象为Setting Provider 的想法是个好主意。

    实际上,我们的设置有很多不同的配置,我们将它们存储到单独生产机器上的数据库中。这样所有应用程序都可以访问它们,但更重要的是,我们可以实时访问和更改它们,而不必为每次修改停止/重新启动应用程序,或者不必去每次部署平台。

    【讨论】:

    • 只有在以下情况下,打包才是一个问题:a) 它是适用于所有平台的单个包(例如,java jar、perl par 等)并且 b) 您提供配置默认值而不是将它们留在代码中。
    猜你喜欢
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 2018-03-23
    相关资源
    最近更新 更多