Yorum Yaz

Silverlight ile Asenkron Resim Yükleme

M. Baykal, 05 Aralık 2008 saat 14:47'de yazdı.

Dikkat, bu örnekte anlatılanları yapabilmek için, örneği bir web sunucusunda çalıştırmalısınız. Bu ISS ya da Visual Studio’nun kendi Development Server’ı olabilir.

Silverlight uygulamalarınız da bazen, bir yerlerden asenkron bir şekilde resim çekmek zorunda kalabilirsiniz. Bu aslında çok basit bir işlem. BitmapImage sınıfı bizim için resmi indiriyor. Aslında yapmanız gereken tek şey:

 resi__m1

İndirme Yüzdesini Göstermek

Ama durun bir dakika, bir eksik var, ben resmin ne kadarının yüklediğini göremiyorum. Bu sorunu nasıl halledeceğim diyorsanız, –ki ben demiştim- o zaman devreye WebClient sınıfı giriyor. WebClient sınıfını kullanarak, internetten herhangi bir şeyi hiç de zorlanmadan indirebilirsiniz.  WebClient kullanırsak kodumuz şöyle bir şey oluyor:

resim2

Kod biraz karışık gibi görünmüş olabilir ama aslında çok basit. Kısaca açıklayayım. _webClient adında bir WebClient nesnemiz var, bunun bazı eylemlerini (Event) kullanacağımız için, WithEvents olarak işaretledik. Bunun dışında, progress isimli bir ProgressBar’ımız, imageOnizleme isimli bir de Image’imiz var.

_webClient nesnesinin iki eylemini (DownloadProgressChanged ve OpenReadCompleted) kullanacağız. Bunlardan birincisi olan DownloadProgressChanged, her indirilen parçadan sonra çalışıyor. Bu eylem ısrasında, indirdiğimiz dosyanın byte cinsinden toplam boyutunu, indirilen kısmını ve işlem yüzdesini öğrenebiliriz. Kullandığımız ikinci eylem ise OpenReadCompleted, bu da indirme işlemi bitince tetiklenir.

OpenReadCompleted olayı içerisinde, yeni bir BitmapImage oluşturduk ve buna indirdiğimiz akımı atadık. Ardından bu kaynağı, imageOnizleme’ye bağladık.

Kodlar

Uygulamanın kodlarını buradan indirebilir ve uygulamayı buradan test edebilirsiniz. Uygulama geliştirilken kullanılan Visual Studio yazılımını öğrenci iseniz DreamSpark ile ücretsiz edinebilirsiniz. Eğer üniversiteniz henüz desteklenmiyorsa, DreamSpark şifresi almak için benimle iletişime geçebilirsiniz.


Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Yorum Yaz

Silverlight ile Çoklu Sayfa Kullanımı

M. Baykal, 02 Aralık 2008 saat 12:42'de yazdı.

Eğer sizde Silverlight’a benim gibi yeni başlamışsanız. Zamanla şunu fark edeceksiniz, programızı yazdığınız dosya aşırı derecede şişecek. (xml’in o güzel özelliği olsa gerek (!)) Zamanla, kontrolü kaybedeceksiniz. Biraz programlama tecrübeniz varsa, kodunuzu parçalara ayırmayı deneyeceksiniz. Bende böyle yaptım…

Binbir zorlukla, o ilk UserControl’ünüzü yazdınız; ama o da ne, Visual Studio, xaml^den kontrolünüzü görmüyor. Google da size yardım edemedi… O zaman, hemen şöyle yaptınız heralde:

img1

 

Zamanla bunun size eski C günlerinizi anımsatmaya başladığını fark edeceksiniz. Bunun daha kolay bir yolu olmalı demeye başlayacaksınız. Evet, var.

img2

Eğer, yukarıda ki kodu incelemişseniz, xml isim uzaylarına bir tane “local” eklediğimi farketmişsinizdir. Visual Studio'nun o güzel IntelliSense’i bana o satırı eklememde çok yardımcı oldu. “xmlns:local=” yazdıktan sonra, bana ekleyebileceğim tüm isimuzaylarını gösterdi, ben bunlardan kendi projemi seçtim. “local” ön ekini ise tamamen kendi isteğimle seçtim. Siz, isterseniz başka bir şey seçebilirsiniz.

