Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>We have developed similar ASP.NET web portals based on strong modular principles. Tax we pay is lots of Visual Studio projects. There is a single master solution with all modules, web-sites, unit-tests and so on but this solution is usually infeasible to work with on day-by-day basis on computers with small amount of RAM (&lt;= 4 GB).</p> <p>We have common infrastructure code (~ 10 projects) and business module projects. A single business module is composed of all projects dealing with some aspect of business requirements, e.g. Orders, Customer management, Distribution... The business module typically has:</p> <ul> <li>ASP.NET web application project (which becomes a sub-web of the Shell module web-site),</li> <li>domain model assembly (class library with no dependencies) + interface assembly,</li> <li>OR/M adapter for domain model (we use Entity Framework and NHibernate),</li> <li>front-end assembly with presenters, controllers, view models, ...,</li> <li>back-end assembly with module business services and DTOs + interface assembly, </li> <li>unit test assemblies,</li> <li>other assemblies (like Silverlight components, MSQM DTOs, etc.).</li> </ul> <p>We use SLNTools Filter (<a href="http://slntools.codeplex.com/" rel="nofollow">http://slntools.codeplex.com/</a>) to filter out single business module VS solutions from the master solution. So we have solutions OrdersModule.sln, CustomersModule.sln etc. Each such solution has common infrastructure projects (~10) and the module projects (~10-15). SLNTools Filter automatically includes all dependent projects so it's very easy to create a new filtered solution.</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. 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