SlideShare a Scribd company logo
Smart Client Deployment
Smart Client Deployment
With Microsoft
With Microsoft®
®
Windows
Windows®
®
Forms
Forms
Ammar Abuthuraya
Ammar Abuthuraya
Developer & Platform Lead
Developer & Platform Lead
Microsoft
Microsoft®
®
Arabia
Arabia
What We Will Cover
What We Will Cover
 What is the smart client?
What is the smart client?
 What is no-touch deployment?
What is no-touch deployment?
 What are the advantages of Windows
What are the advantages of Windows
Forms—client caching?
Forms—client caching?
 Calling Web services from Windows
Calling Web services from Windows
Forms client applications
Forms client applications
Agenda
Agenda
 What is the smart client?
What is the smart client?
 Web service architecture
Web service architecture
 Web integration
Web integration
 Self-updating applications
Self-updating applications
 Advanced tools
Advanced tools
What Is the Smart Client?
What Is the Smart Client?
History of the Smart Client
History of the Smart Client
 Pre-1980’s
Pre-1980’s
 Computers were large server oriented
Computers were large server oriented
 Server-based computing—dumb terminals
Server-based computing—dumb terminals
 1980’s
1980’s
 Dawn of the PC—first smart clients
Dawn of the PC—first smart clients
 ‘
‘Fat’ client computing took center stage
Fat’ client computing took center stage
 1990’s
1990’s
 Dawn of the Internet
Dawn of the Internet
 Dumb browsers talking to powerful servers
Dumb browsers talking to powerful servers
What Is the Smart Client?
What Is the Smart Client?
Smart Client Considerations
Smart Client Considerations
 System impact
System impact
 Will the install of application 2 break
Will the install of application 2 break
existing application 1?
existing application 1?
 Initial installation
Initial installation
 Installation of applications on every client
Installation of applications on every client
 Application update
Application update
 Need to updated every client with changes
Need to updated every client with changes
to the application
to the application
 Investment in current Web applications
Investment in current Web applications
What Is the Smart Client?
What Is the Smart Client?
Smart Client Consideration Answers
Smart Client Consideration Answers
 .NET applications are isolated
.NET applications are isolated
 Private deployment by default
Private deployment by default
 Applications are self-describing—no
Applications are self-describing—no
central registry
central registry
 Multiple versions of an application can
Multiple versions of an application can
coexist
coexist
 Shared components are controlled and
Shared components are controlled and
explicit
explicit
 Applications use the included assembly
Applications use the included assembly
versions they were built with
versions they were built with
 Different versions of the .NET Framework
Different versions of the .NET Framework
can live side-by-side
can live side-by-side
What Is the Smart Client?
What Is the Smart Client?
Smart Client Consideration Answers
Smart Client Consideration Answers
 How we can avoid sending an install to
How we can avoid sending an install to
each client
each client
 Avoid the application install altogether
Avoid the application install altogether
 Run the application without touching the
Run the application without touching the
client
client
 About management software
About management software
 Ex. SMS, Microsoft
Ex. SMS, Microsoft®
®
IntelliMirror™
IntelliMirror™
 Can extend our reach by placing
Can extend our reach by placing
applications on the client
applications on the client
 Can also use traditional MSIs to create
Can also use traditional MSIs to create
installed application footprint
installed application footprint
What Is the Smart Client?
What Is the Smart Client?
Smart Client Consideration Answers
Smart Client Consideration Answers
 Automate the update of the application
Automate the update of the application
 Don’t need to touch client to update application
Don’t need to touch client to update application
 If running from a URL, nothing is installed
If running from a URL, nothing is installed
 What about applications with a footprint?
What about applications with a footprint?
 Load assemblies from a Web server
Load assemblies from a Web server
 Application downloads its components at runtime
Application downloads its components at runtime
 Update server assemblies to update
Update server assemblies to update
application
application
 No-touch application update
No-touch application update
What Is the Smart Client?
What Is the Smart Client?
Smart Client Consideration Answers
Smart Client Consideration Answers
 Existing Web applications can be
Existing Web applications can be
leveraged
leveraged
 Web services are the glue
Web services are the glue
 Run on the same server as browser
Run on the same server as browser
applications
applications
 Can share the context of the browser
Can share the context of the browser
application
application
 Can share the data of the browser
Can share the data of the browser
application
application
What Is the Smart Client?
What Is the Smart Client?
Smart Client Deployment
Smart Client Deployment
 No-touch deployment
No-touch deployment
 Application isolation is the default
Application isolation is the default
 No registration required
No registration required
 Deployment is simple
Deployment is simple
 Copy exe onto client
Copy exe onto client
 Run from a file share
Run from a file share
 Click on a link in the browser
Click on a link in the browser
What Is the Smart Client?
What Is the Smart Client?
Smart Client Deployment
Smart Client Deployment
 Stored in the download cache
