I'm designing a new WinForms application using C#, .NET 2.0 with VS2005.
My initial design calls for all of the data access code to run in a middle tier on an application server. That is, it's a three tier application with each tier running on a physical CPU like so:
[Layer C: SQL SERVER] <-[Layer B: DATA/BUSINESS] <- [Layer A: PRESENTATION]
[A] calls [B] calls [C]
[A] never calls [C]
I like the fact that the presentation tier [A] doesn't need access to the SQL Server tier [C]. No client workstation connects directly to SQL Server.
I'm using .NET remoting and passing binary serialized objects between the middle tier and the presentation tier. It works well but requires me to hand code dozens of data access classes for the middle tier.
Then I discovered LLBLGen Pro and I love it. The problem is I don't see any good way to use it without breaking my model. In all of the examples the LLBLGen classes are running on the same CPU as the presentation layer. Is it possible to host the LLBLGen classes on a different CPU and marshal the objects out to the presentation layer? Is there a better way? Should I give up on hosting each tier on a seperate physical CPU and mash layer [B] and [A] together on every client workstation?
[Layer C: SQL SERVER] <- [Layer B: DATA/BUSINESS <- Layer A: PRESENTATION]