Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>I recommend to take one step back and look at your requirements once again.</p> <p><strong>Do you need real 3 tiers (that is physical deployment to different machines) or just logical partitioning of your application?</strong></p> <p>I made exactly this mistake on the first big Application I have written. I never needed physical 3 tiers (and will never need) but designed the application that way. The most striking consequence was that I Linq2Sql does not support <strong>disconnected Change Tracking</strong> on the entities. I used <a href="http://www.codeplex.com/LINQ2SQLEB" rel="nofollow noreferrer">Linq2Sql Entity Base</a> to workaround this limitation, however it violates the concept of Persistence Ignorance very badly (one always knows better afterwards, huh?).</p> <p><strong>Going real n-tiers has a lot of other implications on application architecture</strong>.</p> <p>You will need message passing, data-transfer objects etc. Linq2SQL is a decent ORM, the tight integration with LINQ provides unique possibilities. Other ORMs will still need some time to catch up here. NHibernate 3.0 is a light at the end of the tunnel here. Linq2SQL is a great ORM if you have simple data models and can map in a "class per table" manner. </p> <p>For disconnected change tracking (which you will need if going n-tiers) other ORMs have better support.</p> <p><strong>And at last:</strong></p> <blockquote> <p>(we're coming from classic ASP so this is a massive step for us)</p> </blockquote> <p>Under these circumstances I'd be especially careful. Switching technologies is often underestimated. Even the smartest programmers on your team will make wrong decisions because they lack experience with the technology. Nonetheless it is important to go new ways and improve your skill set. Those who never fail will never suceed.</p>
 

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