View Post

SQL Server Lock Tipleri

Shared Locks Okuma işlemi sırasında oluşturulan lock biçimidir. Exclusive Locks Ekleme, güncelleme veya silme işlemler sırasında oluşturulur. Başka bir oturum tarafından değiştirilmesini engeller. İşlem bitinceye kadar aktif olurlar Update locks Exclusive lock öncesi çalışan locktur. Güncelleme yada silme işlemi için gerekli satırları ararken aktif hale gelir. Doğru satırı bulursa lock biçimini exclusive olarak değiştirir Intent locks Exclusive lock yapılan bir …

View Post

String vs StringBuilder

  String StringBuilder Değiştirilemez Bir kere oluşunca RAM’deki değeri asla değiştirilemez Yapılan herhangi bir değişiklik, eski değerinin iptal edilmesine ve yeni değeriyle tekrardan oluşturulmasına sebep olur   Multi-Thread uygulamalarda sorun çıkarmaz Özelliği çoktur Kullanımı klaydır Değiştirilebilir Oluşturduktan sonra yapılan değişiklikler nesnenin tekrardan oluşturulmasına sebep olmaz Döngü içerisinde performansı çok iyidir   Oluşturma performansı kötüdür Metod ve özellikleri daha azdır   …

View Post

Value Type vs Reference Type

  Value Type Reference Type int, bool ve char gibi tiplerdir null değeri alamazlar struct’a benzerler System.ValueType sınıfından türemişlerdir new ile oluşturulamaz RAM’de stack denen yerde direk değerleri tutulur sınıf veya nesnedir null değeri alabilirler class ve inerface’e benzerler System.Object sınıfından türemişlerdir new ile oluşturulabilirler RAM’de stack zerinde tutulur, ayrıca heap denen yerde gerçek datanın referans değeri tutulur  

View Post

Yazılım Ekibinin Kalitesi Nasıl Değerlendirilir?

Yazılım ekibinin kalitesi basit bir test ile hemen anlaşılabilir. Aşağıdaki test Joel Spolsky’nin yıllar önce kendi başına koymuş olduğu bir dizi kural. 12de 12 yapan firmaların başında Microsoft olduğunu söyleyerek kendi çalıştığımız firmamızı karşılaştırmamızı istiyor. Mükemmel yazılım için olmazsa olmaz değil ama disiplinli ve düzenli çalışan bir ekip için şart. Testi çözmek için günde kaç satır kod yazdığınızı hesaplamanız yada işinizin …

View Post

ASP.Net MVC için İpuçları

Burada ASP.Net MVC ile alakalı boş beleş şeyler yazacağım. Sadece aklımda tutmak için başlıları yeter diye düşünüyorum, detaylarını yazmaya kalksam sayfalar yetmez. Genel Tavsiyeler Test yaz, hatta önce testi sonra kodu yaz SOLID prensiplerini unutma ActionFilterAttribute kullan Parital page güncellemeleri kullan ASP.Net’in Resource klasörünü kullan Session’ı aşırı kullanmak yerine TempData’yı kullanmaya çalış OutputCache kullan, özellikle statik sayfalarda Async kullanmaktan çekinme …

View Post

Visual Studio için build events yazdım – 2

Aslında bunu da aynı zamanda yazdım ama farklı konu ve mantığa sahip olduğu için farklı bir yazıda ekliyorum. Bu sefer ki yazdığım script bir powershell scripti ve post-build event olarak çalışıyor. Bu scriptin amacı masaüstü programlarını “Release” olarak build ettiğimizde build edilen yerdeki exe ve dll dosyalarını alıp bir zip dosyasına atıyor. Dosya adı proje adı, tarih, saat ve kullanıcı …

View Post

Visual Studio için build events yazdım

Bizim şirkette program versiyonları için tarih kullanıyorlardı. Ama standart program versiyonu şeklinde değil de yazı biçimindeydi. “2018.02.28” gibi  yazıyorlardı. Semantic versiyonlamaya uymuyor ama olsun bu da güzel olabilir dedim ve bu tarih formatını biraz değiştirdim: “1.80.228” gibi. Noktaları yer değiştirip bakarsanız “18.02.28” çıkıyor yani yine aynı tarih formatı geliyor sadece daha gerçekçi oldu. Bu formatı uygulatmak için çok uğraştım. En sonunda da …

View Post

Yazılımcı Neden Fazla Mesai Yapar

Nacizane kendi tecrübelerimden ve gözlemlerimden yola çıkarak Neden projeler planlandığı zamanda bitmez? Neden hep developer insanı daha çok çalışmak zorunda kalır? sorularına sebep olan maddeleri sıralamaya çalıştım. İşe projeyi planlamak ile değil, işe direkt kod yazmakla başlıyorsa. (Bkz. guerilla coding, spaghetti coding) Müşterinin gazlamasıyla gelecekte gerekli olabilecek veya hiç gerekli olmayacak modüller için fazladan kodlama yapıyorsa, Her zaman her isteğe …

View Post

Bir Programcının En İyi 20 Bahanesi

Bu çok garip… Bunu daha önce hiç yapmamıştı. Dün çalışıyordu. Bu mümkün değil. Bilgisayardan kaynaklanıyordur. Ne yaptın da bozuldu? Girdiğin veride problem olmalı. Ben o kısmı uzun zamandır değiştirmedim ki… Sendeki program eski olmasın Şanssızlık diyelim. Her şey test edemem ki… Bu onun nedeni olamaz ki… Çalışıyor ama mükemmel değil elbette. Bilgisayarında virüs taraması yaptırdın mı? Biri programımda değişiklik yapmış olmalı. …