title: Winforms - best directory / project structure
body: <p>Wanted to see peoples thoughts on best way to organize directory and project structure on a project / solution for a winforms C# app.  </p>
  
  <p>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 </p>
  
  <p><li>View.csproj
  <li>BusinessLogic.csproj
  <li>Data.csproj
  <li>CalculatorService.Exported.csproj (interfaces)
  <li>CalculatorService.MyCalcImpl.csproj (one implementation)
  <li>CalculatorService.MyCalcImpl2.csproj (another implementation)</p>
  
  <p>Also, in terms of folder structure, what is better nesting:</p>
  
  <p>Interfaces<br>
  ---IFoo<br>
  ---IData<br>
  Impl<br>
  ---Foo<br>
  ---Data  </p>
  
  <p>or </p>
  
  <p>Product<br>
  ---Interfaces/IProduct<br>
  ---Impl/Product<br>
  Foo<br>
  ---Impl/Foo<br>
  ---Interfaces/IFoo </p>
  
  <p>All trying to push for decoupled dependencies on abstractions and quick ability to changed implementations.</p>
  
  <p>Thoughts? Best practices?</p>