C#: Parametrelerde Array veya List tipi deger olarak mi yoksa referans olarak mi aktarilir?

C#‘ta Referans tipi, metodlar arasinda deger olarak aktarilir.

.NET‘te diziler heap uzerinde birer nesnedirler. Yani elinizde bir referans var ve bu referansi metodlar arasinda aktarabilirsiniz ve aktarilan nesnenin icerigini degistirebilirsiniz fakat eger bu nesneye yeni bir referans atarsaniz bu sefer eski referans, cagirilan metodda kullanilamaz.

void X(int[] veri) {
    veri[0] = 1; // cagiran metod bunu gorebilir.
}
void Y(int[] veri) {
    veri = new int[20]; // fakat bunu goremez.
}

Eger ref anahtar kelimesini kullanirsaniz, referans tipindeki veri yine referans olarak aktarilir ve yukaridaki ikinci islemi yapabiliyor olursunuz.

void X(ref int[] veri) {
    veri[0] = 1; // cagiran metod bunu gorebilir.
}
void Y(ref int[] veri) {
    veri = new int[20]; //cagiran metod bunu da gorebilir.
}
Kategoriler:C#

HTML5 Async ve Defer Ozellikleri

HTML5 web sayfalarimizda veya HTML5‘in kullanildigi diger alanlarda (Windows Store Uygulamalari gibi) bazen buyuk boyutta Javascript dosyalari yuklemeniz gerekebilir. Ozellikle yavas baglantilarda web tarayicilarin sayfayi goruntulemeden once bu dosyalari yuklemesi belli bir sure alacagindan sayfanin goruntulenme suresi uzayacak ve kullaniciyi rahatsiz eden bir durum ortaya cikacaktir. Bunu onlemek icin HTML5, script taglari icin async ve defer ozelliklerini getirmistir.

Kisaca aciklamak gerekirse;

Async Ozelligi: Browser sayfayi parse ederken eszamanli olarak script dosyasinin da yuklenebilecegini belirtmek icin kullanilir. Sagladigi avantaj ise sayfamizin daha hizli yuklenecek olmasidir. test.js adinda bir dosyamiz olsun.

<script src=”test.js”>

yerine asagidaki gibi bir kullanim yaparsak bu script dosyasinin sayfanin diger ogeleri ile eszamanli olarak yuklenmesini saglariz.

<script async src=”test.js”>

Defer Ozelligi: Scriptin yuklenmesi islemini sayfa yukleme islemi bittikten sonra en son adim olarak yapmak icin kullanilir. 200KB boyutunda bir Javascript dosyamiz oldugunu ve bunun icinde sayfa yuklemesi bittikten sonraki asamada kullanicilarimiz tarafindan sayfamiz uzerinde cesitli eylemler yapabilmeleri icin gereken fonksiyonlarin bulundugunu dusunelim, Bu fonksiyonlara sayfa yuklemesi esnasinda ihtiyacimiz olmadigina gore kullaniciyi sayfayi gormesi icin daha fazla bekletmemize de gerek yok. Cagiracagimiz script dosyasina asagidaki gibi defer ozelligini ekleriz ve dosya henuz yuklenmeden de kullanicimizin sayfa tamamen acilmis hissini yasamasini saglariz.

<script defer src=”test.js”>

Not: ASYNC ve DEFER ozelliklerini kullanirken dikkat etmemiz gereken noktalardan biri de henuz butun browserlarin bu ozellikleri desteklemiyor olmasi. Ayrica, script dosyalari arasinda birbirleri tarafindan kullanilan ortak fonksiyon veya degiskenler varsa javascript hatalarina sebebiyet verebilir. Cunku henuz olusmamis (yani script dosyasi tam olarak yuklenmemis) bir degisken veya fonksiyon baska bir script tarafindan cagirilirsa hataya sebep olabilir. Bu yuzden bu ozellikleri kullanirken kodumuzu iyi test etmeli ve bu noktalara dikkat etmeliyiz.

Browserlarin HTML5’te destekledigi ve desteklemedigi ozelliklerin detaylarini browser bazinda gormek isterseniz caniuse.com sitesini ziyaret edebilirsiniz.

Kategoriler:HTML5, Javascript

HTML sayfalarinda metinlerin alt satira kaymasini engelleme

