【发布时间】:2014-07-17 04:02:24
【问题描述】:
我想使用 MVVM 模式开发我的 wpf 项目。我应该创建新文件夹来分隔模型、视图、视图模型还是为每个文件夹创建新项目?哪一个是好的做法?我下载了示例项目,有些项目有单独的文件夹,有些项目有单独的项目。我推荐了this link。 但这并不清楚我的怀疑。我在问为模型、视图和视图模型创建 新项目 是好习惯还是创建新文件夹?
【问题讨论】:
我想使用 MVVM 模式开发我的 wpf 项目。我应该创建新文件夹来分隔模型、视图、视图模型还是为每个文件夹创建新项目?哪一个是好的做法?我下载了示例项目,有些项目有单独的文件夹,有些项目有单独的项目。我推荐了this link。 但这并不清楚我的怀疑。我在问为模型、视图和视图模型创建 新项目 是好习惯还是创建新文件夹?
【问题讨论】:
这实际上取决于您的用例。您是否有这样的场景,您的视图、视图模型和模型可能会在其他项目中单独重用?我的意思是,例如,您是否有在其他项目中仅使用您的模型的场景。如果是,那么创建单独的项目以便它们可以被重用是有意义的。但是,如果不是这种情况,最好将它们全部放在一个项目中。
【讨论】:
文件夹仅用于创建结构和便于识别。 View 和 ViewModel 的文件夹真的没有必要。
【讨论】:
我通常会为视图、ViewModel 等创建文件夹。然后我会给视图和 viewModels 类赋予描述性的名称。如果您有多个页面,我建议您使用子文件夹。一切都在一个项目中。但这是我的偏好。
例如:
查看>销售> WelcometoSalesPageView.xaml
ViewModel>Sales> WelcometoSalesPageViewModel.vb
【讨论】:
这是一个重复的问题,因为您可以找到 Sheridan 的答案 here 最有帮助。
基本上,您需要确定项目的总体规模。如果您计划重用片段,您可能想要多个项目和不同级别的文件夹。如果您计划将应用程序的一部分作为 API 提供,这也适用,那么您可能需要使用多个项目。
对于初学者,我建议您从小处着手,将所有内容放在一个项目中。要学习 MVVM,不要关注项目结构,而是 WPF 和 MVVM 是如何工作的。在您了解 MVVM 的工作原理后,总是可以重新审视解决方案结构。
编辑
答案是否定的,您永远不需要为您的项目创建文件夹或单独的项目。只要意识到在不同的文件夹下创建新的classes 也会使用该路径作为命名空间。因此,如果您创建一个ViewModels 文件夹并将class 添加到该文件夹,您将在顶部看到namespace WpfApplication1.ViewModels。这也意味着您必须注意 XAML 文件中命名空间的位置。如果要在 XAML 文件中引用 ViewModels 文件夹中的类型,则需要执行类似 <xmlns:vm="clr-namespace:WpfApplication1.ViewModels"> 的操作。缺点是如果您在 ViewModels 中有文件夹,您还需要在 XAML 中引用该命名空间。因此,如果存在 ViewModels > Basics,您将需要 XAML 中的两个命名空间,因为您无法在一个 xmlns 声明中引用所有子目录。
<xmlns:vm="clr-namespace:WpfApplication1.ViewModels">
<xmlns:vmBasics="clr-namespace:WpfApplication1.ViewModels.Basics">
另一种方法是使用文件夹并将类命名空间重命名为简单的旧 namespace WpfApplication1,然后您只需要一个 xmlns 声明即可访问应用程序中的所有类型。
<xmlns:app="clr-namespace:WpfApplication1">
所以,如果不需要,不要把事情复杂化;通常在学习阶段没有什么会如此复杂以至于需要多个项目。文件夹是可选的,但如果您使用它们,请了解其副作用/解决方法。
【讨论】:
renaming the class namespaces