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 !










21 Ocak 2013 Pazartesi

Androidli Huawei Ascend G510 Tanıtıldı


Hepimizin bildiği (yada bazılarımızın bilmediği) gibi huawei çok tanınmış bir android telefon üreticisi. Bizler Türkiyede bu firma ile cep telefonu operatörleri adına ürettiği cihazlar ile tanıştık. Huawei Turkcell için T10-20 gibi T serisi telefonları üreten firma. Ayrıca bir çok operatörün WINN adı altında sattığı usb gprs modemlerin üreticisi. Huawei kesinlikle kaliteli ürünler üreten bir çin firması ve şimdi telefon pazarına kendi adı girmeye niyetli.

Gelelim yeni ürünleri Ascend G510'un özelliklerine :

134 mm uzunluğunda, 64.7 mm genişliğinde, 9.9 mm kalınlığında ve 150 gram ağırlığında tasarlanan Ascend G510‘a, 1.2 GHz saat hızında görev yapan çift çekirdekli (ARM Cortex-A9) MediaTek 6577 platformu, PowerVR SGX531 grafik birimi ve 512 MB RAM eşlik ediyor. Google’ın mobil işletim sistemi Android‘in 4.1 ”Jelly Bean” versiyonunu kullanan akıllı telefon, 4.5-inç boyutunda dokunmatik kapasitif IPS ekrana sahip. 4.5-inç’lik ekranda, 480 x 854 piksel (FWVGA) çözünürlük sunuluyor.

Akıllı telefonun ön yüzünde 0.3 megapiksel çözünürlüğünde, arka yüzünde ise 5 megapiksel çözünürlüğünde, LED flaşlı kamera yeterli görülmüş. Ana kamera aynı zamanda 1280 x 720 piksel çözünürlüğünde saniyede 30 kare video kaydı yapabilmekte.

4 GB‘lık dahili depolama alanı, microSD kartlar aracılığıyla yükseltilebilen Ascend G510‘nun batarya kapasitesi ise 1.700 mAh olarak açıklanmış durumda. Ascend G510‘u, Ascend G500 ile karşılaştırmak gerekirse;

  • Ekran boyutu 0.2-inç artmış.
  • Ekran çözünürlüğü 540 x 960 pikselden, 480 x 840 piksele düşmüş.
  • İşletim sistemi versiyonu Android 4.0′dan, Android 4.1′e güncellenmiş.
  • İşlemci saat hızı 200 MHz artmış.
  • RAM, 1 GB‘tan 512 MB‘a düşmüş.
  • Batarya kapasitesi 1.930 mAh’den 1.700 mAh’e düşmüş.
Ascend G510‘un 200 Euro civarında fiyatlandırılması beklenirken, akıllı telefonun çıkış tarihi konusunda bilgi verilmemiş.

17 Ocak 2013 Perşembe

Flash Oyunlar


Flash oyunlar internette çok büyük pazar olarak büyümeye devam ediyor. Her gün yüzlerce internet sitesi açılıyor, yeni oyunlar yazılıyor ve yayınlanıyor. Sonuç olarak ücretsiz flash oyunlar yayınlayan birçok site olmasına rağmen bizim ülkemizde ne yazıkki yeni oyunlar geliştirilmiyor.

Bunun yerine web geliştiricilerimiz oyun indexleri yaratmayı tercih ediyor. Sonuç olarak çocuklar için eğitici ve eğlendirici flash oyunları içeren sitelerin oranı gittikçe artıyor.

İlk kullanmaya başladığım günden beri flash teknolojisinin bu konuda çok ilerleyeceğini düşünüyordum. Bu gün bu düşüncemde yanılmamış olmaktan mutluyum.

Yaşı ne olursa olsun tüm çocuklara iyi oyunlar....

10 Ocak 2013 Perşembe

Yerli Animatörler 3D ile tanışıyor.