Stored in the download cache
 Not the GAC
Not the GAC
 Per user layer “on top of” WinInet cache
Per user layer “on top of” WinInet cache
 Maintains URL for security
Maintains URL for security
 Configurable cache size
Configurable cache size
 Scavenged base on a LRU algorithm
Scavenged base on a LRU algorithm
 Application “trickles” onto the client
Application “trickles” onto the client
 Components are downloaded when
Components are downloaded when
referenced at runtime
referenced at runtime
What Is the Smart Client?
What Is the Smart Client?
Smart Client Deployment
Smart Client Deployment
MyApp.exe
MyApp.exe
Web server
Web server
Internet
Internet
Explorer
Explorer
Download
Download
cache
cache
MyApp.exe
MyApp.exe
.NET
.NET
Framework
Framework
Managed
Managed
Exe?
Exe?
HTTP
HTTP
Update
Update
cache?
cache?
Client
Client
runs
runs
app
app
Smart client
Smart client
Demonstration 1
Demonstration 1
Deploying a Smart Client
Deploying a Smart Client
Application
Application
Reviewing a simple Windows Form
Reviewing a simple Windows Form
Deploying the Windows Form
Deploying the Windows Form
application
application
Agenda
Agenda
 What is the smart client?
What is the smart client?
 Web service architecture
Web service architecture
 Web integration
Web integration
 Self-updating applications
Self-updating applications
 Advanced tools
Advanced tools
Web Service Architecture
Web Service Architecture
Smart Client Challenges
Smart Client Challenges
 Copied applications are semi-trusted
Copied applications are semi-trusted
 Think Web pages in the browser
Think Web pages in the browser
 Permission to exchange data with the
Permission to exchange data with the
server, but not for access to the local client
server, but not for access to the local client
 Strong names
Strong names
 Can be used to achieve a higher security
Can be used to achieve a higher security
level
level
 Security-based assembly signature
Security-based assembly signature
 Challenging to implement and maintain
Challenging to implement and maintain
Web Service Architecture
Web Service Architecture
Database Connectivity
Database Connectivity
 Attempting to use database connection
Attempting to use database connection
requires elevated permissions
requires elevated permissions
 Can grant permission, but that means
Can grant permission, but that means
bypassing the security model
bypassing the security model
 Web services located at the same base
Web services located at the same base
URL as the application are available
URL as the application are available
 Communicate with same site from which
Communicate with same site from which
code is acquired
code is acquired
 Use a business tier in the application to
Use a business tier in the application to
maintain overall system security
maintain overall system security
Web Service Architecture
Web Service Architecture
Web Services
Web Services
 Internet-enabled software that follows
Internet-enabled software that follows
SOAP standards of communication, and
SOAP standards of communication, and
may manage state
may manage state
 A Web service is similar to a component
A Web service is similar to a component
 Defines a specific interface for exchanging
Defines a specific interface for exchanging
request and responses
request and responses
 Web service definition language (WSDL)
Web service definition language (WSDL)
 Similar to traditional component interface
Similar to traditional component interface
definition language (IDL)
definition language (IDL)
 Describes method calls and parameters
Describes method calls and parameters
Web Service Architecture
Web Service Architecture
Basic Web Service Security
Basic Web Service Security
 Authentication is supported
Authentication is supported
 NTLM and Basic authentication are
NTLM and Basic authentication are
available
available
 Use: System.Net.NetworkCredential()
Use: System.Net.NetworkCredential()
 Authentication does not protect data
Authentication does not protect data
 Can use SSL for encryption
Can use SSL for encryption
 Modify <service>.url property to include
Modify <service>.url property to include
‘https://’
‘https://’
 Custom encryption—such as DES,
Custom encryption—such as DES,
TripleDES
TripleDES
Web Service Architecture
Web Service Architecture
Web Service Design
Web Service Design
 Consider the type of data to be returned
Consider the type of data to be returned
 DataSet is natural for .NET but not open
DataSet is natural for .NET but not open
 XML is more open but may be slower
XML is more open but may be slower
 Think of services as containing objects
Think of services as containing objects
 Initially expose objects
Initially expose objects
 Over time, business processes become
Over time, business processes become
services
services
 Several objects available via a service
Several objects available via a service
Web Service Architecture
Web Service Architecture
Managing Complexity
Managing Complexity
Business
Business
componen
componen
t
t
Business
Business
compone
compone
nt
nt
Business
Business
componen
componen
t
t
Business
Business
componen
componen
t
t
Business service
Business service
Business service
Business service
MyApp.exe
MyApp.exe
HTTP
HTTP
HTTP
HTTP
Demonstration 2
Demonstration 2
Using a Web Services
Using a Web Services
Architecture
Architecture
Updating the Windows Form to use both
Updating the Windows Form to use both
ADO.NET and Web services
ADO.NET and Web services
Issues with running ADO.NET from a
Issues with running ADO.NET from a
smart client
smart client
Agenda
Agenda
 What Is the smart client?