Eğer kodun aşağılarına bakarsanız, “<loca:ucontrol1..” diye başlayan satırı görebilirsiniz. İşte bu satır, kontrolümüzü eklediğimiz satır.

Neredeyse Kod Yazmadan, Kontrol Ekleme

Bilgisayarınızda, Expression Blend 2 (service pack 1) yüklü ise, XML isim uzayını tanımladıktan sonra, kendi kontrolümüzü kod yazmadan da kullanabilirsiniz. Bunun için, projeyi Expression Blend 2’de açmalısınız. Daha sonra, kontrolüzü Asset Library’nin Custom Control kısmından ekleyebilirsiniz…

img3

Kodlar

Projenin kaynak kodlarını buradan indirebilirsiniz. Microsoft Visual Studio ve Expression Web yazılımlarını ise, DreamSpark ile ücretsiz edinebilirsiniz. Eğer öğrenci iseniz, benimle iletişime geçip, DreamSpark şifrenizi alabilir ve hemen kullanamaya başlayabilirsiniz…


Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


1 adet yorum aldı

Turkcell İle İnternet Üzerinden Kısamesaj Yollama – 3

M. Baykal, 10 Ekim 2008 saat 22:36'de yazdı.

Kategoriler: Visual Basic

Eğer, ileride başıma taş filan düşmezse bu, bu konu ile yazacağım son yazım. Bugün bu sistemi inceledikten sonra bir daha bir sistemi iyice incelemeden onunla ilgili bir şey yazmaya kalkmamam gerektiğini öğrendim. Bu Turkcell yazılımcılarını bugün baya bir anacağım herhalde :)

Geçen yazımda, sisteme oturum açmıştık. Çektiğimiz HTML belgesini inceleyip bu bölümü yazacaktım; ama bir HTML belgesınde 50 tane form olur mu ya? Herneyse, baya bir kastıktan sonra newmessage_form isimli formun ihtiyacımız olan form oldugunu fark ettim. Tabii, iş burada da bitmiyor. Güzel güzel, normal bir şekilde post edeceklerine, multipart/form-data olarak post ediyorlar. Ben aslında bu yöntemi anlatmayacaktım; çünkü bilmiyorum. Başa gelen çekilir ne yapalım, öğreneceğim artık.

Sizin için bu pragrafa geçmek bir iki saniyeden daha az sürmüştür; ama tam 24 saat önce yazmıştım üst paragrafı. Eğer tarayıcı filan yazmayacaksanız o kodlamaya ihtiyacınız olmayacak. Biz sadece formu aktarmak istiyoruz. Nasıl aktarıldığı, nasıl alınacağı aradaki programların işi. Eğer web gezgini kullanacaksanız, kodlama işlemini tarayıcınız sizin için yapar. Kod çözme işlemini ise web sunucunuz.

Aşağıdaki gibi bir windows formu tasarladım:

resim4

Başlamadan önce, eski kodlardan bazılarını Common diye bir modül altında topladım. Kodlar burada (95.16 kB).

Sistem, normal POST’u yemedi. Şuan derslerin yoğunluğu da malum. İnşallah, programın devamını yazacağım ve sitede yayınlayacağım…


1 kişi tarafından 1.0 olarak değerlendirildi

  • Currently 1/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5



  Günlüğümden bır yazıyı alıntılamadan önce, telif bilgilerini okuyun...

Telif Bilgileri

Son 3 Yazım

Etiket Bulutu

Son 5 Yorum

Comment RSS
Bu sitenin tüm içeriği, yazarinin görüşlerini yansıtmaktadır. Başka hiçbir kurumu ya da kuruluşu bağlamaz.
Site ve içeriğinin içeriğinin her hakkı Muhammed Medeni Baykal'a aittir, kaynak gösterilmek şartı ile alıntı yapılabilir.
Bu döküman en iyi, Internet Explorer 8 Beta 2 ile izlenir. Fırefox 3.0 ile de izlenebilir...
Bu site BlogEngine.NET ile gücüne güç katıyor.