title: What is the proper way to split a solution of a big mvc application?
body: <p>I'm creation an application with over 70 table in database <strong>and it will be increased in the next phases.</strong></p>
  
  <p>I use Asp.net MVC: <strong>Model, Entity Framework, View Models, Repositories, Views, Controllers, Action Filters, References, Multi languages,....</strong></p>
  
  <p><strong>What is the best place for these parts in my solution?</strong></p>
  
  <p>I have seen different ways to splitting a solution. For example:</p>
  
  <pre><code>  - Solution
          - Core.UI
              - Domain
              - UI
                 - Models
              - Persistence
          - Core.Test
          - UI
              - Content
              - Controller
              - Views
              - Scripts
  </code></pre>
  
  <p><strong>Or another says split it to</strong></p>
  
  <pre><code>  - Solution
          - Model
          - Entities
          - Web
          - References
  </code></pre>
  
  <p><strong>Or</strong></p>
  
  <pre><code>...
  </code></pre>
  
  <p><em>What is your opinion about DDD (Domain Driven Design)? and how you implement it? Do you recommend it?</em></p>
  
  <hr>
  
  <ul>
  <li>I want <strong>best flexibility</strong> in my project and <strong>best choice</strong> because
  when a project is big, it will be harder to change its structure.</li>
  <li>I would like to <strong>exchange information in various forms</strong> (Web and html,
  client applications, mobile, xml....)</li>
  <li>I want to change and build fundamental parts of a my project
  <strong>separately</strong> (now and in future)</li>
  </ul>
  
  <hr>
  
  <p>If you could help me with details or examples.</p>
  
  <p><em>Thanks a lot...</em></p>