I have an install4j's v7 project, with downloadable components.
Our clients are on rural areas with poor internet connection, with intermittent connections.
After the connection is lost, the user has to retry and the component is downloaded from the start every time, it doesn't download only the remaining bytes, as a browser does.
Is there a way to configure resumable downloads for a downloadable component?
Currently we publish both online and full versions of our installers, with all the downloadable components already present, as the browser resumes OK the download of such full installers.
As of 9.0.5, this is not a feature that is supported by install4j. I have added this to our issue tracker.
Related
I want to run a third-party application from gwt for manipulating a local file and after this send file to server. I released the feature for uploading and sending file to server, but between these steps I want to change something in this file (with 3-rd party application installed on client machine). The main problem is that the applet cannot be used because nor Chrome, nor Mozilla do not support it. Are there some examples of other tools and technologies to do this?
The FileReader and FileWriter api can be used to work with local files. I think the htmt5rocks has a good example of how this can be done with javascript. These processes can be used with GWT elemental FileReader and Writer. I've added links to the javadoc below.
http://www.html5rocks.com/en/tutorials/file/dndfiles/
http://docs.sencha.com/gxt/4.x/javadoc/gwt-2.7.0/index.html?elemental/html/FileReader.html
http://docs.sencha.com/gxt/4.x/javadoc/gwt-2.7.0/index.html?elemental/html/FileWriter.html
Answer is simple: GWT is client-side technology. You cannot run 3rd party application installed on client side, access local drive files or so.
If you want to change some local file fromt GWT application, then you need to expose Java Applet, do operation on server side and then process it.
Why are you saying Firefox and Chrome don't support it?
For Windows (7/8/10) platform I am looking for an open source application upgrade library where it downloads the installer in the background and when it is complete triggers a fresh install procedure preferably completely in the background.
Skype, Chrome etc. does this type of thing to keep their apps up to date without any user interaction. I looked around but couldn't find a readily available library I can integrate with my application.
I work in a service organization where users of our internal tools are often disconnected. It is often the case that service engineers on service assignments are "stranded" with an outdated version of some internal tool.
These tools are deployed using ClickOnce publish VS2010 .NET4 . If the users run all their apps while still connected to corporate network, they would get a notification that a new version was available. As the number of various tools increase, the chance increases that some app is not updated.
Is it possible to automate this process, by a batch file or something?
So that the engineers just need to run one file when connected to corporate nw to get all the newest versions of their installed tools?
Added:
An easier way of saying it would be to have "something like Windows update" operating on corporate net, but for internal ClickOnce apps.
Very interesting question. I can't think of a quick way to do this, but it's definitely possible.
I would create another ClickOnce app whose job is to update the other ClickOnce apps. This app needs the url of each app's .application file. If all engineers are supposed to have all apps, that's easy. If not, maybe you could look through their start menu and find all the ClickOnce Application Reference files. Those files contain the url.
Next, just launch the url and pass a query string argument...
http://server/MyApp/MyApp.application?UpdateOnly=true
In the startup of your applications, you can check the query string argument and shut down the app if it's run with UpdateOnly=true.
One side note. If you set the minimum required version of each of your apps to the latest version, users won't get prompted with the new version dialog. Seems like you'd want to do that or the user would still have to pay attention and do a lot of clicking.
We will be embarking on an Application developement project (.NET 3.5) for a large organization. As we started thinking about the upgrades we would be giving across the machines, we are looking at options like ClickOnce.
What we need is a push model, as long as the client machine is connected to the network, the server can send updates. I believe ClickOnce is a pull model(although by specifying minimum version we can kind of push). Also ClickOnce downloads complete files only, it cannot download the change (byte difference) among the files.
Can anyone point me to a better tool that can be used here. Also better strategies, if any, are welcome, we are in a very early stage of the project.
I don't have a definitive answer on better options, but I've used ClickOnce and can offer some advice.
There are several update options with ClickOnce (before starting, after starting, check every time, check every X Hours/Days/Weeks, etc). You can also throw those out and write code to check for updates. It's not a "push" from the server, but your client could poll for updates which would be the next best thing. Just remember, the application is going to have to restart after the update to see changes.
ClickOnce only downloads changed files. However, the progress dialog always shows the entire size of the application even if it's only downloading a single file. Everyone worries about that, but it's just a bug with the progress dialog.
Finally, I'm a big fan of keeping it simple. It's really easy to over-think these things and create a monstrosity that was never needed. We went through something similar at my company. We were so worried about users downloading unnecessary bytes, we broke our apps up into more, smaller assemblies. It turned into a nightmare; apps were harder to maintain and performed worse on the client. We finally undid it all and wasted weeks just to end up where we started.
I'm not saying you don't need the features you're asking for, I don't know your scenario. Just educate yourself first and know what you're getting yourself into.
We use clickonce at my company (about few hundred users for the app geographically dispersed). By specifying the minimum version we can make sure that every app installation gets updated after deployment automatically. You are right that clickonce downloads full files only but only files that have changed since previous version. If that is still a concern you can break your application into more smaller assemblies. I think you can also use netmodules but then Visual Studio has not built in support for that.
In general clickonce has worked good for us.
I am just in the process of implementing such a service on top of my distributed application platform. In essence I have developed a "push" model for corporates that follows these basic principles:
Software upgrades are "managed" from the server, NOT from the client, which is in line with the deployment of corporate software as opposed to user software (this is a very important point)
Software upgrades can be customised per client application on the server, i.e. the server can deploy unique configurations to every client if required
Software upgrades can be deployed to clients at different times, or all at the same time, or any combination of the two
The software upgrade version can be specified per client, i.e. different versions can be deployed to different clients as required
All software upgrades for all clients can be "managed" from a single server, i.e. the software upgrading "service" is consistent across any application, and all applications can utilise the software upgrading "service"
Clients can implement a software upgrade policy of automatic (application restarts as soon as the upgrade has been downloaded and available at the client), manual (application needs to be "sent" a custom "force upgrade"
message"), or on restart (application upgrades on shutdown if an upgrade has been downloaded and is available)
All auto-upgrading functionality is transparent to any running applications as this is all performed in autonomous background threads and all inter-process communication and file transfer is handled by my framework
In essence this now allows me (or will allow me when I have tidied a few things up and thoroughly tested the implementation) to manage the version of any application developed by me from a central server after it has been initially installed, without any client intervention.
I'm looking for a web solution that will provide a web page/application that will let a user download our installer exe (all required files are contained in the exe) such that they can pause the download and resume it at any time.
It's a 1.4 GB file, and currently our only distribution model (we are on a 0 budget).
Any advice? Our end-users are expected to be very computer illiterate. Expected to be able to visit a webpage and follow a few steps.
Do you also need a hosting solution? For that part I don't know, but you could check out Free Download Manager. It supports resuming downloads, and it's open source - GNU General Public License.