What Is the smart client?
 Web service architecture
Web service architecture
 Web integration
Web integration
 Self-updating applications
Self-updating applications
 Advanced tools
Advanced tools
Web Integration
Web Integration
Goal
Goal
 Replace client script languages
Replace client script languages
 Difficult to debug
Difficult to debug
 Throw unseen errors
Throw unseen errors
 Need to provide advanced UI
Need to provide advanced UI
 Users expect interactive applications
Users expect interactive applications
 ActiveX has security issues
ActiveX has security issues
 ASP.NET introduces event-based server-
ASP.NET introduces event-based server-
side logic
side logic
Web Integration
Web Integration
Extending Web Applications
Extending Web Applications
Business
Business
componen
componen
t
t
Business
Business
compone
compone
nt
nt
Business
Business
componen
componen
t
t
Business
Business
componen
componen
t
t
Business service
Business service
Business service
Business service
MyApp.exe
MyApp.exe
Internet
Internet
Explorer
Explorer
HTTP
HTTP
HTTP
HTTP
Web application
Web application
HTTP
HTTP
Web Integration
Web Integration
Enhanced User Interface
Enhanced User Interface
 Windows Forms browser controls
Windows Forms browser controls
 Contained in the Web page
Contained in the Web page
 Replace ActiveX
Replace ActiveX
 Similar TCO to URL activation
Similar TCO to URL activation
 Improved security
Improved security
 Limited system access is a plus
Limited system access is a plus
 Operate within the .NET environment
Operate within the .NET environment
 Can be synchronized with the Web
Can be synchronized with the Web
application
application
Web Integration
Web Integration
Network Communications
Network Communications
Web application
Web application
Internet
Internet
Explorer
Explorer
Windows Forms
Windows Forms
HTML:
HTML:
data and display
data and display
XML:
XML:
data only
data only
Web Integration
Web Integration
Less Network Traffic
Less Network Traffic
 Data can be cached on the client
Data can be cached on the client
 Only updated data needs to be sent to Web
Only updated data needs to be sent to Web
service
service
 Web service can be used to poll for other
Web service can be used to poll for other
updates
updates
 The UI elements are only sent once
The UI elements are only sent once
 Web applications transfer the entire page
Web applications transfer the entire page
on every round trip
on every round trip
 Windows Forms controls only need to
Windows Forms controls only need to
transfer the data
transfer the data
Demonstration 3
Demonstration 3
Using the Smart Client to
Using the Smart Client to
Complement a Web
Complement a Web
Application
Application
Examine a Web application that also
Examine a Web application that also
has a Windows Forms component
has a Windows Forms component
Keeping a Web application and
Keeping a Web application and
Windows Forms application in sync
Windows Forms application in sync
Agenda
Agenda
 What is the smart client?
What is the smart client?
 Web service architecture
Web service architecture
 Web integration
Web integration
 Self-updating applications
Self-updating applications
 Advanced tools
Advanced tools
Self-Updating Applications
Self-Updating Applications
Definition
Definition
 What it is
What it is
 A .NET assembly that can automatically
A .NET assembly that can automatically
connect to a server and download the latest
connect to a server and download the latest
components used as part of the assembly
components used as part of the assembly
 Provides a footprint on the client, but relies
Provides a footprint on the client, but relies
on server-based assemblies
on server-based assemblies
 Enabling technologies
Enabling technologies
 Application isolation
Application isolation
 .NET Framework class libraries
.NET Framework class libraries
 System.Reflection namespace
System.Reflection namespace
Self-Updating Applications
Self-Updating Applications
Assembly.LoadFrom
Assembly.LoadFrom
 System.Reflection namespace supports
System.Reflection namespace supports
loading remote assemblies
loading remote assemblies
 Use Assembly.LoadFrom()
Use Assembly.LoadFrom()
 Downloads and caches the assembly
Downloads and caches the assembly
 Automatically checks for newer versions
Automatically checks for newer versions
 Permissions based on where the assembly
Permissions based on where the assembly
came from
came from
Self-Updating Applications
Self-Updating Applications
Limitations
Limitations
 Expects connectivity
Expects connectivity
 Not an application installer
Not an application installer
 Ex… can’t register file types
Ex… can’t register file types
 Security sandboxed
Security sandboxed
 Updates only once per application run
Updates only once per application run
 On-demand download is great
On-demand download is great
 But requires careful thought on application
