DEV325
Deploying Visual Studio .NET Applications
Billy HollisAuthor / Consultant
Agenda
Summary of deployment improvements in .NET
Deployment projects for web-based systems
Deployment choices for client systems
How to choose the right deployment option for client systems
Dynamic Properties
Deploying to the Global Application Cache (GAC)
What we will not talk about
Installing the .NET FrameworkSee session DEV396 – “Microsoft Windows Forms No-Touch Deployment Tips and Tricks”, Thursday, 11:45-13:00
For the remainder of this session, we will assume the .NET Framework is installed on all target systems
Details of no-touch deploymentDEV395 yesterday covered this
Deployment Improvements in .NET
No registration means “copy and run”
Side-by-side eliminates DLL Hell
Built in capabilities to assist in deploymentDeployment projects in Visual Studio
Configuration files and dynamic properties
“No-touch” Internet deployment
ServerServer
Demo App Architecture
WebWebServiceServiceASP.NETASP.NET
DatabaseDatabase(SQL 2000)(SQL 2000)
ClientClient
WinformWinformClientClientVB.NETVB.NET
COMCOMVB6VB6
Deployment Projects for Web-Based Systems
Best option for most server-based systems with web component is a “Web Setup Project” in the “Setup and Deployment Projects” folder
Appropriate for ASP.NET Web Forms and Web Services
Deployment Project for Demo App Server Elements
demodemo
Deployment Choices for Client Systems
Copy and runRun from read-only media (CDROM, DVD)Shared network drive“No-touch” deployment over the InternetDeployment projectApplication Updater blocksCustom solution
Copy and Run Deployment
“Just like DOS”
“Zero-impact” if done properlyUninstall by deleting directory
Suitable for small, simple, static applications
May be a part of a more complex deployment
No security restrictions
Read-Only Media
Run straight from read-only mediaCDROMDVD
Useful for data-browsing programsPlace program on CD with dataNo separate install necessaryCan just Autorun the program
No security restrictions
Deploy from Shared Network Drive
Simple – easy to manageJust update files and assemblies in one place
Appropriate for some smart-client corporate applications
Security sandboxLimitations on web access, windowing, printing
Suitable for applications that are:Relatively small
Widely used, but not heavily used
Internet deployment
Also called “No touch” deployment
Many security limitations
Must download modules every time they are executed to check version
Does not handle anything except assemblies (e.g. configuration files)
Suitable only for very simple applications
Limitations for Internet Deployment – the ChalkTalk program
demodemo
Modifying Security Policy
Both shared network drive and Internet deployment scenarios
Change security policy with configuration tool in Control Panel
Can package and distribute security policy in MSI file
More details in session DEV396
Changing and deploying security policy
demodemo
Deployment Projects for Smart Clients
Replaces “Setup Wizard” in VB6
Creates MSI file
Similar to web setup project shown earlier
Brief demonstration
Application Updater Blocks
Allow dynamic updating of client applications from deployment directory on server
Details in DEV396
Good replacement for no-touch deployment for more complex applications
Custom deployment solutions
Not hard to createTypically include:
Deployment directory on serverCapability to check for new versionsAutomatic download of new versions once detected (file copy / FTP / etc.)Configurability to different groups of users
Suitable for complex applications and custom situationsAn example is available on my web site
Dynamic Properties
Useful way to customize settings for client applications
Visual Studio IDE makes it easy
Settings stored in application configuration file
Dynamic Properties
demodemo
Deploying to the Global Application Cache
Only do it if you really need to
Shared assemblies
Assemblies must have strong name
Installing to GAC does not make assembly show up in Visual Studio References dialog
That takes a separate step
Deploying to the Global Application Cache
demodemo
Summary
Decide on deployment early in the development cycle
Choose deployment option based on the type of application you have
Become familiar with the options available
Don’t be afraid to write a custom deployment solution
Ask The ExpertsGet Your Questions Answered
Billy will be in the Ask the Experts booth Wednesday afternoon from 2:00 to 4:00
Community Resources
Community Resourceshttp://www.microsoft.com/communities/default.mspx
Most Valuable Professional (MVP)http://www.mvp.support.microsoft.com/
NewsgroupsConverse online with Microsoft Newsgroups, including Worldwidehttp://www.microsoft.com/communities/newsgroups/default.mspx
User GroupsMeet and learn with your peershttp://www.microsoft.com/communities/usergroups/default.mspx
Billy’s Web Sitehttp://www.dotnetmasters.com
evaluationsevaluations
SOFTWARE LEGENDSOFTWARE LEGENDBilly HollisBilly Hollis
THURSDAY 3rd JULY at 16.15-16.45 hrs
Meet the AuthorsMeet the Authors Book signingBook signing
© 2003 Microsoft Corporation. All rights reserved.© 2003 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.