HTML dosyalarinda yer alan metinlerin alt satira kaymadan bir butun olarak tek bir satirda tutulmasini istiyorsaniz sayfanizdaki bosluk (space) karakterlerini &nbsp; (non-breaking space) ozel karakteri ile degistirerek bunu gerceklestirebilirsiniz.

Asagidaki ilk ornekte non-breaking space kullanilmadiginda goreceginiz browser ekran goruntusu ve html var.

Bu ornekte ise &nbsp; kullandildiginda nasil gorunecegi var. Gordugunuz gibi metin saga dogru kaymaya devam ediyor.

Kategoriler:HTML, HTML5, Web Teknolojileri

Visual Studio – Build, Rebuild ve Clean ne demek?

Visual Studio icerisinde bir proje veya solution ismine sag tikladigimizda Build, Rebuil ve Clean seceneklerini gorururuz.

Build, en son derlemeden sonra degisiklik yapilmissa ilgili projeyi tekrar derler. Ornegin bir Solution dosyaniz ve icinde yirmi tane projeniz var ve bu projelerden iki tanesini guncellediniz. Bu durumda Visual Studio sadece degisiklik yaptiginiz projeleri derleyecek ve size zaman kazandiracaktir.

Rebuild isleminin amaci ise once Clean komutunu calistirdiktan sonra yukaridaki Build islemini gerceklestirmektir. Clean komutu, onceki derlemelerinizde olusturulmus olan butun dll ve diger build sonucu olusmus dosyalari siler. Daha sonra ise tekrar butun Solutioni bastan derler. Bu islem genelde (ozellikle buyuk projelerde) uzun surecegi icin daha cok build komutunu kullaniriz.

SQL SERVER – Sorgu Optimizasyonu -En Iyi Yontemler-

Sorgu performansini arttirmak icin temel olarak dikkat edilmesi gereken maddeler:

  • Her tablo icin mutlaka Birincil Anahtar (Promary Key) tanimlanmis olmalidir.
  • Her tablo icin mutlaka Clustered Index tanimlanmis olmalidir.
  • Tablo, uygun miktarda Non-Clustered Indexe sahip olmalidir.
  • Non-clustered indexler, kullanilan sorgular icin olusturulmalidir.
  • Index olustururken kullanilacak kolonlar su siralamaya gore secilmelidir. a) WHERE’de yer alan kolonlar, b) JOIN’de yer alan kolonlar, c) ORDER BY’da yer alan kolonlar, d) SELECT’te yer alan kolonlar
  • View kullanmayin veya View yerine normal tablo kullanin.
  • Trigger kullanmayin. Bunun yerine Triggerin yapacagi isi Stored Procedurlerin yapmasini saglayin.
  • Tek tek sorgu calistirmak yerine butun sorgulari stored procedurelar icine tasiyin ve su stored procedurlari cagirarak sorguyu calistirin.
  • Har diskinizin en az yuzde otuzunun bos oldugundan emin olun – Bu performansi biraz arttirir.
  • User Defined Function yerine Stored Procedure kullanin.
  • Select * yazmak yerine sadece ihtiyac duydugunuz kolon isimlerini secin.
  • Gereksiz joinleri silin,
  • Cursor kullanmayin,

Indexleri ve tempdbyi ayri disklerde tutmak da dusunulebilir.

Referans: Pinal Dave (http://blog.SQLAuthority.com)

Kategoriler:Sql Server, Veritabani

HTML5, CSS3 VE DIGERLERI ICIN WEB TARAYICI UYUMLULUK TABLOLARI

caniuse.com sitesini kullanarak web teknolojilerindeki degisik ozelliklerin browserlar tarafindan desteklenip desteklenmedigini ogrenebilirsiniz. Yazilan kodu degisik tarayicilarda ve degisik guvenlik seviyelerinde test etmek gunumuzde olmazsa olmaz gereksinimlerden birisidir. Ozellikle mobil cihazlarin kullaniminin artmasiyla beraber sadece degisik tarayici versiyonlariyla test etmenin disinda artik degisik ekran cozunurlugundeki cihazlarla da test yapmak gerekmekte. CSS3’un mobil cihazlarla ilgili getirdigi stil kolayliklarina da goz atmanizi oneririm.

Kategoriler:Yazilim Dunyasi
Takip Et

Her yeni yazı için posta kutunuza gönderim alın.