如何在模块之间共享资源(例如图片...)最好的方式是什么?是将其保留在单独的通用项目(基础设施?)中,并在所有模块和应用程序中引用它,还是其他更好的方式?
我的建议是,如果一个资源是共享的,那么将该资源放在基础设施项目中。
我通常会在基础设施项目中创建一个“Resources”文件夹,接下来是:
Resources/Constants.xaml (Brushes, etc.)
Resources/Images/
Resources/Templates/
Resources/Converters/
Resources/Behaviours
我相信在任何项目中,您都应该尝试组织资源以最小化重复。重复不仅会在运行时消耗系统资源,而且还会使应用程序更难维护。例如,如果您更改程序中的图标,则必须找到它们并进行更改。随着您的程序变得越来越大,这种重构工作将开始占用您的时间。
现在我已经阐明了这一点,您可能可以想象出需要一定程度的重复的情况。主要原因是本地化,应用程序字符串可能是一种语言或另一种语言,或者美式英语短语可能与英式英语短语不同。某些文化中的特定图标也可能在其他文化中意味着不同的东西,但这完全取决于您的应用程序。
我建议您尽可能保持简约和有组织,并在应用程序需要时扩展。