Niyahet 3d animasyonun ne kadar gerekli ve önemli olduğu bizim televizyon kanallarımız tarafından da anlaşılmaya başlandı. Yıllardır mücadele veren yerli animasyon firmaları ve 3d görselleştiriciler, çalışma ve emeklerinin karşılıklarını alacak gibi görünüyor.


Çok uzun zaman önce merak salarak başladığım, halen eğitmeni olarak da devam ettiğim 3d sektöründe bu ve bunun gibi çalışmaların ne zaman yapılacağı üzerine türkçe 3d forumlarda sayfalarca tartışma yapmış, günlerce fikir kaynaştırmış olmamız bir yana, bu günleri gerçekten bekliyorduk.

Türk 3D animasyon sektörü, son yıllarda yapılan profesyonel yapımlarla izleyicinin karşısına çıkmaya başladı. Özellikle TRT’nin yerli yapımlara verdiği destek sayesinde yerli yapımcılar cesaretlenerek yeni animasyon çizgi film projelerine giriştiler. Burada devletin desteğini yabana atmamak lazım. Bunlardan en popüleri olan Pepe ve Keloğlan animasyon filmlerinin yapımında forumdan tanıştığımız kişiler çalışmıştır. Bu arkadaşlarıma başarılarının devamını diliyorum.

Çocuklarımız artık yerli kahramanları seviyor!


Uzun yıllar 3D animasyon ve oyun geliştirme üzerine yoğun çalışmalar yapan 3d ustaları, bu güne kadar binlerce saatini render dediğimiz işlemi yaparak harcamışlar, günlerce, gecelerce kendilerini eğitmeye devam etmişlerdir.

Çok şükür ki bu çalışmaların sonucu olarak keloğlan ve pepe gibi iki yapımı izleyebiliyoruz. Üstelik şimdi çocuklarımız kendi kahramanlarını daha çok seviyor. Özellikle keloğlanın bu başarısı Rüştü ASYALI'yı da bahtiyar ediyordur diye düşünüyorum.

Mevcut çalışmaları ve projeleri izlediğimde gelecekte (yakın gelecekte) ülkemizde özel efekt ve 3d film alanlarında da çok başarılı işler çıkacağını, Yeşilçam'ın Hollywood kalitesini rahatlıkla yakalayacağını öngörmek bence artık hayalperestlik sayılmaz.

İlerleyen teknoloji ve zaman bu öngörüm de umarım beni haksız çıkartmaz.



9 Ocak 2013 Çarşamba

Mobil Dünyada İşletim Sistemleri Çarpışıyor - Linux Mobile

Bildiğimiz gibi mobil dünya yeni bir pazar. Bütün büyük firma ve oluşumlar da bu pazarda yerlerini almak için çalışıyor. Pazar lideri IOS(Apple) ve Android(Google) olsada Windows8(Microsoft) da bu pazarda yer almak üzere çalışmalarını her anlamda hızlandırmaya çalışıyor. Tam da bu sırada eski dostumuz Penguen(Linux) yüzümüzü güldürecek bir haber gönderdi.


Bilgisayarlarımızda kullandığımız Ubuntu işletim sistemi artık mobil cihazlara da geliyor. Sadece mobil cihaz demek de doğru değil; aynı işletim sisteminin bilgisayar, mobil ve akıllı TV gibi ürünlerde kullanılabilmesi için geliştirmeler devam ediyor. Mobilin hızla yükselmesi ile birlikte popüler işletim sistemleri olan Android ve iOS’un yanısıra Windows Phone 8, MeeGo gibi işletim sistemleri de piyasada yer edinmeye çalışırken Ubuntu da bunların arasına eklenmiş oluyor. Rekabetin artması umuyoruz ki son kullanıcıların faydasına olacaktır.

Ubuntu’nun mobil cihazlara da geleceği yaklaşık bir yıldır gündemdeydi ve nihayet resmi sitesinde duyurulmasıyla haberler netlik kazanmış oldu. Ubuntu’nun aslında hala geliştirme aşamasında olduğunu ve şu an Galaxy Nexus tarafından desteklendiğini aktaralım. Daha fazla destek alabilmek ve mobil işletim sistemlerin de biz de varız diyebilmek için Ubuntu erken davranıp kullanıcılara sunulmuş olacak. Kullanıcılardan alacakları feedbacklerle her geçen gün işletim sistemlerini daha iyi bir noktaya taşımaya çalışacaklar.

