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
- Minimize consecutive calls to the service layer - A single user action should result in a single call to the service layer
- Goal: Minimize latency of the user interface
- Enables atomicity of updates, e.g. to a database
Tools Mentioned:
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 (examples):
- Shared domain layer across all tiers (service, DTO, client all use the same classes)
WCF:
Comments (0)
You don't have permission to comment on this page.