But requires careful thought on application
design
design
Self-Updating Applications
Self-Updating Applications
Runtime Deployment
Runtime Deployment
MyApp.exe
MyApp.exe
Web server
Web server
Download
Download
cache
cache
MyApp.exe
MyApp.exe
HTTP
HTTP
Update
Update
cache?
cache?
Smart client
Smart client
AppStub.exe
AppStub.exe
Demonstration 4
Demonstration 4
Self-Updating Applications
Self-Updating Applications
What code is needed to create a self-
What code is needed to create a self-
updating application
updating application
A self-updating application in action
A self-updating application in action
Agenda
Agenda
 What is the smart client?
What is the smart client?
 Web service architecture
Web service architecture
 Web integration
Web integration
 Self-updating applications
Self-updating applications
 Advanced tools
Advanced tools
Advanced Tools
Advanced Tools
UDDI Services
UDDI Services
 Universal Description Discovery and
Universal Description Discovery and
Integration (UDDI)
Integration (UDDI)
 Previously was published for general public
Previously was published for general public
by large providers
by large providers
 Microsoft® Windows Server™ 2003
Microsoft® Windows Server™ 2003
supports UDDI within the enterprise
supports UDDI within the enterprise
 Central server lookups
Central server lookups
 Use UDDI server to define not only where
Use UDDI server to define not only where
services exist, but where the application
services exist, but where the application
code is stored
code is stored
Advanced Tools
Advanced Tools
Web Service Extensions
Web Service Extensions
 Going beyond the basic Web services
Going beyond the basic Web services
 Security
Security
 Reliability (routing)
Reliability (routing)
 Attachments
Attachments
 Web Services Enhancements (WSE) 2.0
Web Services Enhancements (WSE) 2.0
recently released
recently released
 Provide a way to extend your Web service
Provide a way to extend your Web service
interfaces from your client
interfaces from your client
Session Summary
Session Summary
 Smart client fits the Internet model
Smart client fits the Internet model
 Can rely on HTTP/HTTPS protocol
Can rely on HTTP/HTTPS protocol
 Leverage Web services
Leverage Web services
 Improved scalability—display refresh
Improved scalability—display refresh
 Smart clients can auto-deploy and auto-
Smart clients can auto-deploy and auto-
update
update
 Launch applications from a Web site
Launch applications from a Web site
 Internet deployment with Web services
Internet deployment with Web services
 Automatically download updates
Automatically download updates
For More Information…
For More Information…
 MSDN Web site at
MSDN Web site at
 msdn.microsoft.com
msdn.microsoft.com
 Windows Forms
Windows Forms
 www.windowsforms.net
www.windowsforms.net
 Windows Forms information at:
Windows Forms information at:
 http://msdn.microsoft.com/netframework/using/
http://msdn.microsoft.com/netframework/using/
building/windows/default.aspx
building/windows/default.aspx
 White Paper on smart client development
White Paper on smart client development
with version 1.1 of the .NET Framework
with version 1.1 of the .NET Framework
 http://msdn.microsoft.com/netframework/using/
http://msdn.microsoft.com/netframework/using/
building/windows/analystreports/smartclient.aspx
building/windows/analystreports/smartclient.aspx
© 2003 Microsoft Corporation. All rights reserved.
© 2003 Microsoft Corporation. All rights reserved.
Microsoft, Windows, the Windows logo, MSDN, Visual Studio, SQL Server, MSN, Windows Server, Visual Basic, Visual C#, JScript, and Microsoft Press are either registered
Microsoft, Windows, the Windows logo, MSDN, Visual Studio, SQL Server, MSN, Windows Server, Visual Basic, Visual C#, JScript, and Microsoft Press are either registered
trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the
trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the
trademarks of their respective owners.
trademarks of their respective owners.

More Related Content

PPTX
Overview of azure microservices and the impact on integration
PPT
OWIN (Open Web Interface for .NET)
PDF
IBM MobileFirst - Hybrid Application Development with Worklight
PPTX
DODN2009 - Architecting Modern Distributed Applications
PPTX
DevLink - Architecting Modern Distributed Applications
PPT
java web services - soap and rest services
PDF
Innomatic Platform architecture overview
PPTX
CTU June 2011 - Windows Azure App Fabric
Overview of azure microservices and the impact on integration
OWIN (Open Web Interface for .NET)
IBM MobileFirst - Hybrid Application Development with Worklight
DODN2009 - Architecting Modern Distributed Applications
DevLink - Architecting Modern Distributed Applications
java web services - soap and rest services
Innomatic Platform architecture overview
CTU June 2011 - Windows Azure App Fabric

Similar to Smart Clients Deployment With Microsoft Windows Forms (20)

