From an architects perspective I want to keep all of this as far away from my 'core code' as possible. However you P&P guys don't help me do that. And in your own architectures you seem to commit the middle tier to one or the other. The middle tier I'm referring to is the "Work Controller" it's the object that controls nitty gritty state of the application. With P&P you commit to the Web Client SoftwareFactory or Composite UI Application Block and in future, Acropolis.
It's not rocket science to access the database through WCF services. And I can do my multi step transaction processing in Windows WorkFlow. And my model, a typed DataSet does a decent job as a transport between the view and the services. The step that is still tied to the UI is the Work Controller and my command handling code.
Could the same Work Controller DLL be pushed to the client in a smart client scenario or kept back on a server in a web scenario Obviously bindings would be setup different with WCF however it seems like it could be possible.
What about agile development of a web site After initial development is done in plain Web Forms and usability tests show what UI is too clunky and needs short cut keys, drag and drop etc. a Silverlight form or separate smart client utility could be used to target areas of a web application to streamline, eg Spreadsheet grid, or a invoice receipt form. Can the same Work Controller be used equally well between an ASP.NET web form and the WPF page
So why doesn't P&P create an architecture that fits all Can such a pattern not be created with out creating something that can do everything but does nothing well