+ All Categories
Home > Documents > Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.

Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.

Date post: 25-Dec-2015
Category:
Upload: thomasine-butler
View: 217 times
Download: 2 times
Share this document with a friend
Popular Tags:
23
Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN
Transcript
Page 1: Smart Client Applications for Developers Davin Mickelson, MCT, MCSD New Horizons of MN.

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.

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.

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.

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.

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.

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.

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.

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.

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.

“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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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


Recommended