Jon Udell's interview with MS David Treadwell
Jon has a short
interview with David Treadwell interview
Jon ask's "Why wasn’t No-Touch Deployment more successful, and how will ClickOnce correct that?" Treadwell: No-Touch Deployment was shaky. It didn’t have the infrastructure to do auto-updates. You want to be able to install in a low-impact manner without changing the machine configuration. And when you’re cached on the machine, you want to check for updates and refresh that cache automatically. The infrastructure wasn’t quite there yet; ClickOnce, in Whidbey, will be better.
Its funny, I think David misses much of the point. The caching features of No-Touch Deployment (NTD) work well enough. Click Once will be useful, but there are many other issues dealing with NTD apps. My impression is that MS didn't dog-food enough NTD.
I think there are a few key areas that need work:
- When the smart client is launched from a web page and you have a config file, then you can't have CGI style command line arguments (app.exe?param:value). Because IE will ask for app.exe?param:value.config instead or app.exe.config. Chris Sells proposes a solution Launching No-Touch Deployment Applications with Command Line Argument that requires server side code to resolve "app.exe?param:value.config" back down to app.exe.config. Unfortunately, that doesn't work if you can't install code on customer's server. Nor is it appealing to have to write 3 versions of this solution, ASP.NET, ASP and Perl/Python to support Apache
- Lack of documentation and tutorials. We need two tutorials:
a) A complete tutorial that shows a multiple assembly application, being deployed as an embedded application (via an OBJECT tag) aka a follow-up to the Windows Forms Tutorial
b) Another tutorial detailing a multiple assembly application, being deployed as a rich client using no-touch install aka a follow-up to Chris Sells NET Zero Deployment Security and Versioning Models in the Windows Forms Engine Help You Create and Deploy Smart Clients.
Both tutorials should demonstrate:
- strongly naming all assemblies
- use of cab files
- use of config files as required
- use of features that require permissions
- how to assert permissions and what will happen if we try to use dll with
minimum permission requirements
- how to debug when the application/control fails to load.
- fuslogvw
- IIS logs
- other facilities when these don't cover everything
- warnings about interactions with ASP .NET (i.e. config files not being downloaded)
- describe the warts/pitfalls the author finds in implementing this
In addition the winforms tutorial should cover:
- sharing data between two components on the same page
- A deployment newsgroup on microsoft.public
- Cab files supported as first class components. So that the fusion.dll looks for them and they can contain multiple assemblies. (This is the main reason we needed a config file)
If you want to see a no touch deployment application in action, see my posting: First Commercial .NET No Touch Deployment application