Delphi adalah bahasa program yang sangat powerfull dalam membuat aplikasi berbasis desktop ataupun client server.
Kelemahan program berbasis desktop adalah tidak bisa otomatis update. Mungkin bisa diupdate sebagian jika programnya menggunakan modul-modul. Tapi jika menggunakan single exe, otomatis harus diupdate secara keseluruhan.
Di artikel ini dibahas cara membuat program update menggunakan Delphi. Jadi programmer tidak perlu mengkopi ulang ke komputer user satu persatu. User juga tidak perlu mengambil dari Flash disk atau email lalu dikopikan ke folder tertentu, dimana program Exe tersebut berada. Jadi pada saat ada updatetan baru, Programmer meletakan Exe hasil kompilasi di hosting web. Di Program ada menu update, tinggal klik saja Program akan otomatis mengupdate sendiri. Jika ada updatetan baru pun User otomatis akan tau, yaitu pada saat membuka program ada Pesan bahwa User harus mengupdate programnya atau sekedar menyarankan untuk update program
Metode teknisnya yang digunakan disini adalah menggunakan 2 file exe, disini dicontohkan ada program Utama.exe dan Update.exe
1. Pada program Utama.exe dibuat menu update yang akan mengeksekusi Update.exe dan mengklose Utama.exe
2. Program update Exe akan mengambil file update tan yang diletakan di web tempat situs kita atau hosting kita dan mengkopi ke folder temp
3. Program update Exe akan mengkopi Utama.exe yang baru dan mengkopikannya ke program asli Utama.exe, jadi Utama exe yang lama ditimpa
4. Update selesai, diberi sortcut untuk kembali membuka program Utama.exe.
Source code pada form Utama, menu Update adalah sbb
ShellExecute(0,'open','update.exe','','',SW_NORMAL);
Source code pada program Update, tombol update adalah sbb
if not KillApp('Utama') then
begin
ShowMessage('Update Gagal, karena program Utama tidak dapat diclose, silahkan program
Utama diclose secara manual') ;
exit;
end
else
begin
internetFile := 'http://contohupdate.com/Utama.exe';
localFileName := 'C:\Program Files\Example\Utama.exe';
if GetInetFile(internetFile, localFileName) then
begin
ShowMessage('Update Berhasil');
ShellExecute(0,'open','Utama.exe','','',SW_MAXIMIZE);
Application.Terminate;
end
else
ShowMessage('Update Gagal, karena tidak berhasil download file Utama dari Server') ;
close;
end;
Source code pada form Utama, menu Update adalah sbb
ShellExecute(0,'open','update.exe','','',SW_NORMAL);
Source code pada program Update, tombol update adalah sbb
if not KillApp('Utama') then
begin
ShowMessage('Update Gagal, karena program Utama tidak dapat diclose, silahkan program
Utama diclose secara manual') ;
exit;
end
else
begin
internetFile := 'http://contohupdate.com/Utama.exe';
localFileName := 'C:\Program Files\Example\Utama.exe';
if GetInetFile(internetFile, localFileName) then
begin
ShowMessage('Update Berhasil');
ShellExecute(0,'open','Utama.exe','','',SW_MAXIMIZE);
Application.Terminate;
end
else
ShowMessage('Update Gagal, karena tidak berhasil download file Utama dari Server') ;
close;
end;
function KillApp(const sCapt: PChar) : boolean;
var AppHandle:THandle;
begin
AppHandle:=FindWindow(Nil, sCapt) ;
Result:=PostMessage(AppHandle, WM_QUIT, 0, 0) ;
end;
User merasa lebih nyaman dengan cara update seperti ini dibanding dia harus mengkopi-kopi file dari email atau langsung dari ftp.
Cara tersebut juga bisa dikembangkan menjadi auto update, jadi memaksa user untuk mengupdate atau update otomatis jika ada upgrade version
Trik nya Program akan selalu mengecek update tan terakhir dulu via database, misalnya ada table lastversion, disitu diisikan versi terakhir dan setiap program kita release, lalu kita taruh konstanta yang merupakan versi di dalam program, konstanta versi tersebut dibanding dengan data last version, jika lebih tinggi lastversion maka munculkan dialog untuk update
salam
Trik nya Program akan selalu mengecek update tan terakhir dulu via database, misalnya ada table lastversion, disitu diisikan versi terakhir dan setiap program kita release, lalu kita taruh konstanta yang merupakan versi di dalam program, konstanta versi tersebut dibanding dengan data last version, jika lebih tinggi lastversion maka munculkan dialog untuk update
salam
7 komentar:
GetInetFile(internetFile, localFileName) => ini fungsi apa? juga ga ada di artikel..
tulisane ga jelas mas...
lebiha baik di tambah source code buat latihan, kasih ilmu jangan setengah setengah... males bacanya..
tambah lagi...
coba buka link dibawah ini :
http://delphi.about.com/od/internetintranet/a/get_file_net.htm
lebih lengkap kaya nya bosss...
Saya minta maaf yah, sebelumnya
GetInetFile(internetFile, localFileName) adalah mengambil file dari ftp server. Jadi file updatetan kita letakan pada ftp server, pada saat klik update maka function GetInetFile(internetFile, localFileName)yang digunakan untuk mengkopi dari ftp server ke komputer kita
iya buat table dulu namanya bebas, itu yang mau kita backup
kalau misalnya update pake jaringan lokal gimana mas? jadi file (.exe baru) di taruh di server lokal... kemudian ke pc client lewat LAN. mohon pencerahanya
Mas Youga : Silakan dibuat file sharing aja mas, jadi diserver file aplikasinya disharingkan, terus diclient tinggal dikonfigurasi, file aplikasi tersebut kalau sudah terbaca, tinggal dibuatkan sortcut ke desktop.
Kalau untuk skala LAN yang besar, file sharingnya direkomendasikan pakai linux yaitu samba, lebih stabil dan tahan virus, aplikasi juga bisa diupdate, walaupun user sedang menggunakannya
ada satu teknik lagi mas, untuk implementasi di WAN, yaitu dengan cloud, silakan dibaca link http://www.delphindo.com/search/label/Cloud%20Application%20dengan%20Delphi
cara cek versinya gmn bang ??
Posting Komentar