My C# Extension Methods

My C# Extension Methods

Extensions allow us to extend funcitonality of an existing type without modifying original type. C# extensions method is a static method of a static class where ‘this’ modifier is applied to the first parameter. The type of first parameter will be the type of extension. https://github.com/SekmenDev/Sekmen.Core

Ashamed

Yazılımcının En büyük Hatası

Cevabı hemen söylüyorum: Yazılımı sıfırdan tekrar yazmak. Bunun için yazılım dünyasında çok büyük örnekler var. En büyüğü Netscape. Eğer wikipedia olsaydı linki şu derdim: https://en.wikipedia.org/wiki/Netscape O Nestcape ki Javascript’i geliştiren firma. O Nestcape ki yıllarca Inter Explorer gibi başka hiç bir rakibi olmayan bir firma. O Nestcape ki zamanında AOL firmasına 10 Milyar Dolara satılmış. Ne varki versiyon 4’den sonra …

Serialization

Serialization: class => string/stream Deserialization: string/stream => class Types: Binary Serialization converts to binary / byte array [Serializable] attribute is used SOAP Serialization converts to XML for SOAP transfer JSON Serialization converts to string as json format

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 …

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   …

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  

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

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 …

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

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 …

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

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ı …

Visual Studio için build events yazdım

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 …