My company's architect would like to have the option of moving our data access layer (which will be a separate assembly in any case) off the application server to another server, with communication via WCF. This will be an SL4 application and we're considering using Csla as the business framework (our first foray into Csla).
I think he's thinking that this may allow for greater scalability than simply having multiple application servers running the server side business object and data access layer components together. I'm assuming the latter scenario is possible, although how would the framework know about the multiple application servers?
Does Csla help in this scenario, or is it really only of value in the client side business object to server side business object communication?
CSLA .NET for Silverlight supports 2- through 4-tier physical deployments.
In a 4-tier deployment the tiers are:
The data portal takes your object from the client through to the app server. You have the opportunity to inspect the object at the web server before allowing it through to the app server, which is important for DMZ security models.
In general this is not something you do for scalability - 4-tier models are not normally more scalable than 3-tier models.
This is something you typically do for security, because your web server is external-facing and can't access the database, so the app needs to tunnel through a second firewall to get past the DMZ into your internal network.
The reality is that a 4-tier model costs you measurable performance. It might get you scalability, but that's a long shot. It will get you security, but again, all at the cost of performance.
The CSLA .NET for Silverlight video series directly covers the n-tier deployment options and shows how to configure each of them.
Copyright (c) Marimer LLC