I have seen n-tiers solutions on the web, they all use DLLs for each layer. Our architecture looks the same : 3 DLLs : Data layer, a Business Logic layer and a Business objects Layer. However, the presentation layer does not directly communcaite with these layers but instead access them through a WCF web service.
Our ASP.NET MVC is hosted on the same machine as the WCF WebService.
Is that a good architecure? would it be more logical if the ASP.NET MVC had drect access the other layers?
Thank your for your eventual answers.
Your architecture should be dictated by your audience. If you have a very large audience (measured in requests per period), then you'll likely want a distributed architecture that utilizes web services in a manner similar to the one you've described. However, if your audience is small then the approach you've described is VERY overkill.
There is an argument however for keeping your current architecture if you need to update the underlying DLLs but don't want to redeploy your website every time. In your current setup, you'd just be redeploying the web service each time, while the website would remain unaffected. Again, however, unless you have a very active website it probably doesn't matter if you redeploy the website when your DLLs change.