Click here to Skip to main content
15,885,141 members
Articles / .NET
Tip/Trick

Why you should not use Clickonce deployment as your enterprise application's deployment methodology

Rate me:
Please Sign up or sign in to vote.
3.92/5 (9 votes)
2 Oct 2012CPOL1 min read 39.3K   6   7
Why you should not use Clickonce deployment as your enterprise application's deployment methodology (especially for banks and securities companies).

Introduction

If you decide to build your enterprise applications through .NET, may be the deployment strategy is one of the most important jobs in your whole project. Failure of the deployment strategy may result in lower customer satisfaction and also increase maintenance costs. Through my experience of building enterprise applications for banks and securities companies, I'll suggest four very clear reasons why you should not use Clickonce as your deployment strategy for your enterprise applications.

Three reasons why you should not choose Clickonce

Reason 1. Clickonce does not support proxy networks

If your customer company uses proxy servers for their network security and if your application is deployed under Clickonce technology, simply, your application doesn't get deployed under the proxy network.

And also I found that almost every bank and securities company uses a proxy network (HSBC, City Bank, Goldman Sachs.. and so on..). So if your clients are companies like that, just don't try to use Clickonce deployment because it does not work at all (there is a way to run Clickonce under a proxy network, if you have the power to order every customer to fix the settings of the machine.config file which is located very deep inside the Windows folder).

Reason 2. Assembly verification time is too long

Even though your application has a moderate number of assemblies, your clients should wait more than minutes to be deployed.

Reason 3. Customization is not allowed.

If you have more than 50 assemblies to be deployed, a financial company's network security device may disconnect your deployment process forcibly with sync flooding failure. Even though you know the cause of that failure, you can not GZip your assemblies into lesser than five physical files because Clickonce does not support doing that.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Architect Korea Securities Depository
Korea (Republic of) Korea (Republic of)
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
BugClickonce is buggy Pin
einsteinsci23-Jul-14 8:22
einsteinsci23-Jul-14 8:22 
QuestionInteresting But Not Objective Pin
GrantAnderson8-Oct-12 10:49
GrantAnderson8-Oct-12 10:49 
Interesting article post but not objective or balanced.

I haven't been in a corporation yet where ClickOnce does not work. Two were financial organizations but not banks. So it is possible that it does not work on a proxy network but this would not limit it for the majority of non-bank organization (which are many). So that is a good warning but only a valid reason if it does not work in your organization/corporation.
Dwipayan Das' post about it working in .NET 3.5+ could/should be verified by other users here.

Reason 2 - It's not long to wait for assembly verification. I've built and deployed a complex application and the wait was never minutes. Just how big is this application where one has to wait minutes?

Reason 3 - Yes, customization is limited with ClickOnce and deployment is overly complex but it is very, very usable. You can even just use it for a "bootstrapper" install where you install a stub program with ClickOnce that brings down the full main program from a server or even modules of the app as they are needed (install on demand).

What is overlooked by the author is the big advantages of ClickOnce:

1. You can write WinForms apps instead of WebForms apps. Which can be 5-7 times faster to develop for complex apps. This is a MAJOR advantage that few people realize.

2. WinForms is a mature technology while web technology is still trying to fully emulate. If your program is moderately to highly complex it's much easier to build a WinForms ClickOnce version that works wonderfully well instead of struggling with all the UI workarounds needed for WebForms implementations.

3. Internally used apps do not have to be web apps in order to be deployed and updated via web server. ClickOnce works fine.

4. "Legacy" WinForms applications do not have to be ported to WebForms. Just set them up to install and run with auto updating via ClickOnce.

Really, ClickOnce is a highly useful, very overlooked technology that provides great "force multiplication" in the enterprise.

If the author could post his "launcher software which replace clickone" that would be nice to review as an alternative.

Thanks to the author for this article.

- Grant
C. Grant Anderson

QuestionIts False Pin
Dwipayan Das6-Jul-12 8:07
Dwipayan Das6-Jul-12 8:07 
GeneralTried it, used Inno instead Pin
brother.gabriel27-Apr-12 5:47
brother.gabriel27-Apr-12 5:47 
QuestionMore reasons Pin
cemal tapan24-Apr-12 1:18
cemal tapan24-Apr-12 1:18 
QuestionWhat is your alternative solution? Pin
Bong Lee23-Apr-12 16:07
Bong Lee23-Apr-12 16:07 
AnswerRe: What is your alternative solution? Pin
Jin Kwang Hwang23-Apr-12 16:46
Jin Kwang Hwang23-Apr-12 16:46 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.