Abdurrahman KÖKEN | BLOG

just a developer... | Microsoft Student Partner

Silverlight Programlama Yarışması

Haziran 27
by Abdurrahman Köken 27. Haziran 2009 15:53

Dün internette gezinirken gözüme öyle bir yarışma takıldı ki eminim paylaşınca sizler de çok sevineceksiniz.Sıkı durun 2009 Yaz Silverlight Programlama Yarışması var. Büyük ödül tam 10.000$

Yarışmaya katılım çok basit ve geliştiriceğiniz uygulamalarda ComponentArt’ın kontrollerini kullanmak zorunda değilsiniz.Yarışma ile ilgili tüm ayrıntılara buradan ulaşabilirsiniz.Katılmadan önce tüm kuralları okuduğunuzdan emin olun.

Yarışmanın adından da anlaşıldığı gibi uygulamalarınız Silverlight uygulaması olmak zorundadır.Yarışma kurallarını okuduktan sonra kafanıza takılan soruları kurallar sayfasındaki  e-posta ile iletişe geçebilir ya da sıkça sorulan sorulara bakabilirsiniz.

 

SQL Injection

Haziran 25
by Abdurrahman Köken 25. Haziran 2009 20:35

Bugün uzun zamandır yazmayı düşünüp de yazmaya vakit bulamadığım bir konuyu paylaşacağım.SQL injection dinamik SQL sorgularında meydana gelebilecek bir açıktır.Bu açık sayesinde veritabanına  yetkili girişi yapılarak sızılabilir.Bu tarz saldırılar genelde kullanıcı girişi kontrollerinde kolayca kullanılabilmektedir.Örnek  SQL injection uygulanabilecek  bir sorgu şu şekildedir.

sorgu = "select * from Users Where Username = '" + xtUserName.Text.Trim() + "' and Password = '" + txtSifre.Text.Trim() + "'";

Formumuzdaki kullanıcı adı alanına şunu yazalım:

'or 5=5 --

Şifre alanına ise ne yazıldığı önemli değildir.Giriş butonuna bastığınızda başarılı bir şekilde oturum açıldığını göreceksiniz.Kullanıcı adı alanına girdiğimiz ifadeden sonra sorgumuzu tekrar inceleyelim bakalım neler olmuş.

select * from Users  where Username=" or 1=1 –-

Sorgumuz bu hale geldi.Burada Username false döner ve 1=1 olduğundan true döner.True ve false or işlemine tabi tutulunca biri doğru olduğundan dolayı true döner.Bu yüzden where koşulumuz true döndürür ve tüm kayıtları getirir.İlk bulduğu kayıt ile giriş yapılmış olur.Peki şifre alanı yazılanlar ne oldu dersiniz?SQL’de -- ifadesi kendisinden sonra yazılanları yorum satırı olarak görür:)Bunu engellemek için optimum çözümlerden biri  SqlCommand nesnesi kullanarak girilen kullanıcı adı ve şifreyi parametre olarak göndermektir.Yukarıdaki örneği şu şekilde yazabiliriz: 

string sorgu = "select * from Users where Username =@user and Password=@pass";

SqlCommand cmd = new SqlCommand(sorgu,conn);

cmd.Parameters.AddWithValue("@user", (string)txtUserName.Text);

cmd.Parameters.AddWithValue("@pass",(string)(txtSifre.Text)); 

SQL injection’ı bu şekilde parametre kullanarak alt alt edebiliriz.Hatta daha da  iyisini yapmak mümkün .Stored Procedure kullanarak hem güvenlik hem performans hem de hız konusun da yüksek başarım sağlayabiliriz.Stored procedure’larla ilgili bilgi için önceden yazmış olduğum makaleye göz atabilirsiniz.

Teşekkürler.

Tags:

Güvenlik | SQL

C# İle XAML'a Kolayca Ulaşma

Haziran 14
by Abdurrahman Köken 14. Haziran 2009 22:19

Bugüne kadar internette gezinirken birçok sitede tips&tricks kelimelerini yani bir konu ile ilgili ip uçları ve kolay yollarını gösteren yazılar gördüm ve dedim ki benim bloğumda neden yok.Bu yüzden bende Silverlight ile ilgili birkaç şey göstermeye karar verdim.Öncelikle media element ile başlayalım:)

Media Element

MediaElementAdı.Play();

MediaElementAdı.Pause();

MediaElementAdı.Stop();

StoryBoard

StoryBoardAdı.Begin();

StoryBoardAdı.Stop();

StoryBoard.Pause();

StoryBoard.Resume();

Animasyonun Tamamlanma Olayını Yakalama

