Blog

Blog

WPF Binding Nedir, Binding Modları ve Value Converter

Uzun zamandır nasıl başlasam diye düşündüğüm WPF serisine sonunda Binding nedir ve Binding modlarından başlamaya karar vererek, adım atmış bulunmaktayım. Nedir bu Binding? Kabaca iki özellik arasındaki bağlantıdır diyebiliriz. Biraz daha açarsak kontroller arasında verilerin birbirlerine bağlanarak beraber çalışmalarını sağlayan yapıdır diyebiliriz. Yukarıdaki şemadan da anlaşılacağı üzere bazı durumlarda OneWay(Tek Taraflı) kaynaktan -> hedefe veya […]

Read More

CQRS (Command Query Responsibility Segregation) Nedir?

Bu makalemde kimine göre basit bir pattern kimine göre de architectural bir yaklaşım olan CQRS yani Command Query Responsibility Segregation (Komut ve Sorgu Sorumluluklarının Ayrışması) konusunun kısaca üzerinde duruyor olacağız. Son zamanlarda gözlemlediğim kadarıyla yabancı bloglar da ve stackoverflow üzerindeki tartışmalarda CQRS‘in yavaş yavaş popülerliğini kazanmakta ve hala anlaşılması üzerinde soru işaretleri olan bir pattern […]

Read More

C# Linked List (Singly Linked List) nedir?

Merhaba arkadaşlar, bu makalemde sizlerle veri yapılarının bir parçası ve mülakatların ise vazgeçilmez sorusu olan Linked List‘i ve en basiti olan Singly Linked List hakkında bahsedip custom bir örnek yapacağız. :) Nedir bu Linked Lists (Bağlı Listeler)? Linked List’ler hakkında dinamik veri yapılarıdır desek yanlış olmaz. Çünkü dizilerde olduğu gibi başta kaç adet elemanla çalışacağımızı bildirmek […]

Read More

Goo Micro ORM

Goo Micro ORM .Net için geliştirilmiş strongly typed destekli, code-first yaklaşımlı basit bir açık kaynak kodlu orm aracıdır. Link: https://github.com/GokGokalp/Goo-Micro-ORM # DESTEKLERİ * Şuan sadece MSSQL veritabanını desteklemektedir. * Veri modelinizi code-first yaklaşımı ile oluşturmanıza olanak sağlamaktadır. * Basit tablo işlemlerini gerçekleştirebilmenizi sağlamaktadır. * Listeleme işlemlerini type destekli bir şekilde yapabilmenizi sağlamaktadır. * LINQ kullanımına olanak sağlamaktadır. […]

Read More

Anonymous Tiplerin Propertysine Ulaşmak

Bu kısa makalemin konusu C# 3.0 ile gelen Anonymous tiplerin propertylerine nasıl ulaşabileceğinizi ve değerlerini nasıl alabileceğinizi basit bir şekilde göstermeye çalışacağım. var anonymousTypeObject = new { Name = “Gökhan”, Year = 2015 }; PropertyDescriptorCollection props = TypeDescriptor.GetProperties(anonymousTypeObject); foreach (PropertyDescriptor loopParam in props) { var paramName = loopParam.Name; var paramValue = loopParam.GetValue(anonymousTypeObject); }   Anonymous tipler hakkında unutmamalıyız […]

Read More

Liskov Substitution Principle (LSP) – Liskov’un Yerine Geçme Prensibi

Open Closed prensibinden sonra vermiş olduğum uzun bir aranın arından sıradaki prensibimiz olan Liskov’un yerine geçme prensibi (Liskov Substitution Principle)  ile makalemize devam edelim. :) Önemli prensipler arasında olan LSP özünde bize geleceğe dönük olarak nasıl hamleler ile kod geliştiriliri veriyor. Önce bu cümleye bulmuş olduğum güzel bir resim ile giriş yapalım. :) Eğer bir ördek ise, ördek gibi ses çıkartır(Quicklemek her nasıl […]

Read More

C# ile Asenkron Socket Programlama

Kimine göre eskide kalmış olsa da, hala birçok yerde aktif olarak kullanılan soket programlamadan bahsedip üzerinde bir örnek gerçekleştirmeye çalışacağım. Öncelikle soket programlama nedir? Soketler için istemci (Client) ve sunucu (Server) arasındaki bağlantının sağlanması için olan bir iletişim kanalı diyebiliriz. Yaşam döngüsünü basitçe tarif etmek gerekirse, sunucu önceden belirlenen portu dinler, istemci ise bu porta mesaj […]

Read More

C# runtime ortamında kod derleme

Bazen runtime esnasında bir kodu derleyip çıktısını elde etmek isteyebiliriz, en azından benim başıma geldi. :) Bir projemde bana string olarak gelen bir değeri, örneğin “DateTime.Now()”, runtime esnasında derleyip çıktısını elde etmem gerekti. Nasıl yapabileceğimize dair örneğe aşağıda bakabilir, ihtiyacınıza göre düzenleyebilirsiniz. Selametle… // Compile edeceğimiz örnek kodumuz. string code = @” using System; namespace CompileCore […]

Read More

Open Closed Principle (OCP) – Açık Kapalı Prensibi

