AutoUpdate dengan Squirrel.Windows

Soeleman 26 Agustus 2017

AutoUpdate dengan Squirrel.Windows

Auto-update untuk sebuah aplikasi desktop moderen adalah sebuah fitur yang diperlukan. Dalam .NET, kita biasa mengenal fitur ini ada di ClickOnce. Sayangnya ClickOnce tidak semudah seperti yang dibayangkan dan fitur ini sepertinya terabaikan oleh microsoft. Untuk menjawab keperluan ini maka muncul project Squirrel.Windows.

Squirrel.Windows ini menggunakan NuGet sebagai bagian dari system-update-nya. Meng-update aplikasi seperti layaknya meng-update package di NuGet saja. Ini mirip dengan Chocolatey, bedanya ini untuk individual installer.

alt text

Desktop aplikasi seharusnya cepat dan mudah di-install. XCopy dalam .NET belum cukup mudah untuk installer. Developer dapat dengan mudah membuat installer dan meng-update tanpa perlu process yang panjang. Beberapa point mengapa kita mengunakan Squirrel.Windows ini.

Instalasi

  • Bukan hanya .Net aplikasi saja, untuk aplikasi lainnya juga bisa. Contoh-nya Atom
  • Instalasi yang sederhana, tanpa perlu Wizard dan terlihat kaku
  • No UAC message-box, yang berarti kita bisa meng-install aplikasi dengan local user account
  • Uninstall yang bersih
  • Tidak perlu Reboot
  • Dapat meng-install juga .NET apabila di perlukan

Update

  • Update dapat dilakukan pada saat aplikasi berjalan.
  • Ada opsi yang bisa memaksa user untuk berhenti menggunakan aplikasi untuk process update
  • Sekali lagi tidak perlu Reboot
  • Adanya API untuk log dari process ini

Production

  • Mudah membuat installer untuk .NET aplikasi
  • Hosting update server, hanya diperlukan Http server
  • Membuat update aplikasi dapat dilakukan dengan mudah
  • Dimungkinkan untuk membuat banyak versi, seperti chrome Dev/Beta/Release

Squirrel.Windows akan banyak membantu dalam pendistribusian aplikasi, baik instalasi maupun update. Update aplikasi mudah tanpa banyak process pada penguna aplikasi.

Referensi

Perhatian! Code yang ditampilkan dalam tulisan ini merupakan ilustrasi dari yang ingin dipaparkan dan bukan production ready code. Sudah banyak kejadian karena asal meng-copy-and-paste tanpa mengerti code yang diambil itu ke dalam production. Selain itu perlu ada tambahan code dan test sebelum siap untuk digunakan secara utuh.