PDF
Simplify and Scale Enterprise Spring Apps in the Cloud | March 23, 2023
PPTX
Azure Overview Arc
PPT
WOLF presentation at OCC Bangalore Business Meet
PPTX
Presentation web basedapplication
PPT
Azure Overview Capgemini
PDF
Connect Ops and Security with Flexible Web App and API Protection
PDF
Going Mobile at a Glance - Do you need to build from scratch?
PPT
Azure Services Platform_Partner_Briefing
PPTX
Dotcom monitor platform overview
PPT
Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...
PPTX
Microsoft Windows Azure Platform Appfabric for Technical Decision Makers
PPTX
Uber's new mobile architecture
PPT
Architectural Principles for Software + Services
PPTX
App V
PPTX
Food borne human diseases
PPT
#1922 rest-push2 ap-im-v6
PPTX
Harbour IT & VMware - vForum 2010 Wrap
PPTX
Windows Azure AppFabric
PDF
apidays LIVE London 2021 - Application to API Security, drivers to the Shift ...
PDF
Web Development Presentation
Simplify and Scale Enterprise Spring Apps in the Cloud | March 23, 2023
Azure Overview Arc
WOLF presentation at OCC Bangalore Business Meet
Presentation web basedapplication
Azure Overview Capgemini
Connect Ops and Security with Flexible Web App and API Protection
Going Mobile at a Glance - Do you need to build from scratch?
Azure Services Platform_Partner_Briefing
Dotcom monitor platform overview
Mobile app development using PhoneGap - A comprehensive walkthrough - Touch T...
Microsoft Windows Azure Platform Appfabric for Technical Decision Makers
Uber's new mobile architecture
Architectural Principles for Software + Services
App V
Food borne human diseases
#1922 rest-push2 ap-im-v6
Harbour IT & VMware - vForum 2010 Wrap
Windows Azure AppFabric
apidays LIVE London 2021 - Application to API Security, drivers to the Shift ...
Web Development Presentation
Ad

Recently uploaded (20)

PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Electronic commerce courselecture one. Pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Modernizing your data center with Dell and AMD
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPT
Teaching material agriculture food technology
PPTX
Big Data Technologies - Introduction.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Approach and Philosophy of On baking technology
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
NewMind AI Monthly Chronicles - July 2025
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Dropbox Q2 2025 Financial Results & Investor Presentation
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Encapsulation_ Review paper, used for researhc scholars
Electronic commerce courselecture one. Pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Modernizing your data center with Dell and AMD
Reach Out and Touch Someone: Haptics and Empathic Computing
Teaching material agriculture food technology
Big Data Technologies - Introduction.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
The AUB Centre for AI in Media Proposal.docx
Approach and Philosophy of On baking technology
MYSQL Presentation for SQL database connectivity
Review of recent advances in non-invasive hemoglobin estimation
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
NewMind AI Monthly Chronicles - July 2025
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Ad

