Note that there are some explanatory texts on larger screens.

plurals
  1. POASP.NET MVC (Domain Model, Repository, Fluent, Services - Structure for my Project)
    primarykey
    data
    text
    <p>In my ASP.NET MVC web application, I have:</p> <ul> <li><p>Domain Model, created by LINQ to SQL</p></li> <li><p>Repositories such as </p> <p><code>UserRepository</code> and <code>OrderRepository</code></p></li> <li><p>IQueryable Fluents as IQueryable Extension Methods such as</p> <p><code>public IQueryable&lt;Order> GetNewOrders(this IQueryable&lt;Order>)</code></p></li> <li><p>Services such as</p> <p><code>UserService</code> and <code>OrderService</code></p></li> <li><p>Utility Classes and Extension Methods such as</p> <p><code>CryptoUtility</code> (doing Hashing etc.) and String etc. extensions</p></li> <li><p>ViewModels which are special for each MVC View</p></li> <li><p>The ASP.NET MVC project itself (Controllers, Views)</p></li> </ul> <p>I'm looking for the best project structure/organization for my case, especially separating into different assemblies and how dependencies should look like between these layers. Web resources unfortunately don't go into good detail about this. </p> <p>One hint: Currently Repository, Services, IQueryable Fluents etc. work directly against domain model implementation, I don't have an interface definition for them. I considered it unnecessary but maybe this is needed for loose coupling? My Services have an interface (e.g. IOrderService), and my repositories implement IRepository&lt;T>.</p> <p>Appreciate your input on organizing this in a concise manner, and especially what layer should depend on what &amp; assembly organization. Thank you!</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    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.
 

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