evolution of smart client what is smart client? types of smart client architectural challenges ...

35
SMART CLIENT

Upload: alban-parks

Post on 30-Dec-2015

233 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

SMART CLIENT

Page 2: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

AGENDAEvolution of Smart ClientWhat is Smart client?Types of Smart clientArchitectural challengesSmart Client ArchitectureDemo application of Smart ClientDeploy smart client application with

Click onceUpdating Smart Client ApplicationsSecurity Considerations

Page 3: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

EVOLUTION

Era of client applications being developed for the Microsoft® Windows® platform. - In mid 1990

2 – Tier Distributed Applications Internet Web Applications Again need of Rich client Applications New Generation Application - “Smart Client”

Page 4: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

CLIENT APPLICATION

Single Architecture – Mainframes – Dumb Terminals

Page 5: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

EVOLUTION

Era of client applications being developed for the Microsoft® Windows® platform. - In mid 1990

2 – Tier Distributed Applications Internet Web Applications Again need of Rich client Applications New Generation Application - “Smart Client”

Page 6: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

Mid 80’s Personal Computers (2 tier) – Thick Clients

2 – TIER APPLICATION

Page 7: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

EVOLUTION

Era of client applications being developed for the Microsoft® Windows® platform. - In mid 1990

2 – Tier Distributed Applications Internet Web Applications Again need of Rich client Applications New Generation Application - “Smart Client”

Page 8: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

WEB APPLICATIONS

Web Applications Solve Everything!

Page 9: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

EVOLUTION

Era of client applications being developed for the Microsoft® Windows® platform. - In mid 1990

2 – Tier Distributed Applications Internet Web Applications Again need of Rich client Applications New Generation Application - “Smart Client”

Page 10: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

RICH CLIENT APPLICATIONS

Page 11: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

EVOLUTION

Era of client applications being developed for the Microsoft® Windows® platform. - In mid 1990

2 – Tier Distributed Applications Internet Web Applications Again need of Rich client Applications New Generation Application - “Smart

Client”

Page 12: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

WHAT IS SMART CLIENT?

Smart Client is a term used to describe an application environment which: delivers applications over a web connection automatically update application without user

action has the look and feel of desktop applications

“Smart client” is neither a technology nor any specific architecture. It is a concept and a style of applications that combines the best of both windows applications and web applications.

Page 13: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

WHAT IS SMART CLIENT?

Web Services &Offline/Onlinesupport

DeviceAdaptability

Tough toDeploy

HeavyFootprint

DLL Hell

NetworkDependency

Poor UserExperience

Rich UIComplexTo Develop

Rich UserExperience

DeveloperProductivity

Responsive

BroadReach

Easy ChangeManagement

Ease ofDeployment

Page 14: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

TYPES OF SMART CLIENT

Windows smart client applications A “desktop application” that uses available system resources

and that provides a rich user interface Examples: Microsoft Money and Microsoft Outlook® messaging

and collaboration client

Office smart client applications Microsoft Office System 2003 provides you with a useful

platform on which to build smart client applications, especially in an enterprise setting.

Mobile smart client applications Applications that run on smart devices — Pocket PCs, Smart-

phones, and other small form factor devices such as set-top boxes.

These applications are built using compact .NET framework Examples: insurance and financial data-gathering applications,

inventory management applications, and personal productivity management applications

Page 15: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

ARCHITECTURAL CHALLENGES

Allows data and logic to be distributed to the client computer

Ensures that the data is refreshed appropriately and that stale data is not used.

Data concurrency Flexibility in how SC can be hosted Deployed as composite application.

Page 16: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

ARCHITECTURE

Makes use of local resources Makes use of network resources Supports the “occasionally-connected”

model Provides intelligent installation and

updates Provides client device flexibility

Page 17: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

USING LOCAL RESOURCES

Code and data deployed on the client ; executed and accessed locally

Rich and responsive user interface ; powerful client-side processing capabilities. Enables to perform complex data manipulation,

visualization, searching, or sorting operations. Takes advantage of client-side hardware resources

as well as local software Direct display and peripheral access Responsive graphics, printers, digital camera’s, smart phones,

