Category

.NET

Kodlama Yaparken Dikkat Edilmesi Gereken Bazı Performans ve Optimizasyon Teknikleri

Merhaba arkadaşlar. Bu makale konumda sizlerle kodlama yaparken dikkat edilmesi gereken bazı performans ve optimizasyon tekniklerinden bahsedip, bunları nasıl ele almamız gerektiğini ve best practice’lerine değineceğiz. Sizlerde biliyorsunuz ki sürdürülebilir bir uygulama geliştirebilmek, hem biz yazılımcılar açısından (ileride gelecek olan yeni fonksiyonlar ve bakım işlemleri) hem de business kuralları gereği (müşteri memnuniyeti vb.) olmazsa olmaz […]

Read More

Asp.Net Web API ve Mimari Özellikleri Kitabı

Merhaba arkadaşlar. Uzun zamandır farklı makale konularım içerisinde de sizlere bahsetmekte olduğum, eski iş arkadaşım Burak TUNGUT ile beraber yazmış olduğumuz Asp.Net Web API ve Mimari Özellikleri kitabım sonunda yayına çıktı. Sizler için kitabı oldukça yalın ve gereksiz konu ve örneklerden uzak tutmaya çalıştık. Bunların yanında ek olarak videolu eğitim kısmında ise real-world bir mimari üzerinde, nasıl bir […]

Read More

ElasticSearch Serisi 01 – C# ile Index Oluşturmak

Merhaba arkadaşlar. Hatırlarsak bir önceki makalem olan “ElasticSearch’e Başlarken (Kurulum, Kibana, Marvel ve Sense)” ile aslında ElasticSearch dünyasına bir adım atmıştık. Bu makale kapsamında ise C# üzerinde ElasticSearch için kullanacak olduğumuz NEST kütüphanesini tanıyacağız ve hemen ardından bir index oluşturacağız. Dilerseniz öncelikle biraz NEST kütüphanesinden bahsedelim. NEST: ElasticSearch’e bağlantı kurabilmemizi, indexleme ve sorgulama gibi işlemleri yapabilmemizi sağlayan ve […]

Read More

WinDBG ile Dump Analizi Yaparak Performans Sorunlarını Çözümleme

Uzun bir aradan sonra tekrardan merhaba arkadaşlar. Bir süredir şirkette yoğun geçirdiğim bir çalışma temposundan sonra, bir makale daha yazabilmeye fırsat bulabildim. :) Bu makaleyi yazma ihtiyacım ise, bir kaç haftadan bu yana mevcut bir sistemin üzerine yerleştirmiş olduğum Asp.NET Web API’da, anlamsız bir şekilde Load Test‘ler sonucunda yeterli response time performansını alamıyor olmam yatıyor aslında. […]

Read More

Lucene.Net Search Engine Kütüphanesi Kullanımı

Merhaba arkadaşlar, uzun bir aradan sonra karşınıza güzel bir kütüphane incelemesi ile geliyorum. Günümüzde yaygınlaşan teknoloji ile artık ciddi anlamda büyük boyutlu veriler ile çalışmaktayız. Zaman zaman bir e-ticaret projesindeki ürünlerin çokluğunu düşünün veya bir sosyal platform sitesini. Özünde geliştirmiş olduğumuz uygulamalarda hepimiz search işlemi yapma ihtiyacı duymaktayız. Eğer geliştirmiş olduğumuz uygulamada verimizin boyutu ciddi […]

Read More

Entegrasyon (Integration) Testi Nedir ve Tipleri Nelerdir

Merhaba arkadaşlar. Bu makalemde sizlerle Test nedir ve neden önemlidir, Entegrasyon Testi nedir ve Entegrasyon Testi Türleri nelerdir hakkında, tecrübelerim doğrultusunda bilgiler sunmaya çalışacağım. Öncelikle Test nedir kavramını kendimce açıklamak istiyorum sizlere: Projemizde geliştirmiş olduğumuz modül veya operasyonel işlerin, doğru bir şekilde çalıştığını veya farklı modüllerinde eklenmesi durumda hala doğru çalıştığını hızlıca anlayabilmemizi sağlayan yapılardır. Test […]

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

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

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

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

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