C# ile Binary Serialization

Merhabalar, Bu makalede lafı hiç uzatmadan serileştirme(Serialization) yöntemlerinden biri olan Binary Serialization’ı inceleyeceğiz. Serialization Nedir? Yazılım uygulamalarında bazı verileri yazılımın çalıştığı sisteme kaydetmemiz ya da ağ üzerinden farklı bir kaynağa iletmemiz gerektiği durumlar olabilir. Eğer yerel sisteme veri kaydetmemiz gerekirse bu göreceli olarak kolaydır. Çünkü herhangi bir ek protokol ya da sınırlandırma minimum düzeydedir. Herhangi […]

Dapper.NET ile Transaction Kullanımı

Merhabalar, Dapper.NET, gelişmiş ve neredeyse doğal ADO.NET sınıfları kadar yüksek performansa sahip bir ORM aracıdır. ORM araçlarının neredeyse tamamı, performans olarak native veri erişim Framework’lerine göre daha düşük performansa sahiptir. Bunun nedeni gereksiz katmanlardan arındırılmış ve C# yeteneklerindeki genişletilmiş metotları(extension methods) kullanıyor olmasıdır. ADO.NET üzerine eklenen basit metotlar ile bir ara katman oluşturularak kaliteli ve […]

İleri C# : Jenerik Sınıflar ve İleri Seviye Jenerik İşlemleri – 2

Merhabalar, .NET Framework mimarisi destekli bir programlama dilleriyle ilgilenen dostların yakinen bildiği terimlerden ikisi aşağıdaki gibidir; Koleksiyonlar (Giriş makalesinde) Jenerikler (Şuan okuduğunuz makalede) Önceki makalede uzun uzun anlatmaya çalıştığım temel bilgilerden sonra asıl meseleye gelelim. Evet, Jenerikler… Jenerik Nedir? Jenerik(Generic) yapılarının temel prensibi, yazılımın programsal tasarım anında tiplerinin belirlenmemiş olmasıdır. Yani bir nesnenin hangi tiple kullanılacağı, […]

İleri C# : Jenerik Sınıflar ve İleri Seviye Jenerik İşlemleri – 1

Merhabalar, .NET Framework mimarisi destekli bir programlama dilleriyle ilgilenen dostların yakinen bildiği terimlerden ikisi aşağıdaki gibidir; Koleksiyonlar (Şuan okuduğunuz makale) Jenerikler Bu iki terimden koleksiyonları detaylı incelemeyeceğiz, sadece temel bir bakış ve jeneriklerle olan bağlantısına odaklanıp doğru jeneriklere geçeceğiz. Bu makalede asıl amacımız kendi gelişmiş jenerik sınıflarımızı, metot ve interface’lerimizi geliştirmek olacaktır. Koleksiyonlar Bildiğim tüm […]

ASP.NET Web API Hatası : “Message”: “An error has occurred.”

Merhabalar, ASP.NET Web API ile bir servis yayına açarken karşılaşacağınız olası sorunlardan biri meydana gelen hatanın detaylı bilgisini alamamak olacaktır. ASP.NET Web API mimarisi varsayılan olarak hata detaylarını gelen çağrılara göstermiyor. Bunun için kullanabileceğiniz bir çok olası çözüm var ancak biz temel olarak hatanın detayını görmek üzerine çözüm üreteceğiz. API’ye çağrıda bulundunuz ve aşağıdaki temel […]

C# ile unsafe Derleme Hatası : “Unsafe code may only appear if compiling with /unsafe”

C# ile yönetimsiz(unmanaged, unsafe) kod geliştirme tekniklerinde C/C++ dillerindeki gibi pointer kullanılabilmektedir. .NET yazılımları mimari olarak CLR ile derlendikleri için normal şartlarda CLR’ın izin vermediği özelliklerden biri de pointer kullanımıdır. Sebebi gayet mantıklıdır. Ancak bilinçli olarak unsafe kod geliştirmek istediğinizde derleyiciyi /unsafe komutu ile çalıştırmanız gerekmektedir. Özel bir ayar yapmadan unsafe kod çalıştırmak istediğinizde ise […]

Debugger – DebuggerDisplayAttribute / DebuggerDisplay Özniteliği

Büyük projelere girmeden önce Debug modun önemi pek anlaşılamayabiliyor. Karmaşık mimarilerde işin içinden çıkabilmenin adıdır Debug! Ancak her alanda olduğu gibi Debug işlemininde derinlemesine incelenmesi gerekiyor. Genel olarak çoğu özelliğinden faydalanamayacak kadar bilgisiz görüyorum kendimi. Bu makalemde de Debug işlemleri sırasında işimize yarayacak bir özellikten bahsederek bilgisizliğimizi bir nebze azaltmaya çalışacağım. 🙂 Her örnekte olduğu […]

C# 6.0 – Primary Constructors

Bilindiği üzere Microsoft her teknolojiyi sadeleştirmeyi, kullanıcı dostu arayüz ve hatalardan arındırmış, az emek ile çok iş düşüncesinde çalışmaya alışık bir firmadır. Haliyle bu düşüncelerden C#’da etkileniyor ve programcıların daha az kod yazılması için çaba sarfediliyor. Geliştirdiğimiz yazılımlarda çoğu zaman copy/paste yapılacak kadar benzer kodlar yazılabilmektedir. Ne kadar design pattern kullansanızda dil özelliklerinden kaynaklanan sorunlara […]

C# 6.0 – Expression Bodied Functions

C# 6.0 ile birlikte gelen özelliklerden biri de Expression Bodied Functions(İfade Gövdeli Fonksiyonlar), C# 6.0’ın temel amacı yazılım geliştirmeyi kolaylaştırmak ve daha az kod yazılmasını sağlamak olduğu için bu özelliğin neden geliştirildiğini daha kolay anlayabiliyoruz. Şu ana kadar C# da fonksiyon(metot) geliştirirken standart bir söz dizimi kuralı vardı ve buna uymamız gerekiyordu. Açıkcası bazı durumlarda […]

C# ile Port Kontrolü

Bilindiğiz üzere ağ programlamanın temelinde TCP, UDP, IP, HTTP vb. bir çok protokol yatmaktadır. Genellikle kullandığımız hazır yazılımlar bu yönetimleri gerçekleştirse de, sonuç olarak onları geliştirenlerin de birer yazılımcı olduğunu hatırlamamız gerekir. 🙂 Bu kısa makalemde C#, WPF ve .NET Framework yeteneklerini kullanarak, mini bir IP ve PORT kontrol yazılımı geliştireceğiz. Geliştireceğimiz yazılımın ekran görüntüsü […]