Smart Clients Deployment With Microsoft Windows Forms

  • 1. Smart Client Deployment Smart Client Deployment With Microsoft With Microsoft® ® Windows Windows® ® Forms Forms Ammar Abuthuraya Ammar Abuthuraya Developer & Platform Lead Developer & Platform Lead Microsoft Microsoft® ® Arabia Arabia
  • 2. What We Will Cover What We Will Cover  What is the smart client? What is the smart client?  What is no-touch deployment? What is no-touch deployment?  What are the advantages of Windows What are the advantages of Windows Forms—client caching? Forms—client caching?  Calling Web services from Windows Calling Web services from Windows Forms client applications Forms client applications
  • 3. Agenda Agenda  What is the smart client? What is the smart client?  Web service architecture Web service architecture  Web integration Web integration  Self-updating applications Self-updating applications  Advanced tools Advanced tools
  • 4. What Is the Smart Client? What Is the Smart Client? History of the Smart Client History of the Smart Client  Pre-1980’s Pre-1980’s  Computers were large server oriented Computers were large server oriented  Server-based computing—dumb terminals Server-based computing—dumb terminals  1980’s 1980’s  Dawn of the PC—first smart clients Dawn of the PC—first smart clients  ‘ ‘Fat’ client computing took center stage Fat’ client computing took center stage  1990’s 1990’s  Dawn of the Internet Dawn of the Internet  Dumb browsers talking to powerful servers Dumb browsers talking to powerful servers
  • 5. What Is the Smart Client? What Is the Smart Client? Smart Client Considerations Smart Client Considerations  System impact System impact  Will the install of application 2 break Will the install of application 2 break existing application 1? existing application 1?  Initial installation Initial installation  Installation of applications on every client Installation of applications on every client  Application update Application update  Need to updated every client with changes Need to updated every client with changes to the application to the application  Investment in current Web applications Investment in current Web applications
  • 6. What Is the Smart Client? What Is the Smart Client? Smart Client Consideration Answers Smart Client Consideration Answers  .NET applications are isolated .NET applications are isolated  Private deployment by default Private deployment by default  Applications are self-describing—no Applications are self-describing—no central registry central registry  Multiple versions of an application can Multiple versions of an application can coexist coexist  Shared components are controlled and Shared components are controlled and explicit explicit  Applications use the included assembly Applications use the included assembly versions they were built with versions they were built with  Different versions of the .NET Framework Different versions of the .NET Framework can live side-by-side can live side-by-side
  • 7. What Is the Smart Client? What Is the Smart Client? Smart Client Consideration Answers Smart Client Consideration Answers  How we can avoid sending an install to How we can avoid sending an install to each client each client  Avoid the application install altogether Avoid the application install altogether  Run the application without touching the Run the application without touching the client client  About management software About management software  Ex. SMS, Microsoft Ex. SMS, Microsoft® ® IntelliMirror™ IntelliMirror™  Can extend our reach by placing Can extend our reach by placing applications on the client applications on the client  Can also use traditional MSIs to create Can also use traditional MSIs to create installed application footprint installed application footprint
  • 8. What Is the Smart Client? What Is the Smart Client? Smart Client Consideration Answers Smart Client Consideration Answers  Automate the update of the application Automate the update of the application  Don’t need to touch client to update application Don’t need to touch client to update application  If running from a URL, nothing is installed If running from a URL, nothing is installed  What about applications with a footprint? What about applications with a footprint?  Load assemblies from a Web server Load assemblies from a Web server  Application downloads its components at runtime Application downloads its components at runtime  Update server assemblies to update Update server assemblies to update application application  No-touch application update No-touch application update
  • 9. What Is the Smart Client? What Is the Smart Client? Smart Client Consideration Answers Smart Client Consideration Answers  Existing Web applications can be Existing Web applications can be leveraged leveraged  Web services are the glue Web services are the glue  Run on the same server as browser Run on the same server as browser applications applications  Can share the context of the browser Can share the context of the browser application application  Can share the data of the browser Can share the data of the browser application application
  • 10. What Is the Smart Client? What Is the Smart Client? Smart Client Deployment Smart Client Deployment  No-touch deployment No-touch deployment  Application isolation is the default Application isolation is the default  No registration required No registration required  Deployment is simple Deployment is simple  Copy exe onto client Copy exe onto client  Run from a file share Run from a file share  Click on a link in the browser Click on a link in the browser
  • 11. What Is the Smart Client? What Is the Smart Client? Smart Client Deployment Smart Client Deployment  Stored in the download cache Stored in the download cache  Not the GAC Not the GAC  Per user layer “on top of” WinInet cache Per user layer “on top of” WinInet cache  Maintains URL for security Maintains URL for security  Configurable cache size Configurable cache size  Scavenged base on a LRU algorithm Scavenged base on a LRU algorithm  Application “trickles” onto the client Application “trickles” onto the client  Components are downloaded when Components are downloaded when referenced at runtime referenced at runtime
  • 12. What Is the Smart Client? What Is the Smart Client? Smart Client Deployment Smart Client Deployment MyApp.exe MyApp.exe Web server Web server Internet Internet Explorer Explorer Download Download cache cache MyApp.exe MyApp.exe .NET .NET Framework Framework Managed Managed Exe? Exe? HTTP HTTP Update Update cache? cache? Client Client runs runs app app Smart client Smart client
  • 13. Demonstration 1 Demonstration 1 Deploying a Smart Client Deploying a Smart Client Application Application Reviewing a simple Windows Form Reviewing a simple Windows Form Deploying the Windows Form Deploying the Windows Form application application
  • 14. Agenda Agenda  What is the smart client? What is the smart client?  Web service architecture Web service architecture  Web integration Web integration  Self-updating applications Self-updating applications  Advanced tools Advanced tools
  • 15. Web Service Architecture Web Service Architecture Smart Client Challenges Smart Client Challenges  Copied applications are semi-trusted Copied applications are semi-trusted  Think Web pages in the browser Think Web pages in the browser  Permission to exchange data with the Permission to exchange data with the server, but not for access to the local client server, but not for access to the local client  Strong names Strong names  Can be used to achieve a higher security Can be used to achieve a higher security level level  Security-based assembly signature Security-based assembly signature  Challenging to implement and maintain Challenging to implement and maintain
  • 16. Web Service Architecture Web Service Architecture Database Connectivity Database Connectivity  Attempting to use database connection Attempting to use database connection requires elevated permissions requires elevated permissions  Can grant permission, but that means Can grant permission, but that means bypassing the security model bypassing the security model  Web services located at the same base Web services located at the same base URL as the application are available URL as the application are available  Communicate with same site from which Communicate with same site from which code is acquired code is acquired  Use a business tier in the application to Use a business tier in the application to maintain overall system security maintain overall system security
  • 17. Web Service Architecture Web Service Architecture Web Services Web Services  Internet-enabled software that follows Internet-enabled software that follows SOAP standards of communication, and SOAP standards of communication, and may manage state may manage state  A Web service is similar to a component A Web service is similar to a component  Defines a specific interface for exchanging Defines a specific interface for exchanging request and responses request and responses  Web service definition language (WSDL) Web service definition language (WSDL)  Similar to traditional component interface Similar to traditional component interface definition language (IDL) definition language (IDL)  Describes method calls and parameters Describes method calls and parameters
  • 18. Web Service Architecture Web Service Architecture Basic Web Service Security Basic Web Service Security  Authentication is supported Authentication is supported  NTLM and Basic authentication are NTLM and Basic authentication are available available  Use: System.Net.NetworkCredential() Use: System.Net.NetworkCredential()  Authentication does not protect data Authentication does not protect data  Can use SSL for encryption Can use SSL for encryption  Modify <service>.url property to include Modify <service>.url property to include ‘https://’ ‘https://’  Custom encryption—such as DES, Custom encryption—such as DES, TripleDES TripleDES
  • 19. Web Service Architecture Web Service Architecture Web Service Design Web Service Design  Consider the type of data to be returned Consider the type of data to be returned  DataSet is natural for .NET but not open DataSet is natural for .NET but not open  XML is more open but may be slower XML is more open but may be slower  Think of services as containing objects Think of services as containing objects  Initially expose objects Initially expose objects  Over time, business processes become Over time, business processes become services services  Several objects available via a service Several objects available via a service
  • 20. Web Service Architecture Web Service Architecture Managing Complexity Managing Complexity Business Business componen componen t t Business Business compone compone nt nt Business Business componen componen t t Business Business componen componen t t Business service Business service Business service Business service MyApp.exe MyApp.exe HTTP HTTP HTTP HTTP
  • 21. Demonstration 2 Demonstration 2 Using a Web Services Using a Web Services Architecture Architecture Updating the Windows Form to use both Updating the Windows Form to use both ADO.NET and Web services ADO.NET and Web services Issues with running ADO.NET from a Issues with running ADO.NET from a smart client smart client
  • 22. Agenda Agenda  What Is the smart client? What Is the smart client?  Web service architecture Web service architecture  Web integration Web integration  Self-updating applications Self-updating applications  Advanced tools Advanced tools
  • 23. Web Integration Web Integration Goal Goal  Replace client script languages Replace client script languages  Difficult to debug Difficult to debug  Throw unseen errors Throw unseen errors  Need to provide advanced UI Need to provide advanced UI  Users expect interactive applications Users expect interactive applications  ActiveX has security issues ActiveX has security issues  ASP.NET introduces event-based server- ASP.NET introduces event-based server- side logic side logic
  • 24. Web Integration Web Integration Extending Web Applications Extending Web Applications Business Business componen componen t t Business Business compone compone nt nt Business Business componen componen t t Business Business componen componen t t Business service Business service Business service Business service MyApp.exe MyApp.exe Internet Internet Explorer Explorer HTTP HTTP HTTP HTTP Web application Web application HTTP HTTP
  • 25. Web Integration Web Integration Enhanced User Interface Enhanced User Interface  Windows Forms browser controls Windows Forms browser controls  Contained in the Web page Contained in the Web page  Replace ActiveX Replace ActiveX  Similar TCO to URL activation Similar TCO to URL activation  Improved security Improved security  Limited system access is a plus Limited system access is a plus  Operate within the .NET environment Operate within the .NET environment  Can be synchronized with the Web Can be synchronized with the Web application application
  • 26. Web Integration Web Integration Network Communications Network Communications Web application Web application Internet Internet Explorer Explorer Windows Forms Windows Forms HTML: HTML: data and display data and display XML: XML: data only data only
  • 27. Web Integration Web Integration Less Network Traffic Less Network Traffic  Data can be cached on the client Data can be cached on the client  Only updated data needs to be sent to Web Only updated data needs to be sent to Web service service  Web service can be used to poll for other Web service can be used to poll for other updates updates  The UI elements are only sent once The UI elements are only sent once  Web applications transfer the entire page Web applications transfer the entire page on every round trip on every round trip  Windows Forms controls only need to Windows Forms controls only need to transfer the data transfer the data
  • 28. Demonstration 3 Demonstration 3 Using the Smart Client to Using the Smart Client to Complement a Web Complement a Web Application Application Examine a Web application that also Examine a Web application that also has a Windows Forms component has a Windows Forms component Keeping a Web application and Keeping a Web application and Windows Forms application in sync Windows Forms application in sync
  • 29. Agenda Agenda  What is the smart client? What is the smart client?  Web service architecture Web service architecture  Web integration Web integration  Self-updating applications Self-updating applications  Advanced tools Advanced tools
  • 30. Self-Updating Applications Self-Updating Applications Definition Definition  What it is What it is  A .NET assembly that can automatically A .NET assembly that can automatically connect to a server and download the latest connect to a server and download the latest components used as part of the assembly components used as part of the assembly  Provides a footprint on the client, but relies Provides a footprint on the client, but relies on server-based assemblies on server-based assemblies  Enabling technologies Enabling technologies  Application isolation Application isolation  .NET Framework class libraries .NET Framework class libraries  System.Reflection namespace System.Reflection namespace
  • 31. Self-Updating Applications Self-Updating Applications Assembly.LoadFrom Assembly.LoadFrom  System.Reflection namespace supports System.Reflection namespace supports loading remote assemblies loading remote assemblies  Use Assembly.LoadFrom() Use Assembly.LoadFrom()  Downloads and caches the assembly Downloads and caches the assembly  Automatically checks for newer versions Automatically checks for newer versions  Permissions based on where the assembly Permissions based on where the assembly came from came from
  • 32. Self-Updating Applications Self-Updating Applications Limitations Limitations  Expects connectivity Expects connectivity  Not an application installer Not an application installer  Ex… can’t register file types Ex… can’t register file types  Security sandboxed Security sandboxed  Updates only once per application run Updates only once per application run  On-demand download is great On-demand download is great  But requires careful thought on application But requires careful thought on application design design
  • 33. Self-Updating Applications Self-Updating Applications Runtime Deployment Runtime Deployment MyApp.exe MyApp.exe Web server Web server Download Download cache cache MyApp.exe MyApp.exe HTTP HTTP Update Update cache? cache? Smart client Smart client AppStub.exe AppStub.exe
  • 34. Demonstration 4 Demonstration 4 Self-Updating Applications Self-Updating Applications What code is needed to create a self- What code is needed to create a self- updating application updating application A self-updating application in action A self-updating application in action
  • 35. Agenda Agenda  What is the smart client? What is the smart client?  Web service architecture Web service architecture  Web integration Web integration  Self-updating applications Self-updating applications  Advanced tools Advanced tools
  • 36. Advanced Tools Advanced Tools UDDI Services UDDI Services  Universal Description Discovery and Universal Description Discovery and Integration (UDDI) Integration (UDDI)  Previously was published for general public Previously was published for general public by large providers by large providers  Microsoft® Windows Server™ 2003 Microsoft® Windows Server™ 2003 supports UDDI within the enterprise supports UDDI within the enterprise  Central server lookups Central server lookups  Use UDDI server to define not only where Use UDDI server to define not only where services exist, but where the application services exist, but where the application code is stored code is stored
  • 37. Advanced Tools Advanced Tools Web Service Extensions Web Service Extensions  Going beyond the basic Web services Going beyond the basic Web services  Security Security  Reliability (routing) Reliability (routing)  Attachments Attachments  Web Services Enhancements (WSE) 2.0 Web Services Enhancements (WSE) 2.0 recently released recently released  Provide a way to extend your Web service Provide a way to extend your Web service interfaces from your client interfaces from your client
  • 38. Session Summary Session Summary  Smart client fits the Internet model Smart client fits the Internet model  Can rely on HTTP/HTTPS protocol Can rely on HTTP/HTTPS protocol  Leverage Web services Leverage Web services  Improved scalability—display refresh Improved scalability—display refresh  Smart clients can auto-deploy and auto- Smart clients can auto-deploy and auto- update update  Launch applications from a Web site Launch applications from a Web site  Internet deployment with Web services Internet deployment with Web services  Automatically download updates Automatically download updates
  • 39. For More Information… For More Information…  MSDN Web site at MSDN Web site at  msdn.microsoft.com msdn.microsoft.com  Windows Forms Windows Forms  www.windowsforms.net www.windowsforms.net  Windows Forms information at: Windows Forms information at:  http://msdn.microsoft.com/netframework/using/ http://msdn.microsoft.com/netframework/using/ building/windows/default.aspx building/windows/default.aspx  White Paper on smart client development White Paper on smart client development with version 1.1 of the .NET Framework with version 1.1 of the .NET Framework  http://msdn.microsoft.com/netframework/using/ http://msdn.microsoft.com/netframework/using/ building/windows/analystreports/smartclient.aspx building/windows/analystreports/smartclient.aspx
  • 40. © 2003 Microsoft Corporation. All rights reserved. © 2003 Microsoft Corporation. All rights reserved. Microsoft, Windows, the Windows logo, MSDN, Visual Studio, SQL Server, MSN, Windows Server, Visual Basic, Visual C#, JScript, and Microsoft Press are either registered Microsoft, Windows, the Windows logo, MSDN, Visual Studio, SQL Server, MSN, Windows Server, Visual Basic, Visual C#, JScript, and Microsoft Press are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. The names of actual companies and products mentioned herein may be the trademarks of their respective owners. trademarks of their respective owners.