Evet bir önceki Single Responsibility makalesinden sonra sıra geldi 2. prensibimiz olan Open-Closed (Açık Kapalı) prensibine. Prensiplerin hepsinin ayrı bir önemi var fakat open-closed’ın önemi biraz daha önde geliyor, en azından benim için :) Gerçek dünyada, bir uygulama geliştirme sürecinde veya sonrasında, sürekli müşterilerimizden yeni istekler ve güncelleme talepleri gelmektedir. Bu gelecek olan isteklerin sistemimize rahatlıkla entegre olabilmesi veya […]

Read More

Solid Nedir ve Single Responsibility Principle (SRP)

Merhaba arkadaşlar. Bir kaç makale serisi boyunca, SOLID prensipleri üzerinde durmayı planlıyorum. Öncelikle ilk prensibimiz olan Single Responsibility‘e geçmeden, kısaca SOLID kavramı nedir bir tanımaya çalışalım. SOLID, Robert Martin‘in sunumu ile ortaya çıkan bir Dependency Managament(Bağımlılık Yönetimi) biçiminin, 5 adet ilkesinin baş harflerinden oluşan prensiplerdir. Bunları sıralayacak olursak eğer: Single Responsibility Open Closed Liskov Substitution Principle Interface […]

Read More

İyi tasarım ve Kötü tasarım nedir?

Tasarım nedir? Tasarımı kısaca açıklamak gerekirse, bir programı hayata geçirebilmek için tasarım prensipleri kullanılarak oluşturulan yapıdır. İyi bir tasarım yapmak, bir program için büyük ölçüde önemlidir ve onun sürdürülebilirliğinin garantisidir de diyebiliriz.   İyi bir tasarım yaparken tıpkı Object Oriented Programming’in amaçlarında var olan Reusability, Extendability, Maintainability ve Readability kavramlarına uymaya özen gösterdiğimizde, uygulamamızın bir […]

Read More

Basit bir IoC Container ve Loglama sistemi yapımı

Merhaba arkadaşlar, Uzun zamandır makale yazamadığımı farkettim ve projelerimizde kullanım kolaylığı sağlayacak bir konu ile arayı pekiştirmek istedim. :) Öncelikle nedir bu IoC Container? Açılımını Inversion of Control’den alan IoC Container, uygulamanın akışı sırasında bize yaratılması gereken doğru tipi yaratarak, uygulamanın akışını doğru bir şekilde ilerleten özel sınıflardır. Kısaca Dependency Injection ve Dependency Inversion‘dan bahsetmek gerekirse: Dependency […]

Read More

Abstract ve Interface Nedir? Farkları nelerdir?

Merhaba arkadaşlar. Zaman zaman ilk başlarda hepimizin kafasını karıştırdığına eminim bu ikilinin. :) Ne zaman abstract kullanmalıyım, ne zaman interface kullanmalıyım vb. tarzı sorular. Şimdi gelelim bu ikilinin ne olduklarına. Bu ikili, nesne yönelimli programlamada (OOP) sınıfları soyutlamaya yarayan yöntemlerden ikisidir. Bu ikisinin ortak oldukları ve farklı oldukları yönler vardır. Haydi bu yönlere bir göz atalım. 1) Abstract […]

Read More

Plug-in Tabanlı Uygulama Geliştirme ve Hesap Makinesi Örneği

Neden plug-in tabanlı uygulama geliştirmeye ihtiyaç duyarız? Biz yazılımcıların karşılaştıkları en büyük sorunlardan birisi, bitirmiş olduğumuz bir uygulamanın üzerine ek bir özellik istenmesidir. Şahsen bu beni delirten bir şey. :) İşte bu tarz durumların önüne geçmemizi sağlayan etmenlerden birisidir plug-in tabanlı uygulama geliştirme. Bu yoldaki en büyük dostumuz Reflection namespace’idir. Kısaca Reflection’dan bahsetmek gerekirse nesneler ile ilgili […]

Read More

Object Oriented Programming (OOP) Nedir?

Özet olarak hayatı nesnelere bölmektedir. Kullandığımız yordamları direk uygulama kodunu yazmayıp, sınıflar içine yazıyor ve bu sınıflardan türettiğimiz nesneler üzerinden çağırıyor isek OOP yapıyoruz demektir. 3 prensibe sahiptir. Encapsulation, Inheritance, Polymorphism Bu kısımları kısaca açıklamak gerekirse; 1-      Encapsulation Nesne hakkındaki bilgiler anlamına gelir. Örneğin bir arabanın rengi, modeli gibi. 2-      Inheritance Bir nesnenin bir başka […]

Read More

Stack & Heap Kavramları

Merhaba arkadaşlar. Stack ve Heap kavramlarından kısaca bahsetmek gerekirse, ram’in mantıksal bölümleridir diyebiliriz. Stack’de değer tipleri, pointer ve adresler saklanırken, Heap’de ise referans değerleri saklanmaktadır. Stack’e erişim Heap’den daha hızlıdır ve Stack, LIFO (Last-In-First-Out) mantığında çalışmaktadır. Yani son gelen ilk olarak çıkar. Bu sebep ile aradan herhangi bir eleman çıkartamazsınız, birbirleri ile ilişki içerisindedirler. Struct tipindeki değişkenler değer […]

Read More