Burada Goster isimli animasyon başlatılıyor ve bu animasyonun tamamlandığı event yakalanıyor.Goster animasyonu bittiğinde Sakla animasyonu başlatılıyor.

        void btnGit_Click(object sender, RoutedEventArgs e)

       {

           Goster.Begin();

           Goster.Completed += new EventHandler(Goster_Completed);

       }

       void Goster_Completed(object sender, EventArgs e)

       {

           Sakla.Begin();

       }

Başka Bir Web Sayfasına Link Verme

Öncelikle System.Windows.Browser namespace’ini  eklememiz gerekmektedir.Daha sonra yazılacak tek satır kod kalıyor:)

     HtmlPage.Window.Navigate(new Uri("http://www.akoken.com"),"__newWindow");

Kod İle Visual State Manager’da Tanımlı Bir Durumu Çağırma

Burada da VisualStateManager da tanımlı bir durumun kod ile nasıl çağrıldığını göstermek istiyorum.    

     VisualStateManager.GoToState(this, DurumAdı, true);

Teşekkürler.

Silverlight-Image Source Özelliğini Kod İle Değiştirme

Haziran 11
by Abdurrahman Köken 11. Haziran 2009 19:00

     Bugün tam olarak makale değilde ipucu denebilecek bir yazı paylaşacağım.Geçenlerde bir arkadaşım benden resimlerini web sayfasında slide show  yapmamı istemişti.Bende hemen kolları sıvayıp Silverlight ile yapmaya başladım tabi.Slide Show yapmam için kod tarafında bir DispatcherTimer yaratıp belirli bir saniyede Image nesnesinin Source'unu değiştirmek olacaktı.Sonra farkettim ki Image nesnesinin Source özelliğine yeni bir  Uri  atadığımızda Cannot implicitly convert type 'System.Uri' to 'System.Windows.Media.ImageSource' hatasını aldım.Nesnemizin Source özelliğine ImageSource tipinde bir kaynak göstermeliyiz.Bu durumu şu şekilde halledebiliriz.

      Image img = new Image();

      BitmapImage bitmap=new BitmapImage(new Uri("resim.jpg", UriKind.Relative));

      img.Source = bitmap;

Burada BitmapImage nesnesi oluşturup resmimizin kaynağını gösteriyoruz.Daha sonra Image nesnemizin Source özelliğinede bitmap nesnemizi atıyoruz.Hepsi bu kadar:)Bu arada BitmapImage sınıfı System.Windows.Media.Imaging namespace'i içerisinde bulunmaktadır.

Teşekkürler.

Silverlight 3.0 Online Seminer!!!

Haziran 03
by Abdurrahman Köken 3. Haziran 2009 16:57

Bir süredir finallerim yüzümden bloğumla pek ilgilenemedim.Ama artık finallerim bittiğine göre bloğuma biraz daha fazla vakit ayırabileceğim.Makalelerim yolda arkadaşlarJSize bugün sevgili Daron Yöndem hocamın Online Silverlight 3.0 Seminerleri hakkında duyuru yapacağım.Haziran ayında tam tamına 12 webcast ile Silverlight 3.0 ı bizlere anlatacak.Seminer takvimi aşağıdaki gibidir.

Silverlight'a Giriş - 8 Haziran, 21.00
Bu webinerde Silverlight nedir sorusuna cevap verirken mimari yapısına bakarak Silverlight dünyasına bir giriş yapacağız. Silverlgiht projeleri nasıl oluşturulur,nasıl yayınlanır, XAML nedir? ve "Neden Silverlight" gibi soruların cevapları da bu webinerde.
https://www.livemeeting.com/cc/usergroups/join?id=GFRH8M&role=attend 

 Silverlight ile Animasyonlar - 9 Haziran, 21.00
Animasyon mantığını kavrayacağımız bu webinerde ilk olarak Expression Blend arayüzüne bakarak animasyonlarının Blend tarafında nasıl oluşturulabildiğine göz atacağız. Sonra bu animasyonların programatik olarak yaratılmasını ve kontrollerini inceleyerek Silverlight tarafında bir animasyon uzmanı olacağız.
https://www.livemeeting.com/cc/usergroups/join?id=6GRJPM&role=attend

Layout Kontrolleri ve Dinamik Arayüzler, 10 Haziran, 21.00
Silverlight içerisinde istediğiniz görsel arayüzü oluşturabilmek için arayüz oluşturma esnasından kullanabileceğiniz Layout kontrollerini çok iyi tanımanız gerekir. Diğer yandan dinamik olarak tüm nesneleri yaratbilmeniz, bu nesnelerin birbiri ile konuşabilmesi ve projenizi doğru biçimde UserControl yapıları ile şekillendirmeniz de şart. İşte bu webinerde bu konulara değineceğiz.
https://www.livemeeting.com/cc/usergroups/join?id=PBRM8P&role=attend

