Presentation is loading. Please wait.

Presentation is loading. Please wait.

Smart Clients What, Why, and Where By: Richard Arthur.

Similar presentations


Presentation on theme: "Smart Clients What, Why, and Where By: Richard Arthur."— Presentation transcript:

1 Smart Clients What, Why, and Where By: Richard Arthur

2 Smart Clients Defined Best programming benefits of Best programming benefits of Windows applications Windows applications Web applications Web applications Benefits are Benefits are Smaller footprint Smaller footprint Richer interaction Richer interaction More robust code More robust code Easier deployment Easier deployment Consistent updates Consistent updates Centralized data stores Centralized data stores

3 Motivation: Web Benefits of Web Sites Benefits of Web Sites Easier deployment Easier deployment Easier upgrades Easier upgrades Ubiquitous access Ubiquitous access Centralized data stores Centralized data stores Drawbacks of Web Sites Drawbacks of Web Sites Managing scale Managing scale Less-interactive Less-interactive HTML – even with JavaScript, it is not great HTML – even with JavaScript, it is not great Stateless Stateless Session management Session management Limited access to local resources Limited access to local resources

4 Motivation: Windows Benefits of Windows Applications Benefits of Windows Applications Richer interactions within the application Richer interactions within the application Faster performance Faster performance Better use of local resources Better use of local resources Can be run when disconnected Can be run when disconnected Drawbacks of Windows Applications Drawbacks of Windows Applications DLL Hell DLL Hell Installation and upgrade headaches Installation and upgrade headaches Larger installations Larger installations “Heavy Footprint” – consumes more resources “Heavy Footprint” – consumes more resources

5 Nifty Graphic http://msdn.microsoft.com/smartclient/understanding/definition/default.aspx

6 Groups of Smart Clients Windows Windows Full-blown stand-alone applications Full-blown stand-alone applications MS Office MS Office Applications use Office for data management Applications use Office for data management Mobile Mobile Handhelds use Web Services Handhelds use Web Services store and manipulate data store and manipulate data

7 MS Office? Source of confusion Source of confusion Developers got a little trigger-happy with “Smart Client” term Developers got a little trigger-happy with “Smart Client” term Employs many design principles of Smart Clients Employs many design principles of Smart Clients Outlook Outlook works disconnected works disconnected Excel Excel Easy to update deployed spreadsheets Easy to update deployed spreadsheets Centralize data and reference it Centralize data and reference it Use Web Services Use Web Services Word Word Easy to update deployed documents Easy to update deployed documents Centralize the data and reference it Centralize the data and reference it Use Web Services Use Web Services

8 Existing Applications Where are smart clients today? Where are smart clients today? AOL/MSN Messenger AOL/MSN Messenger Contact list is centralized Contact list is centralized Customizations are stored locally Customizations are stored locally Seamless application updates Seamless application updates Virus Scanners Virus Scanners McAfee stores local DB of viruses McAfee stores local DB of viruses Regularly updates itself Regularly updates itself MS Passport MS Passport Centralized storage of Credit Card info Centralized storage of Credit Card info Data shared across web sites Data shared across web sites

9 Target Environments Corporate environments Corporate environments Lots of users Lots of users Central/shared data stores Central/shared data stores Frequent or important updates Frequent or important updates Know OS/Environments Know OS/Environments Home environments Home environments Data duplicated/shared across several machines Data duplicated/shared across several machines Frequent or important updates Frequent or important updates Bug fixes Bug fixes New features New features

10 Considerations For Implementing Consider Smart Clients when your code can/may: Consider Smart Clients when your code can/may: Replicate data across several applications Replicate data across several applications Data should be centralized for all users Data should be centralized for all users Application needs desktop resources to work Application needs desktop resources to work Needs more power than web apps can provide Needs more power than web apps can provide Application needs connectivity Application needs connectivity Can do without it for a while Can do without it for a while

11 Facilitating Smart Clients.NET Framework.NET Framework Overcoming DLL Hell Overcoming DLL Hell Version conflicts Version conflicts “XCopy” deployment “XCopy” deployment “No-Touch” deployment “No-Touch” deployment Overcoming large footprint Overcoming large footprint Many assemblies already exist on client machines Many assemblies already exist on client machines Intermediate code is inherently smaller Intermediate code is inherently smaller Visual Studio.NET 2005 Visual Studio.NET 2005 Overcoming Deployment/Upgrade issues Overcoming Deployment/Upgrade issues ClickOnce technology ClickOnce technology

