MercanSoftYazılım Teknolojileri Günlüğü
01 Kas 2019

Uygulamamızın Güncellemesini uzaktan yapmak

Evet çok nadirde olsa bu tür uzaktan güncelleme olayları kullanılıyor bende buna deyinmek isterdim bu makalede öncelikle bize gerekli olanları aşağıda listeleyelim.

  • Güncelleme yapacağımız ana projenin bilgisayarda sabit bir yerde kurulu olması (İnstall edilmesi yani )
  • Güncelleme yapacağımız 2. bir programın bu kök dizinde olması
  • Güncellemeyi kontrol edeceğimiz xml dosyamızın olması ve bunu barındıracak bir sunucumuzun olması
  • Güncelleme yayınlayıp bu güncelleme mesajlarını her açılışta kontrol edip yeni güncellemelerde işlem yapacağımız bir giriş ekranı

Kısaca adımlarımız bunlar.
Ben şuanda son 5-6 güncelleme işlemimi bu yöntem ile yapıyorum ve gayet güzel,stabil ve verimli çalışıyor. Ekstradan bu güncelleme içerisinde tek bir exe’yi güncelleyebilir hatta exe’nin yanında dizine atmak istediğiniz tüm dosyaları da yükleyebilirsiniz.

Tüm bu işlemlerin doğru çalışması için lütfen
Ionic zip kurulumu yapınız (Aşağıda anlattım ) ve

using Ionic.Zip;
using System.Xml;
using System.Net; Kütüphanelerini programınıza ekleyin. !!

Otomatik güncellemeyi sorgulayıp indireceğimiz bir ufak programcık hazırlıyoruz. Fotoğrafta gördüğünüz tasarım basit,kolay ve orta derece şıklıkta.

Peki bu sorgulamayı yapacağımız update.xml dosyamız nasıl olacak

Yukarıda bulunan update.xml dosyamızın içeriğidir. <about> </about> etiketlerinin arasına yazdığınız her şey otomatik olarak güncelleme notlarında yazacaktır.

Bu fotoğrafta güncelleme programı açıldığında sunucuda bulunan xml dosyamızı okuyor ve yeni versiyonda programa eklediğimiz özelikleri bilgilendirmek için ana ekranda bulunan güncelleme notları kısmına atıyorum (label2). Burada asıl amaç programın eksiklerini ve yeniliklerini kullanıcıya bilgilendirip kullanmasını sağlamak. Bu bilgiyi getirdikten sonra artık program güncellemeyi indirip çalıştırmak için hazır.

Bu fotoğrafta ki kod ile GÜNCELLEMEYİ BAŞLAT dediğimiz anda sunucuda ki zip dosyamızı indiriyor ve bu zip dosyasının içindeki dosyaları programımızın kurulu olduğu yere ( benim tüm setuplarım standart olarak C’ye kuruluyor o yüzden bu şekilde kullanıyorum siz application.Startpath kullanabilirsiniz.) dosyaları çıkartıyor. Bazen burada windowstan kaynaklanan yetkilendirme hatası alabilirsiniz bunun için program kurulu olan dizine kullanıcı için tüm yetkileri vermenizi tavsiye ederim.

ZİP dosyasını çıkartmak için Nuget Managment’dan Ionic.Zip kütüphanesini indirip kuruyoruz.

Yukarıda bulunan kod ile indirdiğimiz zip dosyasının yolunu göstererek içindeki elemanları foreach ile dolaşıp bunları dışarı çıkartıyoruz.

Aslında bizim çoğu işimizi yapan kod kısmı burasıdır. Bu kodda ana programımızın versiyonunu sunucuda bulunan xml dosyasında ki versiyon numarası ile karşılaştırıp eşit değil ise güncelleme programını başlatmasını ve kendisini kapatmasını sağlıyoruz. Kendisini kapatmadan önce ben son kullanıcıda sorun yaşamamak için Settings.settings (ayarlar dosyasına) versiyon numarasını kayıt ediyorum. Ve güncelleme işlemini başlatmak için programın kurulu olduğu dizindeki güncelleme programını başlatıyorum. Aslında ben bu işlemleri daha zor bekliyordum ki değilmiş. Sadece biraz araştırıp yabancı kaynaklardan bulduklarımı kendime göre harmanladım ve ortaya bu tarz bir şey çıktı. Belki sizler için çok amatör kaçabilir veya cidden amatördür ama şuanda benim işimi çözüyor ve yarıyor bu yöntem ile yeni bir güncelleme ile karşıya yaklaşık 1 gb büyüklüğünde dosya gönderimi yaptım (3500 pdf) ve sorunsuz çalışıyor.

 

NOT – EĞER YENİ BİR GÜNCELLEME YAYINLAYACAKSANIZ YAPMANIZ GEREKEN TEK ŞEY PROGRAMINIZIN EXE DOSYASINI ZİP YAPIP SUNUCUYA ATMAK VE DAHA SONRA SUNUCUDA BULUNAN XML DOSYASINDA Kİ VERSİYON KISMINI DEĞİŞTİRMENİZ ÖRNEĞİN 1.1.1.1 OLAN VERSİYONU YENİ EXE İÇİN 1.1.1.2 YAPARSANIZ OTOMATİK OLARAK GÜNCELLEME BAŞLAYACAKTIR.

Programlama Leave a comment

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir