program etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
program 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 !










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.









10 Şubat 2012 Cuma

Kronos Stopwatch–Kronometre Uygulaması

İlk android aplikasyonumu yazıp markette yayınlamaya başladım bile. İsmi “Kronos” çok basit bir kronometre uygulaması. İri tasarlanmış butonları sayesinde kolay kullanılabilen, tur süresi sayma özelliği bulunan bir kronometre Kronos.

 

Şimdilik sadece beş dilde desteklediğim “Kronos Stopwatch” uygulaması sırf deneme yapmak için markete atmış olmama rağmen 3 gün gibi bir sürede 6 ülkede 100’den fazla kere indirildi. “Kronos Stopwatch” şu anda Türkçe, İngilizce, Almanca, Fransızca, Rusça seçenekleri ile Android Markette yayınlanıyor.

kronos1 kronos2

İleride daha iyi ve ilginç özellikler ekleyeceğim “Kronos Stopwatch” kronometre uygulamasını Android Marketten Android 2.1.1 ve üstü tüm cihazlarınıza indirebilirsiniz.

 

available-on-android-market-iphone-like-badge

14 Ekim 2011 Cuma

C, C++ ve C# ın dedesi rahmetli oldu

 

Bilişim dünyası ardarda gelen ölüm haberleri ile adeta çalkalanıyor. Bu gün kullandığımız, aşina olduğumuz önemli teknolojilerin mucitleri, yaratıcıları bir bir bu dünyadan göçüp gidiyorlar. Bunlardan bir tanesi de bu gün tabir doğru olursa “EKMEK YEMEMİZİ” sağlayan C# dilinin atası C dilinin yaratıcısı Dennis Ritchie.

Merhuma Rahmet diliyoruz…

dennis-ritchie-resimleri-fotolari-pictures-6Geçtiğimiz hafta Steve Jobs'ın ölümüyle sarsılan bilgisayar dünyası bu kez de C programlama dilinin ve UNIX'in kaşifi Dennis Ritchie'nin ölümünün üzüntüsünü yaşıyor.

C'nin günümüzdeki yansımaları C++, C# ve Java programlama dilleri. Yani şu anda kullanmakta olduğumuz işletim sistemi ve web tarayıcısı Dennis Ritchie'nin tasarladığı ve uyguladığı fikirlere, geliştirdiği C programlama diline dayanıyor.

Ritchie, Steve Jobs kadar medyatik olmasa da teknoloji dünyası için en az onun kadar önemli bir isim. C programlama dilinin ve UNIX işletim sisteminin yaratıcılarından Dennis Ritchie, yaşamı boyunca gerek kişisel, gerekse ekip arkadaşlarıyla birlikte yaptığı çalışmalar sayesinde birçok ödül almış bir uzmandı.

Uzun süredir sağlık durumu kötü giden ve 71 yaşında hayata veda eden Ritchie, "UNIX, temelde basit bir işletim sistemidir, ama bu basitliği anlamak için bir dahi olmanız gerekir" sözüyle biliniyor.

Dennis Ritchie, meslektaşı Kenneth Thompson ile birlikte 1968'de çalışmaya başladıkları Bell Laboratories (günümüzde Alcatel-Lucent haline geldi) firmasında UNIX işletim sisteminin ve C programlama dilinin ilk temel taşlarını koydu.

kd14

UNIX'in tek bir donanıma bağlı kalmayıp birçok bilgisayar sisteminde çalışabilir olmasını planlayan ikili, bu işletim sistemini yazabilmek için yeni bir programlama dili de gerektiğini farkederek 1969 - 1973 yılları arasında C dili üzerinde çalıştı.

Ritchie - Thompson ikilisinin C dışındaki diğer başarısıysa UNIX işletim sistemi. Geliştirilmesine 1969 yılında başlanan, 1970 yılında ilk, 1972 yılındaysa C programlama diliyle bütünüyle yeni baştan yazılmış ikinci sürümü kullanıma sunulan UNIX, bugün sayısız kişisel bilgisayar ve sunucuya can veren Linux işletim sisteminin ve hatta cebinizdeki telefonun Android işletim sisteminin atası.

Dennis Ritchie ve Brian Kernighan​ tarafından 1978 yılında yayınlanan ve tüm dünyaya bu yeni dili öğreten 'The C Programming Language' kitabıysa bugün hala C dilinin kutsal kitabı olarak görülüyor.

Turing Ödülü

1983’te Ritchie ve Ken Thompson Generic İşletim Sistemleri Teorisi ve özellikle UNIX işletim sistemini yaşama geçirmelerinden dolayı beraber Turing Ödülü’nü aldılar. Ritchie’nin Turing Ödülü konuşmasının başlığı “Reflections on Software Research” idi.

Ulusal Teknoloji Madalyası

27 Nisan 1999’da Ritchie ve Thompson bilgisayar donanımlarında ve yazılımlarında büyük gelişmeler sağlatan, ABD’nin bilgi çağına öncülük etmesini sağlayan UNIX işletim sistemine ve C programlama diline yardımlarından dolayı beraber Bill Clinton’dan 1998 Ulusal Teknoloji Madalyası’nı aldılar.

dennis-ritchie-resimleri-fotolari-pictures-8

28 Mayıs 2011 Cumartesi

jQuery Rounded Div Plug-in “mcaRounded”

jQuery için yazdığım rounded div plug-in “mcaRounded” aşağıdaki adresten edinilebilir. Bu plug-in sayesinde sadece bir satır kod ekleyerek herhangi bir div içeriğinizi (p,span,a da olabilir ama ben div tavsiye ediyorum) rounded yani kenarları yuvarlatılmış hale getirebilirsiniz.
mcaRounded
Yukarıdaki örnek için div kodu:
<div id=”test”>
Pellentesque habibtant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum totor quam, feugiat vitae, ultricies eget, tempor sit ament, ante. Donec eu libero sit amet quam……….
</div>

ve mcaRounded kodu :
$(‘#test’).mcaRounded({title:’Sample Text Panel’,color:’#fff’,bgColor:’#ccc’});
Örnekler, açıklama ve indirme için burayı tıklayın.

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.