希望看到人们关于在winforms C#app的项目/解决方案上组织目录和项目结构的最佳方法的想法.
大多数人都同意最好的分离视图,业务逻辑,数据对象,接口,但想看看不同的人如何解决这个问题.此外,将第三方依赖项隔离到实现项目中,然后让消费者引用的接口导出项目
View.csproj
BusinessLogic.csproj
Data.csproj
CalculatorService.Exported.csproj(接口)
CalculatorService.MyCalcImpl.csproj(一个实现)
CalculatorService.MyCalcImpl2.csproj(另一个实现)
此外,在文件夹结构方面,什么是更好的嵌套:
接口
--- IFoo
--- IData
Impl
--- Foo
---数据
要么
产品
---接口/ IP
产品--- Impl /产品
Foo
--- Impl/Foo
---接口/ IFoo
所有人都试图推动对抽象的分离依赖和快速改变实现的能力.
思考?最佳做法?
Odd.. 7
对我来说,这取决于我所遵循的模型.如果我使用的是MVC,那就是
Project -Models -Controllers -Views
或者对于MVP来说
Project -Models -Presenters -Views
在视图下,我将它们分成与控制器相关的命名空间,即如果我有一个控制器来处理库存事务,我可能会将其作为
Project -Models --Inventory -Controllers --Inventory ---TransactionsController.cs -Views --Inventory ---Transactions ----EditTransactionsView.dfm
对于接口,我将接口放在与实现相同的目录中.
对我来说,这取决于我所遵循的模型.如果我使用的是MVC,那就是
Project -Models -Controllers -Views
或者对于MVP来说
Project -Models -Presenters -Views
在视图下,我将它们分成与控制器相关的命名空间,即如果我有一个控制器来处理库存事务,我可能会将其作为
Project -Models --Inventory -Controllers --Inventory ---TransactionsController.cs -Views --Inventory ---Transactions ----EditTransactionsView.dfm
对于接口,我将接口放在与实现相同的目录中.
有点迟到的答案,但也可以插话.
我一直在根据实际的项目类型亲自使用文件夹.例如:
- Project + Forms + Classes + UserControls + Resources + Data
所以我最终得到:
new Forms.AboutForm().ShowDialog(); Controls.Add(new Controls.UberTextBox());