Tuesday, January 13, 2009
Auto Update application
A very common problem for desktop application programmers is the method of upgrading/installing new versions of our applications, when you have, say 10 customers with 5 PC's running your apps and you add a new feature, you have to upgrade 50 computers!, a real pain.
Last week, I was thinking of a method to solve that problem, and taught the way should be to move my applications to the web with IntraWeb or something similar, but after a couple of tests I came to the conclusion that my applications (specially the Medical applications) can't run on a web browser, as they use many technologies very tied to the underlying operating system (multimedia recording cames to my mind). Then I dreamed about creating something like a browser for desktop applications, who connects to a server via Http then the server responds to events requested by the client to draw the dialogs and forms, that way, the client is allways up to date, just like the web pages we look every day. I made a couple of examples, but it turned out to be a very complicated task.
After my failed attempt, I started to look for someone's else's work and found a couple of similar projects for Object Pascal, they are MseIfi (from the author of MseIde/MseGui) and RTC WAC (from RealThinClient), very promising, but both are in its early alpha stages of development.
Then, I went for XUL (Mozilla's rendering engine) and Adobe AIR, but I didn't like them because they are very complicated to program (lots of hand made XML/JavaScript) and too slow to compile/run, at least tha't was my impression compared to native Delphi programs.
Well, let's see...My desktop apps run very well, and my customers love them. Why should I start using a different technology just because I found a stone in my way?. The solution was ages simplier than re-programming the whole thing, just include an Auto Update mechanism!.
TAutoUpdate was born
The AutoUpdate mechanism needed was easy to create, I made a class I called TAutoUpdate, now implemented it in my currently running systems, and It works really neat!. Because of that, I wanted to share with anyone interested and created a new Google Code project for that matter.
If you like it, or have any suggestion, please don't hesitate to share with me and the community around TAutoUpdate.
Again, the link is this: http://code.google.com/p/tautoupdate/
Last week, I was thinking of a method to solve that problem, and taught the way should be to move my applications to the web with IntraWeb or something similar, but after a couple of tests I came to the conclusion that my applications (specially the Medical applications) can't run on a web browser, as they use many technologies very tied to the underlying operating system (multimedia recording cames to my mind). Then I dreamed about creating something like a browser for desktop applications, who connects to a server via Http then the server responds to events requested by the client to draw the dialogs and forms, that way, the client is allways up to date, just like the web pages we look every day. I made a couple of examples, but it turned out to be a very complicated task.
After my failed attempt, I started to look for someone's else's work and found a couple of similar projects for Object Pascal, they are MseIfi (from the author of MseIde/MseGui) and RTC WAC (from RealThinClient), very promising, but both are in its early alpha stages of development.
Then, I went for XUL (Mozilla's rendering engine) and Adobe AIR, but I didn't like them because they are very complicated to program (lots of hand made XML/JavaScript) and too slow to compile/run, at least tha't was my impression compared to native Delphi programs.
Well, let's see...My desktop apps run very well, and my customers love them. Why should I start using a different technology just because I found a stone in my way?. The solution was ages simplier than re-programming the whole thing, just include an Auto Update mechanism!.
TAutoUpdate was born
The AutoUpdate mechanism needed was easy to create, I made a class I called TAutoUpdate, now implemented it in my currently running systems, and It works really neat!. Because of that, I wanted to share with anyone interested and created a new Google Code project for that matter.
If you like it, or have any suggestion, please don't hesitate to share with me and the community around TAutoUpdate.
Again, the link is this: http://code.google.com/p/tautoupdate/