Convener: Phil Dennis @pjdennis
I have just finished rolling out a small smart-client app to production, and hosting a discussion on Smart Client architecture in light of that experience. The technologies I used:
- POCO domain model
- NHibernate for data access
- Service layer exposed using WCF
- WPF with MVC architecture for client-side presentation
As a starting point for discussion, here are some "rules" for Smart Client development. These are things we get "for free" to some extent, in web applications:
- All access to external resources should Be done via a physically separate service layer:
- Enables proper security
- Enables scalability
- Simplifies deployment
- No out-of-process calls from within UI event handlers
- Goal: responsive user interface
- Implementation: Asynchronous access to the service layer
Tools Mentioned: MassTransit
Concerns:
- Working disconnected
- synchronization
- security and impact on the client (trust levels, deployment)
-
Why WPF over WinForms:
- seems like future tech, Microsoft is going more this way (VS2010)
- better data binding story
- auto layout capabilities
Architecture:
- Shared domain layer across all tiers (service, DTO, client all use the same classes)
WCF:
- for communications
- challenges: IEnumerables are not supported for serialization, stick with out of box settings
- blog post series on implementing command pattern over WCF: http://davybrion.com/blog/2009/11/requestresponse-service-layer-series/
Comments (0)
You don't have permission to comment on this page.