Smart Clients

Download Report

Transcript Smart Clients

Smart Clients
What, Why, and Where
By: Richard Arthur
Smart Clients Defined

Best programming benefits of



Windows applications
Web applications
Benefits are






Smaller footprint
Richer interaction
More robust code
Easier deployment
Consistent updates
Centralized data stores
Motivation: Web

Benefits of Web Sites





Easier deployment
Easier upgrades
Ubiquitous access
Centralized data stores
Drawbacks of Web Sites


Managing scale
Less-interactive




HTML – even with JavaScript, it is not great
Stateless
Session management
Limited access to local resources
Motivation: Windows

Benefits of Windows Applications





Richer interactions within the application
Faster performance
Better use of local resources
Can be run when disconnected
Drawbacks of Windows Applications

DLL Hell



Installation and upgrade headaches
Larger installations
“Heavy Footprint” – consumes more resources
Nifty Graphic
http://msdn.microsoft.com/smartclient/understanding/definition/default.aspx
Groups of Smart Clients

Windows


MS Office


Full-blown stand-alone applications
Applications use Office for data management
Mobile

Handhelds use Web Services

store and manipulate data
MS Office?

Source of confusion


Developers got a little trigger-happy with “Smart Client” term
Employs many design principles of Smart Clients

Outlook


Excel




works disconnected
Easy to update deployed spreadsheets
Centralize data and reference it
Use Web Services
Word



Easy to update deployed documents
Centralize the data and reference it
Use Web Services
Existing Applications

Where are smart clients today?

AOL/MSN Messenger




Virus Scanners



Contact list is centralized
Customizations are stored locally
Seamless application updates
McAfee stores local DB of viruses
Regularly updates itself
MS Passport


Centralized storage of Credit Card info
Data shared across web sites
Target Environments

Corporate environments





Lots of users
Central/shared data stores
Frequent or important updates
Know OS/Environments
Home environments


Data duplicated/shared across several machines
Frequent or important updates


Bug fixes
New features
Considerations For Implementing

Consider Smart Clients when your code
can/may:



Replicate data across several applications
Data should be centralized for all users
Application needs desktop resources to work


Needs more power than web apps can provide
Application needs connectivity

Can do without it for a while
Facilitating Smart Clients

.NET Framework

Overcoming DLL Hell




Overcoming large footprint



Version conflicts
“XCopy” deployment
“No-Touch” deployment
Many assemblies already exist on client machines
Intermediate code is inherently smaller
Visual Studio .NET 2005

Overcoming Deployment/Upgrade issues

ClickOnce technology
XCopy Deployment



Old DOS tool for copying several files at once
No registry needed
Some drawbacks


You may need data pre-installed to the registry
You may need data pre-installed outside the install
directory


User data should go in the UserAppDataPath directory
No transacted installs

Currently provided by the Windows Installer
No-Touch Deployment




Post to Web/Shared Server
Runs from the download location
Downloads assemblies on demand
Drawbacks:

Unreliable offline functionality



May not have the latest DLLs
DLLs might be cleaned up by IE
Apps can run in “offline” mode only when IE is in
offline mode

Same DLL problems as mentioned above
More No-Touch Problems

Runs in “sandbox”-like environment

No access to








Global Assembly Cache (GAC)
Unmanaged code
Registry
Windows Shell
Any Files – except for “Isolated Storage”
Databases
Other Applications
Web Sites other than the originating server
Major Design Considerations

Several areas must be considered




Data
Network
Security
Deployment & Upgrading
See: http://msdn.microsoft.com/smartclient/default.aspx?pull=/library/enus/dnpag/html/scag.asp for greater details
Data Considerations

Central Store



Access from several locations
Share between different users
Local store

No need to share


Store locally for the application
Need to be disconnected


Update regularly: prevent stale data
Update asynchronously: allow interaction while
updating
Networking Considerations

When connected


What will you let your users do?
Limit network “chatter”



When disconnected




Make it look fast, ensure completion later
Improves performance (real & perceived)
Use a data store to allow continuous operation
Managing updates when reconnected
Handling dependencies (key-based relationships)
When interrupted



Detecting interruptions to Network service
Recovering from interruptions
Ensuring no data corruption
Security Considerations


Trust No Data!
On the server:



Authenticate and Authorize all requests
Always double-check the data
SSL Encryption is good, but still a stop-gap





On the client:



Centralize server access
Write consistent code
Write hole-free code
Manage resource permissions properly
Validate all the data
Authenticate and Authorize all incoming data
Read “Writing Secure Code” (ISBN:0735617228)
Deployment Considerations


Make sure all clients have the .NET Framework
OneClick



No-Touch



Easier to maintain and upgrade
Not available with .NET Framework 1.1
Easy to maintain on the server
Harder to maintain on the client
Windows Installation Package



Easy for developer to maintain
Harder to upgrade the application
May combine with OneClick

Download and automatically install periodic updates
Thank You
Questions?