Kontrol Şablonları ve VisualStateManager, 11 Haziran, 21.00
Standart kontroller arasında sıkışmayın ve kontrollerinizi tamamen baştan yaratın. Hatta bu tasarımları tekrar ve tekrar kullanın. Bu webinerde silverlight kontrollerinin şablonlarının değiştirilmesini, Template Binding mekanizmasını ve visual State Manager'ın kullanımını Custom State yapıları ile beraber inceleyeceğiz.
https://www.livemeeting.com/cc/usergroups/join?id=R8JSQH&role=attend

Silverlight içerisinde Veri Erişimi, 12 Haziran, 21.00
İster klasik web servisleri kullanın, ister WCF servisleri veya ister Socket üzerinden haberleşin hepsinin de kendine göre avantaj ve dezavantajları var. Gelin hepsinin de Silverlight tarafındaki detaylarını beraber inceleyip Silverlight uygulamalarımızı veri ile tanıştıralım.
https://www.livemeeting.com/cc/usergroups/join?id=GH9T5W&role=attend

Offline/Online/Desktop çalışma yapıları, 15 Haziran, 21.00
Silverlight 3.0 ile beraber uygulamalarınızı masaüstüne birkaç tıklama ile taşıyabilirsiniz. Peki hem masaüstünde hem webde hem online hem offline çalışırken tüm bu sistemi, verilerinizi nasıl kontrol edeceksiniz. Bu webinerde farklı çalışma yapılarını göz atarken verilerimizi IsolatedStorage içerisinde saklayacağız.
https://www.livemeeting.com/cc/usergroups/join?id=QTZH9R&role=attend

İş Uygulamaları Yaparken Silverlight, 16 Haziran, 21.00
Animasyonlar hoştur, güzeldir ama herşey değildir. DataGrid'ler, Comboboxlar, Calendar'lar bir araya girdiğinde hepsinden bir iş uygulaması arayüzü yaratıp kontrol etmeye ne dersiniz? Bu webinerde hep beraber bir iş uygulamasının ekranını hazırlayacağız.
https://www.livemeeting.com/cc/usergroups/join?id=BGN6BT&role=attend

RIA Services, 17 Haziran, 21.00
Farklı bir bakış açısı ile Silverlight uygulamalarınızdan veritabanına erişimine çocuk oyuncağına dönüştürmek ister misiniz? RIA Services sadece verinin taşınmasını değil aynı anda kendi kontrolleri ile düzenlenmesini de kolaylaştırıyor. Nasıl olacağını merak ediyorsanız bekleriz.
https://www.livemeeting.com/cc/usergroups/join?id=P9KQ6B&role=attend

Silverlight projelerinde SEO, 18 Haziran, 21.00
Arama motorlarına dair optimizasyonların çoğumuz için önemli. Silverlight projelerinde özellikle asenkron veri erişimi nedeniyle söz konusu veriye arama motorları ulaşamıyor. Peki ya bir çözümü varsa? Tabi ki o çözümü paylaşma vakti.
https://www.livemeeting.com/cc/usergroups/join?id=Q6H2G7&role=attend

Video Aşkına! Canlı/Cansız Yayın, 19 Haziran, 21.00
İnternette televizyoz izlemek veya cansız kayıtları yayınlamak, amacınız ne olursa olsun video konusunda Silverlight çok güçlü. Bu webinerde Silverlight ile canlı yayın, Media Services ayarları, Adaptive Streaming, cansız yayın ve Video Player hazırlanması gibi konulara değineceğiz.
https://www.livemeeting.com/cc/usergroups/join?id=BNPK36&role=attend

DeepZoom Uygulamaları, 22 Haziran, 21.00
Yaklaştıkça daha çok detay görmek isteyenlerin tarzı DeepZoom uygulamalarını hızlı bir şekilde geliştirmenin yanı sıra sıfırdan DeepZoom uygulamalarını yazmak, uygulamaları özelleştirmek ve veri bağlantısı yaparak dinamik DeepZoom projeleri yaratmak isteyenler bu webineri kaçırmasın.
https://www.livemeeting.com/cc/usergroups/join?id=BZFCH9&role=attend

Tarayıcı Entegrasyonu, 23 Haziran, 21.00
Silverlight ile tarayıcı arasındaki ilişkiyi inceleyeceğimiz bu webinerde Silverlight tarafındaki C#/VB kodunuz ile DOM entegrasyonunun yanı sıra tam ekran uygulamaları, ön yükleme ekranlarını ve RunTime yükleme ekranlarını özelleştirmeye göz atacağız.
https://www.livemeeting.com/cc/usergroups/join?id=3GZKMH&role=attend

Bence Silverlight 3.0 öğrenmek için kaçırılmayacak bir fırsat arkadaşlar. 

Teşekkürler.

 
Abdurrahman Köken-Recent Post