She*_*dan 62
您已经描述了常用或常用的文件夹布局.根据经验,我更喜欢为模型数据类型添加单独的文件夹(或大型应用程序中的项目),例如Person
您提到的典型类.我这样做的原因是因为这经常成为最大的项目之一.我还将其拆分为以下子文件夹:
DataTypes
Collections
Enums
Interfaces
Run Code Online (Sandbox Code Playgroud)
我还有应用程序Converter
类,扩展方法类,实用程序(或服务)类的单独文件夹(或大型应用程序中的项目).最后,我有与应用程序文件夹结构非常匹配的测试项目.总的来说,这大致是我的文件夹的样子:
Solution
Third Party Libraries <<< (Solution Folder)
StartUp Project
Images
Resources
Converters
DataTypes
Collections
Enums
Interfaces <<< (For Data Type classes)
Extensions
Models
Data Controllers
Data Providers
Interfaces <<< (For swapping Model classes out in test projects)
Utilities (Or Services)
Interfaces <<< (For swapping Utilities classes out in test projects)
View Models
Commands
Views
Attached Properties
Controls
Run Code Online (Sandbox Code Playgroud)
更新>>>
项目,如文件夹,只提供分离级别.它们还帮助我绘制我的应用程序命名空间.例如,Collections
文件夹/项目中的代码类将位于ApplicationName.DataTypes.Collections
命名空间中.在类Data Providers
文件夹/项目将有ApplicationName.Models.DataProviders
命名空间.
此外,在大型应用程序中,我的项目名称来自它们在此层次结构中的位置...例如,我的DataTypes
项目实际上已被调用ApplicationName.DataTypes
,我的Models
项目被调用ApplicationName.Models
.在Collections
与DataProviders
零件文件夹,所有的项目过去的第二个层次,例如一起.Enums
,Images
,Commands
,等.
Ben*_*hon 23
大多数人使用你提到的"标准"结构:
我认为它受欢迎的原因是因为有些人会认为你应该能够将Models,ViewModel和Views放在不同的程序集中.
还利用这种结构,您可以轻松地将文件夹添加其他东西WPF: ,Converters/
, Resources/
等.
在我的团队中,我们使用这个结构,但我们将名称复数化(因此模型/ ViewModels/Views).
但是,大多数情况下,模型类是在其他程序集/命名空间中定义的; 在这种情况下,我们甚至没有Models/
文件夹.
对于大型项目,我们将子文件夹添加到Models/
,ViewModels/
和Views/
为了完整起见,值得一提的是,您可能会发现一些人使用"特征驱动"结构:
但这种情况非常罕见.