pda, etc. Use of installed applications - Word, Excel, VSTO

Page 18: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

USING NETWORK RESOURCES

Consumes and uses different services and data over the network

Should use centralized services that help maintain the application and provide deployment and update services.

Allow users to collaborate on tasks In many cases, a smart client application can

provide portal-like capabilities to the user, allowing disparate data and services to be coordinated and integrated into an overall solution.

Page 19: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

OCCASIONALLY CONNECTED USERS

Designed to provide functionality to users who are occasionally connected/ Off line to the network.

It can increase user’s productivity and efficiency

Update when connected

Page 20: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

INTELLIGENT INSTALLATION AND UPDATE

Different ways to deploy smart clientsAutomatic updatesUpdates while running and can be

deployed on demand by clicking on a URL

Allows you to strongly name your application components

Allows applications to be isolated from each other

Page 21: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

CLIENT DEVICE FLEXIBILITYAllows the user to configure the

application to support his or her preferred way of working

Allows access on multiple devicesAbility to tailor the application

according to the devices with essential features and functionality

For example, a SC application can be developed that run on different devices like desktop, laptop, tablet, or mobile with their ability to deliver a full range of smart client applicationfeatures

Page 22: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

Introduction to ClickOnce 2.0 Deployment technology for SmartClient

applications Initial deployment of applications On-demand and automatic updates

Idea behind ClickOnce: take easy and reliable deployment of web applications to rich client apps No more touching every client for

installs and updates No harm to other applications and

data No problems like DLL hell and broken

apps

Page 23: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

A bit of deployment history

.NET FX 1.1 No-touch deployment Easy deployment over HTTP Apps always runs as partially trusted

code inside of a sandbox No transaction on updates involving

multiple files Always downloads all files before

running

Page 24: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

Features of ClickOnce 2.0

Applications can be available: Online only Both online and offline, through a Start

Menu shortcut Background updates Transacted multi-file updates of

application Nice integration with Visual Studio

2005

Page 25: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

DEMO

Simple example of ClickOnce deployment

Page 26: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

More deployment details

Files are stored in an obfuscated location in user’s profile Isolated by user,

application and version

Installation cannot perform privileged operations No custom install

steps, registry entries, driver installation, COM registration

Page 27: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

ClickOnce runtime

ClickOnce runtime is responsible for management and deployment of apps and permissions

Runtime is triggered by two new XML file types: Application deployment manifests

(*.application) Application references (*.appref-ms)

Running application’s exe directly does not start ClickOnce runtime

Page 28: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

Automatic application updates Application is updated when new

versions are published and updates are enabled

CO runtime checks at update location for new deployment manifest

New files are downloaded when available Configurable option of update check and

download Before startup of application In background every time application is

run In background on regular intervals

Updates can be optional or obligatory Add/Remove programs allows rollback

of updates

Page 29: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

Visual Studio.NET integration Part of core project system

Project properties has several tabs related to ClickOnce: Publish, Security and more

Calculate permissions Deployment not as an after thought

Taken care of during development Publish Wizard simplifies deployment even

further Allows easy manipulation of some of ClickOnce

properties

Page 30: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

ClickOnce in the future

Longhorn version of ClickOnce will bring Use of Background Intelligent Transfer

Service (BITS) technology for trickle download

Different execution context allowing execution from browser or externally

Better protection in SEE

Page 31: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

ClickOnce Security

Code Access Security (CAS) determines what an application is allowed to do: Permissions assigned based on evidence

and policies Location of download is leading: Local,

Intranet or Internet Custom security policy allows for

content-based evidence

Page 32: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

Application manifest states permissions needed to properly run application Once installed and run, app gets only

permissions in manifest User is prompted when manifest

requests more permissions than CAS gives

Page 33: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

SECURITY OF SMART CLIENT

CLR includes a new way of handling security for SC applications, known as Code Access Security (CAS)

CAS Framework terminology Permissions Permission sets Evidence Code groups Security policy Demand Assert

Page 34: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

CAS FRAMEWORK SCENARIO

Page 35: Evolution of Smart Client  What is Smart client?  Types of Smart client  Architectural challenges  Smart Client Architecture  Demo application

Questions and Answers

? !