TechEd Braindump: Smart Client Architecture

Speaker: Billy Hollis, Rockford Lhotka

  • This session is being broadcasted over the web live. w00t.
  • Is it just me or does Billy Hollis look like a .Net version of Yoda. “Hmmmm. Smart Client? Build it for you I will.”
  • Smart Clients UI has some level of detachment from the rest of the application
  • Key Decision Points
    • Do you control the user’s operation environment?
    • Are you offline capabilities required?
    • Will a better UI translate to productivity gains and resultant savings?
    • Is it important for your application to access local resources on user machines?
    • Do you need (or would you benefit from) alternative UI – handwriting or speech recognition?
    • What security capabilities do you need?
    • Lesser factors
      • Distribution of processing overhead
      • Efficient utilization of bandwidth
      • Peer-to-peer capabilities
  • Having the .NET framework on all client machines is a bottleneck
  • Technologies Required
    • Standard HTTP connection (broadband)
    • A forms engine and execution environment runnin on the client machine (Windows Forms)
    • A way to deploy the app to the client (click once)
    • Way to transport data to and from a central server (XML Webservices)
    • A security model that limits the ability to do damage to the client machine (Code Access Security)
    • A means to secure access to the system and the data
  • Building the Client Tier
    • Componentize as much logic as possible
    • Minimize repeated code patterns in routine forms with frame works or toolkits
    • Use high level controller as app-entry point. There should be only one entry.
      • Isolates security checking, menu buiding, ets.
    • If possible, get data validation rules from database
  • Extended Properties is a key technology for Smart Clients. Extended Properties add new properties to a control.
  • Dynamic loading of assemblies allow forms to be loaded at run time. One example of this having a menu load from the database and then loading the form when the menu is selected by the user. This allows the forms to be pluggable
  • Competing Technologies
    • RPC: DCOM, RMI, Remoting, Web services
    • Async Messaging: MSMQ, MQ Series
    • Services (SO): Web services, Indigo
  • Data Portal: Design pattern that abstracts the UI & Business Logic layer from the Data Access layer.
  • http://www.lhotka.net/go/teched05.aspx

Disclaimer: These are my notes from my experience at TechEd 2005. I do not guarantee the validity or accuracy of these notes. They are my thoughts and what information I felt was important at the time.