Jan 01, 2011
I can't really answer for the DoFactory guys, but I do know what you are talking about in this case. And I assume you are referring to the MVC implementation. This implementation is done this way, as far as I can see, to allow the controllers to be testable.
Since the application gets a reference to the WCF service, they could have made a reference to the WCF service proxy directly in the controllers, but then you wouldn't have an easy way of testing them.
By wrapping the WCF service inside local repositories, you can test your controllers without affecting the rest of the application.
In my applications, when I use the PIA pattern, I take it a step farther and decorate the local models with DataAnnotations for form validation.
I've built this functionality into my code generator so it builds all this stuff for you.
I know it seems like a lot of stuff that may be redundant, but the way this application is separated, it kinda needs to be this way, or something close to it in order to provide maximum flexibility and testability.
And if you were to time it, round trip, page requests take only milliseconds.
This isn't the only way to do things, but it is one way. It's really up to you to see if it fits your needs.
I hope this answered your question.