Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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?