masaüstü etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
masaüstü etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

25 Ocak 2013 Cuma

C# ile masa üstü programınıza otomatik güncelleme özelliği eklemek


.net framework kullanarak (C#) yazdığım masa üstü yazılımlardan birine otomatik güncelleme özelliği eklemek istiyordum. Bu sebeple yaptığım çalışma gayet verimli oldu. Bende bu çalışmanın aşamalarını paylaşarak masa üstü program geliştiricilerin işine yarayacağını düşündüm. Bu bir ders veya konu anlatımı değil, sadece izlemeniz gereken yolu tarif edeceğim o kadar. Hazırsanız başlayalım ;

Problemimiz masa üstü programımızın kendi kendini update edebilme özelliği. Bunun birden fazla yolu olsa bile ben kendime göre en kolay olduğunu düşündüğüm versiyonu sizinle paylaşacağım.

Diagram şu şekilde olacak ;

1. Program çalıştırıldığında kendi sürümünü internet üzerinde bir sunucuda bulunan son sürüm ile karşılaştıracak.
2. Eğer yeni sürüm var ise yeni sürük kurulum programını download edecek.
3. Download tamamlanmış ise yeni sürümü yükleme yazılımını çalıştırarak kendisini update edecek.

Standart bir winform uygulaması oluşturarak işe başladığınızı farzediyorum. İlk yapmamız gereken şey programımızın kendi sürümünü bilmesini sağlamak. Bunun için ben "program.cs" içerisine aşağıdaki kodu ekledim.


buradaki "public static string versioncode" değişkeni ile programın versiyonunu tutuyorum. Daha sonra ana formun on load olayına update kontrolünü yapacak bir bölüm ekledim. Ayrıca hemen altında bulunan "updateme" prosedürü ile update işlemini yapacak olan formu çağırdığımı fark edeceksiniz. Burada thread kullanmaktaki amaç asıl formu kapatırken programın kapanmasını engellemek.


Uygulama ana formu yüklediğinde "checkupdate" fonksiyonunu çağırıyor. Basitçe fonksiyonun yaptığı şey web sunucumda bulunan bir php dosyasına kendi sürüm numarasını "v" değişkeni ile yollamak. Php dosyası eğer sürüm aynı ise "OK" eğer programın sürümü eski ise "UPDATE" değerini döndürüyor. CheckUpdate fonksiyonunun kodları şu şekilde;


Şimdi siz "Asıl iş PHP dosyasında. Tüm işi o yapıyor!" şeklinde düşüneceksiniz ama öyle değil. Php dosyası çok çok basit bir şekilde yayında olan versiyon ile programın yolladığı versiyonu kontrol ediyor o kadar. Aşağıda php dosyasının kodunu veriyorum. (Dilerseniz aynı şeyi .asp, .aspx, .asmx, .txt gibi dosyalar ile de yapabilirsiniz. kontrol işlemini masa üstü yazılımınıza yaptırabilirsiniz. Ben bu yolu seçtim)


Gördüğünüz gibi gayet basit bir kontrol. Buradan sonra program thread açarak güncelleme formunu yüklüyor ki asıl güncelleme işini yapan bu program. Güncelleme formunda basitce yerleştirilmiş iki label ve bir progressbar var. Bu sayede kullanıcıya güncelleme işlemi ile ilgili bilgi verebiliyor, işlemin ilerlemesini gösterebiliyoruz. Ayrıca ben sırf geyik olsun diye iki adet timer ekleyerek güncelleme işlemini toplamda 10 saniye kadar da yavaşlattım.

Formun tasarımı şu şekilde :


Güncelleme prosedürü ise şu şekilde :


Hızlıca özet geçmek gerekir ise ;

destPath değişkeni indirilecek olan dosyanın yolunu tutuyor. 1.timer ticklediğinde (aktif olup çalıştıktan sonra verdiğiniz süre kadar geçince timer nesnesinin tick olayı tetiklenir) ;
timer kendini kapatıyor
webclient nesnesi oluşturularak bu nesnenin downloadfilecomplete ve downloadprogresschange olayları yeniden yazılıyor. böylece indirmenin ilerlemesini ve bitip bitmediğini takip edebiliriz.
webclient downloadfileasync fonksiyonu ile uzak sunucudaki setup.exe yerel adrese indiriliyor.

bu esnada progresschange olayı ile progressbar update ediliyor.
indirme işlemi bittiğinde tetiklenen downloadfilecomplete olayı ile de program indirilen setup.exe yazılımını çalıştırarak kendisini kapatıyor. Buradan sonra kullanıcı normal bir kurulum yapar gibi güncellemeyi kuruyor.

Sorularınız için yorum atabilir, dilerseniz bana www.mesutaslan.com.tr adresindeki resmi sitemden ulaşabilirsiniz.

Umarım faydası olur....



Not  : Bu arada şunu söylediğinizi hissediyorum "Lan bu örnek kodları niye kopyalanır şekilde vermedin de resim şeklinde verdin dingil !", asıl dingil sizsiniz, eğer programcı olmak istiyorsanız önce yazmaya alışmanız gerekiyor, kopyalayıp yapıştırmaya değil !










6 Ekim 2011 Perşembe

Steve Jobs Hayatını Kaybetti

Söylenecek pek fazla birşey yok. http://www.apple.com adresini ziyaret ettiğimizde tam sayfa Steve Jobs’ın resmi ve ölüm haberi ile karşılaşıyoruz. Çok fazla detay yok ama muhtemelen son yıllarda pençesini bırakmayan kansere yenik düştü.

Birçok insan Steve Jobs’ı tanıdığım andan itibaren kararlılığına, yaptığı işi çok sevmesine, başkalarının değil kendi hayallerini yaşamaya çalışmasına ve müşteri odaklılığına hayran olmuştur. İş hayatında da onu örnek almaya çalışmıştır. Steve Jobs bu özellikleriyle sadece mobil dünyayıyı değil, tüm teknoloji dünyasında bir devrim yapmış oldu ve firmaların müşterilere bakış şekillerini değiştirdi.

Steve Jobs : 1955-2011
Kendisine bize sunduğu iPhone gibi güzel ürünler için teşekkür etmekten başka yapacak bir şey yok  Fakat eğer daha evvel izlemediyseniz, Steve Jobs’un ünlü Stanford konuşmasını izlemenizi tavsiye ederim. Çünkü hayatını ve felsefesini kendi ağızından çok iyi özetliyor.

24 Mayıs 2011 Salı

Adobe Flash + Air ile “Dijital Ayna”

Programcı olmak başa bela :D

Bu gün yine bir ihtiyacım sonucu geliştirdiğim yeni bir proje var. “Dijital ayna !”

Dur bi bakıyım saçlarım nasıl olmuş diye masamdan kalkıp aynaya kadar gitmeye “üşenince” adobe flash + air teknolojisini ve uzmanlık seviyesindeki programcılık yeteneğimi birleştirerek “Dijital Ayna” tasarlarım, programladım, yayınlanmaya hazır hale getirdim.

Aşağıda ekran görüntüsünü görebilirsiniz.

prewiev

Fena da olmadı hani, belki ileride farklı çerçeve tipleri de ekleyerek çok düşük bir fiyat ile (3$ gibi) yayına açabilirim. Ama şimdilik sadece benim kullanımıma özel bir yazılım oldu.

 

Bilgi almak isteyenler buradan şansını deneyebilir.

23 Mayıs 2011 Pazartesi

Karakter Sayıcı (Key Counter)

Bir günde kaç karakter yazdığını merak eden programcı ne yapar ?

ks1


Tabiki kendisine bastığı karakter sayısını sayabilen bir program yazar. E yazmışken bu programı da blogunda tanıtır, yükleme adresini verir ki kendisi gibi meraklı olanlar varsa kullansınlar.

Karakter Sayma Programım “Klavye Say v1.0” basit anlamı ile sadece aktif edildiği andan itibaren bastığınız tüm klavye tuşlarını ve geçen süreyi sayar, dilediğinizde sıfırlayabilir veya devre dışı bırakabilirsiniz.

Program çok ufak olduğundan bir kurulum paketi yapmaya gerek görmedim. Tek .exe halinde dağıtmak daha uygun geldi.

Programı başlangıç klasörüne kopyalarak bilgisayarınız her çalıştığında çalışmasını sağlayabilirsiniz.

ks2

Not: Program Keyboard Hook metodu ile çalıştığından bazı virüs tarayıcılar keylogger gibi algılayabilir, ancak sizi temin ederim hiçbir bilginiz loglanmamaktadır Açık ağızlı gülümseme

Buradan arşivlenmiş olarak indirebilirsiniz.

Kaynak kodları için ise şansınızı buradan deneyebilirsiniz.