Ubuntu diğer işletim sistemlerinden farklılaşabilmek için yazılımda birkaç yenilik yapmaya çalışmış. Ekranın her yönüne bir özellik ekleyerek her harekette farklı bir işlem yapılması, ekranın maksimum verimde kullanılması sağlanmaya çalışılmış. Kilit ekranında sol tarafa yerleştirilen çubuk panel, bazı favori uygulamaların kolayca ulaşılabilmesini sağlıyor.


Ekranın dört yönüne tanımlanan işlevler, sağa, sola, yukarıya veya aşağıya yapılacak kaydırma hareketlerinde uygulamalar arasında geçiş yapılabilmesini ya da arama gibi özellikleri içeren ekranları açıyor.


Parmağınızla sadece sağa veya sola kaydırarak o an çalışan uygulamaları görebiliyor ya da dinlediğiniz son müziklere hızlı bir şekilde yeniden erişebiliyorsunuz. Her harekette farklı bir işlem yapılması kulağa hoş geliyor ancak bir yandan da kullanımda karışıklığa yol açabileceği de düşünülebilir.


Android kernel ve sürücüleri üzerine entegre edilen Ubuntu işletim sistemi kullanacak akıllı telefonlara klavye, mouse ve monitör de bağlanabileceğini açıklıyor. Şirket ayrıca Ubuntu ekosistemin büyümesi için geliştiricilerin bu yeni mobil işletim sistemi üzerinde çalışmaya davet ediyor. Java sanal makinasının kullanılmadığı Ubuntu mobil işletim sistemi artık bütün mobil cihazları güçlendirmek amacıyla hizmet vermesi sağlanıyor. ARM ve x86 işlemci ile çalışabilen Ubuntu’nun  aynı zamanda sistematik olarak Android ile de çalışacağı da belirtiliyor.



Ubuntu sitesinde yapılan açıklamaya buradan ulaşabilirsiniz. Ayrıca aşağıda konu ile ilgili yayınlanmış youtube videolarını izlemenizi öneririm.









7 Ocak 2013 Pazartesi

Apple - Elmayı Büyük Isırmak

Apple, mobil yazılım pazarı AppStore üzerinden yapılan indirme sayısının 40 milyar'ı aştığını duyurmuş. Gerek ücretli gerekse ücretsiz mobil uygulamaların indirilebildiği AppStore mobil pazarın liderliği konusunda gerçekten dişli rakibi Google Play ile sürtüşmeye devam ediyor.


Bu indirme işlemlerinin yarısından fazlasının 2012′de olması ise geride bırakılan yılın App Store adına ne kadar başarılı geçtiğini ortaya koyuyor. Yinede bir Apple sahibi olarak şunu söylemekten geri kalamıyorum; Uygulamaların bazıları gerçekten o kadar çok reklam içeriyor ki uygulamaya erişmek sorun haline gelebiliyor.

Apple, 2012′yi bir rekor eşliğinde kapattı. Aralık ayında App Store üzerinden 2 milyarı aşkın indirme işlemi gerçekleştirildi. Geliştiricilerin App Store’u kuruluşundan bu yana toplam 7 milyar dolarlık bir kazanca ulaştığını açıklayan Apple, App Store’un mevcut aktif hesap sayısının 500 milyonun üstünde olduğunu belirtti. Şirket daha önce de 2012′nin haziran ayında gerçekleştirilen WWDC’de App Store’a ait bazı rakamları paylaşmıştı. O dönemde toplam indirme sayısı 30 milyara ulaşmış, aktif hesap sayısıysa 400 milyonun üstüne çıkmıştı. Aradan geçen altı ayda Apple’ın App Store ile geldiği noktadan etkilenmemek mümkün değil.