12 XCopy Deployment Old DOS tool for copying several files at once Old DOS tool for copying several files at once No registry needed No registry needed Some drawbacks Some drawbacks You may need data pre-installed to the registry You may need data pre-installed to the registry You may need data pre-installed outside the install directory You may need data pre-installed outside the install directory User data should go in the UserAppDataPath directory User data should go in the UserAppDataPath directory No transacted installs No transacted installs Currently provided by the Windows Installer Currently provided by the Windows Installer

13 No-Touch Deployment Post to Web/Shared Server Post to Web/Shared Server Runs from the download location Runs from the download location Downloads assemblies on demand Downloads assemblies on demand Drawbacks: Drawbacks: Unreliable offline functionality Unreliable offline functionality May not have the latest DLLs May not have the latest DLLs DLLs might be cleaned up by IE DLLs might be cleaned up by IE Apps can run in “offline” mode only when IE is in offline mode Apps can run in “offline” mode only when IE is in offline mode Same DLL problems as mentioned above Same DLL problems as mentioned above

14 More No-Touch Problems Runs in “sandbox”-like environment Runs in “sandbox”-like environment No access to No access to Global Assembly Cache (GAC) Global Assembly Cache (GAC) Unmanaged code Unmanaged code Registry Registry Windows Shell Windows Shell Any Files – except for “Isolated Storage” Any Files – except for “Isolated Storage” Databases Databases Other Applications Other Applications Web Sites other than the originating server Web Sites other than the originating server

15 Major Design Considerations Several areas must be considered Several areas must be considered Data Data Network Network Security Security Deployment & Upgrading Deployment & Upgrading See: http://msdn.microsoft.com/smartclient/default.aspx?pull=/library/en- us/dnpag/html/scag.asp for greater details http://msdn.microsoft.com/smartclient/default.aspx?pull=/library/en- us/dnpag/html/scag.asphttp://msdn.microsoft.com/smartclient/default.aspx?pull=/library/en- us/dnpag/html/scag.asp

16 Data Considerations Central Store Central Store Access from several locations Access from several locations Share between different users Share between different users Local store Local store No need to share No need to share Store locally for the application Store locally for the application Need to be disconnected Need to be disconnected Update regularly: prevent stale data Update regularly: prevent stale data Update asynchronously: allow interaction while updating Update asynchronously: allow interaction while updating

17 Networking Considerations When connected When connected What will you let your users do? What will you let your users do? Limit network “chatter” Limit network “chatter” Make it look fast, ensure completion later Make it look fast, ensure completion later Improves performance (real & perceived) Improves performance (real & perceived) When disconnected When disconnected Use a data store to allow continuous operation Use a data store to allow continuous operation Managing updates when reconnected Managing updates when reconnected Handling dependencies (key-based relationships) Handling dependencies (key-based relationships) When interrupted When interrupted Detecting interruptions to Network service Detecting interruptions to Network service Recovering from interruptions Recovering from interruptions Ensuring no data corruption Ensuring no data corruption

18 Security Considerations Trust No Data! Trust No Data! On the server: On the server: Authenticate and Authorize all requests Authenticate and Authorize all requests Always double-check the data Always double-check the data SSL Encryption is good, but still a stop-gap SSL Encryption is good, but still a stop-gap Centralize server access Centralize server access Write consistent code Write consistent code Write hole-free code Write hole-free code Manage resource permissions properly Manage resource permissions properly On the client: On the client: Validate all the data Validate all the data Authenticate and Authorize all incoming data Authenticate and Authorize all incoming data Read “Writing Secure Code” (ISBN:0735617228) Read “Writing Secure Code” (ISBN:0735617228)

19 Deployment Considerations Make sure all clients have the.NET Framework Make sure all clients have the.NET Framework OneClick OneClick Easier to maintain and upgrade Easier to maintain and upgrade Not available with.NET Framework 1.1 Not available with.NET Framework 1.1 No-Touch No-Touch Easy to maintain on the server Easy to maintain on the server Harder to maintain on the client Harder to maintain on the client Windows Installation Package Windows Installation Package Easy for developer to maintain Easy for developer to maintain Harder to upgrade the application Harder to upgrade the application May combine with OneClick May combine with OneClick Download and automatically install periodic updates Download and automatically install periodic updates

20 Thank You Questions?


Download ppt "Smart Clients What, Why, and Where By: Richard Arthur."

Similar presentations


Ads by Google