Wanted to see peoples thoughts on best way to organize directory and project structure on a project / solution for a winforms C# app.

Most people agree its best to seperate view, business logic, data objects, interfaces but wanted to see how different people tackle this. In addition, isolate third party dependencies into implementation projects and then have interface exported projects that consumers reference

  • View.csproj
  • BusinessLogic.csproj
  • Data.csproj
  • CalculatorService.Exported.csproj (interfaces)
  • CalculatorService.MyCalcImpl.csproj (one implementation)
  • CalculatorService.MyCalcImpl2.csproj (another implementation)

    Also, in terms of folder structure, what is better nesting:

    Interfaces
    ---IFoo
    ---IData
    Impl
    ---Foo
    ---Data

    or

    Product
    ---Interfaces/IProduct
    ---Impl/Product
    Foo
    ---Impl/Foo
    ---Interfaces/IFoo

    All trying to push for decoupled dependencies on abstractions and quick ability to changed implementations.

    Thoughts? Best practices?

  • Edit
    Report