推荐的WPF项目结构是什么?

14

我非常注重良好的Visual Studio解决方案和项目结构。

我即将开始一个WPF概念验证工作。

有人可以推荐一些他们使用并发现有效的WPF项目结构吗?

在这里http://drwpf.com/blog/2007/10/01/58/

他们有一个我喜欢的建议:

    Root
    - Pages
    - Controls
    - Resources
    App.xaml

页面、控件和资源都是文件夹,有没有人发现某些结构很有效或者不太有效?

另外,如果可以的话,我不想讨论“模型视图Presenter”这个话题。


1
说真的,为什么你需要在这种情况下进行一些验证呢?如果需要的话,稍后可以拖放东西,而且VS中的重构支持(特别是2010版)非常好。 - slugster
9
你在开始之前不花时间计划吗?如果你准备不足,你就准备失败了。当然,你可以在之后改变事情,但这并不是不在开始时花时间计划的好理由,对吧? - Lee Englestone
我的观点是:你给出的例子很好,为什么需要别人批评它呢?当然要提前计划,但也要记住,在项目开始时,事情会有些不确定性,你可能会改变事物的位置和命名空间。以一种对和你的团队有意义的方式对事物进行分类。一两周后,你会发现事情开始稳定下来,你不会再移动东西了。组织一个项目并不是什么大问题 - 提前组织一个解决方案对你的规划时间有更大的投资回报率。 - slugster
啊,我明白Slugster。我并不是真的在寻求对任何一种方法的批评,而是试图鼓励讨论和交换想法和经验。 - Lee Englestone
3
我认为这是一个好问题。不幸的是,这个问题还没有被提出,但我发现单个ViewModel文件夹变得越来越大,越来越难以管理。我希望能获得一些关于如何以合理的方式对VM进行分组的想法。例如,区分父ViewModel和子ViewModel,或者按功能领域进行分组。 - JulianM
2个回答

9

我同意alimbada的观点。我们也为View和ViewModel创建了不同的项目。这样在处理大型项目时,可以更容易地维护。我们使用的目录如下:

 - ViewsRoot
    + Base
    + Controls 
    + Documentation 
    + Forms(Windows)
    + Reports
    + Resources 
    + Themes 
    + Utilities 
    App.xaml

 - ViewModelsRoot
    + Collection
    + Commands
    + Converters
    + Resources 
    + TemplateSelectors
    + ViewModels
    + Views (Interfaces for views) 
    Constants.cs 
    Utility.cs

我也相信提前规划结构,这样所有开发人员都可以轻松适应并遵循相同的结构。如果以后再做这件事会增加困惑,在创建单独的项目时也很痛苦。这是我的看法,我也乐意了解其他更好的方法。


1
我喜欢这个。你会把附加属性/行为放在这个方案的哪里?我会将其拆分到一个名为“行为”的单独文件夹中。 - Berryl
1
我还有一个“核心”项目,其中包含wpf元素,这些元素通常可在多个项目中重复使用。例如常量、实用程序、控件和行为(这些也可能有特定于项目的对应项)。 - Berryl
1
我一直想把“Resources”改成“Assets”的名称,只是因为“资源”这个概念太过复杂,特别是在处理本地化时。干杯! - Berryl
@Berryl - 我们还有一个专门的项目用于实用程序和可重复使用的类,但那并不是特定于WPF的。将资源重命名为资产也是一个好主意,非常清新。 - akjoshi
assets 是微软 Blend Expression 中的一个术语。 - Elisabeth

6
我倾向于拥有以下目录:Converters,Models,Resources,ViewModels和Views。
我还看到过一种解决方案,其中View和ViewModels被分成单独的项目(请参见CodePlex上的BubbleBurst)。

感谢您开始推动这个项目,alimbada。 - Lee Englestone

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接