Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>The way I normally structure my solutions (<em>edit</em> adapted for NuGet)</p> <ol> <li>WebSite (MVC) <ul> <li>Controllers</li> <li>Views</li> <li>Content (scripts, css, images, etc.)</li> </ul></li> <li>Presentation Models (for simple, projects this would be embedded in the web site) <ul> <li>View Models</li> <li>Model mappers</li> </ul></li> <li>Business Logic <ul> <li>Rules</li> <li>Local Extensions (Web and General)</li> </ul></li> <li>Data (if complex, use separate subfolder per context/repos/models) <ul> <li>Repositories </li> <li>Entity Models</li> <li>Data Context and configuration</li> </ul></li> <li>Web Library (perhaps as separate solution available via local NuGet) <ul> <li>Extensions (to MVC/Web classes)</li> <li>Helper Classes = Attributes</li> </ul></li> <li>General Library (perhaps as separate solutions available via local NuGet) <ul> <li>Extensions</li> <li>Helper Classes</li> </ul></li> </ol> <p>Dependencies flow up this structure, i.e., the things above might reference the things below, but not vice versa. I would also have a separate test project per project. In some cases, I use external, shared libraries for web/general classes packaged with NuGet and hosted on a local repository.</p> <p>For mobile, if you're going via the web, I would build that directly into the WebSite using jQuery Mobile and mobile-aware view engines. If you're thinking native, then I'd add a WebAPI layer that may or may not share the same view models as the web site for API delivery and develop the mobile app outside this structure against the API. Most likely the API has it's own models and sits above the business layer in a separate stack. In my current project, we have the data in a separate solution and are developing the API and web site in separate solutions, sharing models via NuGet packages.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload