C# etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
C# etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

12 Mayıs 2020 Salı

DOM (Document Object Model) Nedir ?

Yazılıma yeni başlayanların veya kod yazma dışında olayın derinliklerini merak edenlerin çok sorduğu sorulardandır: DOM nedir ? DOM ne işe yarar ? Çok kez ismini duyduklarını ama tam olarak DOM'u anlayamadıklarını söylerler. Siz de onlardansanız, hadi gelin bu sefer bu işi halledelim.


DOM Document Object Model kelimesinin kısaltılmasından gelir ve Türkçe karşılığı Belge Nesne Modelidir.
DOM, HTML, XML gibi belgelerin diğer programlama dilleri veya script dilleriyle iletişim kurabilmesini sağlamak için geliştirilmiş bir arabirimdir.
Programlama dillerinde sıkça karşımıza çıkan Object Oriented yaklaşımı da bu yapıya benzerdir. Object Oriented yaklaşımında kullandığımız nesneler yada sınıflar, DOM yapısına göre bir HTML sayfası içerisinde bulunan etiketleri (tag) kapsar.



Yukarıdaki görselde olduğu gibi HTML sayfasında bulunan , ,

,

 gibi etiketler birer DOM nesneleridir.
DOM sayesinde HTML veya XML elemanları ile programlama veya script dilleri arasında haberleşme sağlayarak daha etkileşimli web siteler yapılabilmesini sağlanır.
DOM, Javascript, PHP, ASP, Java vb. birçok dile destek verir.
Örnek olarak web projelerinde sıkça kullandığımız Javascript ile bir DOM elemanıyla iletişim kuralım.

ÖRNEK 1 
ornek.html :

  
      Dom Örneği | Mediaclick.com.tr
      
  
  
      
style

="border:solid 1px #333;" onMouseOver="renkDegistir(this)">            DOM Örneği
      
  


1-) Yukarıdaki örnekte bir HTML belgesi içerisine , ,,
gibi etiketler tanımladık.


2-)
etiketi ile Javascript kodumuzun iletişimi için
etiketine onMouseOver özelliği tanımladık ve bu özelliği renkDegistir() adında bir Javascript fonksiyonuna (this) ifadesiyle gönderdik.


3-) Javascript kodumuzda Obj parametresi ile hangi etiketten geldiğini belirledik ve o etikete Obj.style.border = ‘1px solid red’ diyerek yeni bir stil kazandırdık.

NOT : Ayrıca, DOM nesnelerine (this) gibi parametre kullanarak iletişim kurabildiğimiz gibi, id, name, class gibi özellikler (attribute) tanımlayarak da yapabiliriz.
Bir başka örnek daha yaparak DOM yapısını daha yakından tanıyalım.

Bu örnekte bir web programlama dili olan PHP’yi kullanalım. Başka dilleri de kullanabilirdik.

form.html :


  
      PHP ile DOM | Mediaclick.com.tr
  
  

action

=”post.php”>          name
="name">          name
="surname">

  

post.php

if(isset($_POST))
{
    $name = $_POST[‘name’];
    $surname = $_POST[‘surname’];
   echo “Adınız : ”.$name.“ Soyadınız : ”.$surname;
}

1-) Yukarıdaki örnekte yine bir HTML belgesi içerisinde bazı etiketler kullandık.

2-) Form etiketi içerisinde iki adet inputumuz var. Bu inputları action post.php ifadesiyle post.php adında bir php dosyasına gönderiyoruz.

3-) post.php dosyasında da inputlardan gelen ifadeleri name özelliğiyle yakalayıp değişkene atıyoruz ve ekrana basıyoruz.

Bu yazımızla DOM nedir sorusuna cevap aramaya çalıştık. Gösterdiğimiz örneklerle DOM yapısını kullanarak HTML ile javascript / PHP gibi dillerin haberleşmesini sağladık.

Umarız DOM'u anlamanızda faydası olmuştur, görüşmek üzere ...



22 Kasım 2015 Pazar

C# Exception - Not all code paths return a value Hatası

C# Exception - Not all code paths return a value Hatası

Özellikle yazılıma ilk başladığımız zamanlarda bolca karşımıza çıkan " Not all code path return a value " hatasının nedeni ve çözümlerini inceleyelim.

Hatanın Genel Sebepleri:

Metodunuz geriye değer gönderecekse return ifadesi yazıp yazmadığınızdan emin olun.
Bir metod yazmışsınızdır ve bu metoda girecek parametreleri tek bir olasılık için ele almışsınızdır. Kısaca metod içerisince farklı durumlarda hataya sebep olacabilecek bir durum vardır fakat siz bu duruma yönelik bir tedbir almamışsınızdır.

Aşağıdaki uydurma örnekte Visual Studio bize “not all code paths return a value” hatasını gönderecektir çünkü sadece durum parametresinin true olduğu duruma göre yapılacak işlem ve geridönüş değeri belirlenmiştir, parametre false olursa ne yapılacağı, geriye hangi değerin döneceği belirtilmemiştir.

public bool SecilmisMi(bool durum){
if(durum){
    return 1;
}
}

public bool SecilmisMi(bool durum){
if(durum){
    return 1;
}
}

Aşağıdaki gibi düzenleme yaptığımızda sorun çözülecektir.

public bool SecilmisMi(bool durum){
if(durum){
    return 1;
}
else{
    return 0;
}
}

Birinci maddedeki gibi olabilecek tüm önlemleri almışsınızdır ama tüm durumlar dışında fazladan bir return yani geri dönüş değeri belirlemişsinizdir. Aşağıdaki kod bloğunda if ve else ile durum kontrol edilmiş fakat sonuç ne olursa olsun üçüncü bir return eklendiği için kontrol mekanizmasının bir anlamı olmayacaktır dolayısıyla hata alacaksınız. Aşağıdaki kod bu duruma örnektir ve hatalıdır.

public bool SecilmisMi(bool durum){
if(durum){
    return true;
}
else{
    return false;
}
    return true;
}

Bu durumların benzerlerini while döngüsü kullandığınızda da yaşayabilirsiniz kontrol ediniz.
Geriye metod içerisindeki bir değişkeni göndermesini istiyorsunuz (return degisken) fakat değişkene metod içerisinde değer atanamıyor, geriye bir değer göndermiyordur.

Sonuç olarak bu hatanın genel sebebi return ifadesinin fazla, eksik ya da yanlış kullanımıdır.

Yani dostlar : Tek Çare return ! :D