Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.
-
Upload
thomasine-butler -
Category
Documents
-
view
220 -
download
2
Transcript of Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.
![Page 1: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.](https://reader030.fdocuments.in/reader030/viewer/2022032802/56649e025503460f94aed860/html5/thumbnails/1.jpg)
Smart Client Applications for Developers
Davin Mickelson, MCT, MCSD
New Horizons of MN
![Page 2: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.](https://reader030.fdocuments.in/reader030/viewer/2022032802/56649e025503460f94aed860/html5/thumbnails/2.jpg)
History of Windows Client Applications
• Fat Clients – Windows Applications (early 90’s)
• Thin Clients – Internet Applications (late 90’s)
• Smart Clients – Rich, New and Improved Windows Applications!
![Page 3: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.](https://reader030.fdocuments.in/reader030/viewer/2022032802/56649e025503460f94aed860/html5/thumbnails/3.jpg)
What Is a Smart Client?
1. Makes use of local resources
2. Makes use of network resources
3. Supports the “occasionally-connected” model
4. Provides intelligent installation and updates
5. Provides client device flexibility
![Page 4: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.](https://reader030.fdocuments.in/reader030/viewer/2022032802/56649e025503460f94aed860/html5/thumbnails/4.jpg)
1. Makes Use of Local Resources
• Specialized hardware on the client computer (smart card reader, barcode reader, etc.)
• Locally installed software (Office, etc.)
• Graphics capabilities
• Memory
• Performance
• Overall better user experience
![Page 5: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.](https://reader030.fdocuments.in/reader030/viewer/2022032802/56649e025503460f94aed860/html5/thumbnails/5.jpg)
2. Makes Use of Network Resources• Deployment and Update services
• Connects to data sources
• Connects to other applications
• Connects to web services
![Page 6: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.](https://reader030.fdocuments.in/reader030/viewer/2022032802/56649e025503460f94aed860/html5/thumbnails/6.jpg)
3. Supports the “Occasionally-connected” Model
• Allows application to always run, whether connected or disconnected
• While disconnected, supports as much functionality as possible
• Allow smart (cached) updates to be made to the server for limited connectivity – even when connected
• Scenario - OTR sales people
![Page 7: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.](https://reader030.fdocuments.in/reader030/viewer/2022032802/56649e025503460f94aed860/html5/thumbnails/7.jpg)
4. Provides Intelligent Installation and Software Updates• Allows “no-touch deployments”
– Automatic software installation based on a web shortcut
• Allows easy software updates– When first started– As a background process
![Page 8: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.](https://reader030.fdocuments.in/reader030/viewer/2022032802/56649e025503460f94aed860/html5/thumbnails/8.jpg)
5. Provides Client Device Flexibility
• Smart client applications can be created for multiple platforms– Desktop– Laptop– Tablet– Mobile device
• For example, a desktop application can be used to read in the scanned items while a scanner (mobile device) application scans the items
![Page 9: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.](https://reader030.fdocuments.in/reader030/viewer/2022032802/56649e025503460f94aed860/html5/thumbnails/9.jpg)
Types of Smart Clients
1. Windows smart client applications– Desktop, Laptop and Tablet
2. Office smart client applications– Visual Studio Tools for Office (VSTO)– Documents/Spreadsheets dynamically created– InfoPath 2003– Demonstration: VSTO Word document w/table
3. Device smart client applications– Pocket PC, Windows CE, .NET CE, Media Center– Demonstration: Pocket PC calling Web Service and
reading database
![Page 10: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.](https://reader030.fdocuments.in/reader030/viewer/2022032802/56649e025503460f94aed860/html5/thumbnails/10.jpg)
“Occasionally-Connected”
• Outlook 2003, for example• Loosely coupled applications• Even when disconnected from
network/web, user can still run application to fullest capabilities
• Synchronization occurs when network present
• Synchronization occurs minimally for smaller hit on application performance
![Page 11: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.](https://reader030.fdocuments.in/reader030/viewer/2022032802/56649e025503460f94aed860/html5/thumbnails/11.jpg)
Caching Data Locally
• Isolated Storage (Folder called ‘Application Data’)
• Classic file system (TEMP/TMP folder)
• Read-only access
• Optimistic locking for updates– Time/date stamp or change counter
• Example: IsolatedStorageData project
![Page 12: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.](https://reader030.fdocuments.in/reader030/viewer/2022032802/56649e025503460f94aed860/html5/thumbnails/12.jpg)
Deploying Smart Client Applications
• No-touch deployment
• No-touch deployment with application update stub
• Running from file share
• XCopy installation
• Windows Installer
![Page 13: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.](https://reader030.fdocuments.in/reader030/viewer/2022032802/56649e025503460f94aed860/html5/thumbnails/13.jpg)
No-touch Deployment 1/2
• .NET Runtime is required! IE 5.01 or newer required too!• Install files loaded onto web server and application called
from URL• Downloaded to “assembly download cache”• Date/Time stamp of file analyzed for getting most recent
version of any assembly (not version)• Updates can also be handled internally by application,
Assembly.LoadFrom()• Secure the access to the application at the web server –
Windows Authentication
![Page 14: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.](https://reader030.fdocuments.in/reader030/viewer/2022032802/56649e025503460f94aed860/html5/thumbnails/14.jpg)
No-touch Deployment 2/2
• Use GacUtil.exe to manage download assembly cache
• Where’s it “really” downloaded to? Isolated Storage!
• CAS – Code Access Security may need to be set with CASPOL.EXE or Microsoft .NET Framework 1.1 Configuration tool
• File URI vs. Intranet URL• Demonstration: Create Windows application and
deploy it
![Page 15: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.](https://reader030.fdocuments.in/reader030/viewer/2022032802/56649e025503460f94aed860/html5/thumbnails/15.jpg)
No-touch Deployment Restrictions
• Restricted default security settings– Must set up specialized .NET security policies
for applications to interact with Windows (File I/O, Isolated Storage, etc.)
– Set these security rights using AD Group Policy, Windows Installer package, .BATch file
• Unreliable offline functionality– Dependent on IE settings and caching
![Page 16: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.](https://reader030.fdocuments.in/reader030/viewer/2022032802/56649e025503460f94aed860/html5/thumbnails/16.jpg)
Code Access Security (CAS) 1/4
• Added level of security for .NET applications• Sits on top of Windows Security (does not
replace)• Gathers “evidence” to determine rights of
application – not user!– Evidence (7 pieces) – Site, URL, Zone,
ApplicationDirectory, StrongName, Publisher, (Build) Hash
• Best configured through Administrative Tools – Microsoft .NET Framework 1.1 Configuration tool
![Page 17: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.](https://reader030.fdocuments.in/reader030/viewer/2022032802/56649e025503460f94aed860/html5/thumbnails/17.jpg)
Code Access Security (CAS) 2/4
• Three primary policy levels– Enterprise– Computer– User
• Each policy level contains:– code groups– permission sets– list of policy assemblies
![Page 18: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.](https://reader030.fdocuments.in/reader030/viewer/2022032802/56649e025503460f94aed860/html5/thumbnails/18.jpg)
Code Access Security (CAS) 3/4
• Code groups are used for applications run from certain zones
• Each Permission set holds a group of permissions that are assigned to certain Code groups
• You cannot change the settings for individual permissions (read only)
• You can create your own custom Code groups and Permission sets
![Page 19: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.](https://reader030.fdocuments.in/reader030/viewer/2022032802/56649e025503460f94aed860/html5/thumbnails/19.jpg)
Code Access Security (CAS) 4/4
• Where is all this really stored? security.config (One of many XML config files)
• Treat these config files like the registry (Be careful!)
• Demonstration: Adding custom Code Group and assigning it a custom Permission set
![Page 20: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.](https://reader030.fdocuments.in/reader030/viewer/2022032802/56649e025503460f94aed860/html5/thumbnails/20.jpg)
Application Blocks
• Offline App Block– Specifically for Smart client apps– Offers offline storage and automatic data
synchronization when “connected”• Caching Framework App Block
– Allows you to easily cache data from service providers and other systems
• Updater App Block– For automating updates for multiple smart clients
• Configuration Management App Block– Allows you to read and write application configuration
data securely
![Page 21: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.](https://reader030.fdocuments.in/reader030/viewer/2022032802/56649e025503460f94aed860/html5/thumbnails/21.jpg)
The Future of Developing Smart Clients (the Future, Conan?)
• Visual Studio 2005 (Whidbey) will make our job much easier– Better tools for developing Smart clients (Example:
more wizards!)– .NET v2.0 will offer more capabilities
• New “ClickOnce” deployment feature
• Next version of Windows (Longhorn) offers better support for smart client applications– Easier thread management (performance)– Better support for “ClickOnce”
![Page 22: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.](https://reader030.fdocuments.in/reader030/viewer/2022032802/56649e025503460f94aed860/html5/thumbnails/22.jpg)
Armed with SC Info – Now What?
• Don’t upgrade your current Intranet web apps to smart client apps unless necessary
• Start new projects as smart client apps to take advantage of a true user interface
• Smart clients are the future of applications• ASP.NET is not going away• Learn the new .NET 2.0 ASAP (Express
versions are free!)
![Page 23: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.](https://reader030.fdocuments.in/reader030/viewer/2022032802/56649e025503460f94aed860/html5/thumbnails/23.jpg)
Questions?
• I’m Davin Mickelson and I approve this message
• Thank you for listening
• I hope this information helps you
• Drive safe
• Need .NET training?– http://www.NewHorizonsMN.com