Switch Case Kullanmadan Kod Yazılabilir mi? 25 Aralık 2019 Burak-Selim-Senyurt C# Bu yazıda switch case kullanmadan nasıl kod yazabileceğimizi anlamaya çalışacağız. İşin içerisine SOLID(Single Responsibility, Open Closed, Liskov Substituion, Interface Segregation, Dependency Inversion) ilkelerinden open-closed principle ve tasarım kalıplarından Strateji girecek. Eğlenceli olduğu kadar Sonarqube bulgularını memnun edecek bir kod parçasını nasıl geliştirebileceğimizi göreceğiz. [Daha fazla]
Dependency Injection'ın TDD'deki Yeri 21 Aralık 2018 Burak-Selim-Senyurt C# Test odaklı yazılım geliştirirken özellikle entegrasyon testlerinde(Integration Tests) yaşadığımız önemli sorunlardan birisi de test edilen nesnelerin diğer nesnelerle olan bağımlılıklarıdır. Söz gelimi test edilmek istenen birimin bağımlılıkları arasında servis çağrıları, veritabanı operasyonları veya uzak sunucu dosya hareketleri gibi işlemler söz konusuysa otomatik olarak çalıştırılan birim testlerinin CI sürecini sekteye uğratmaması için bir şeyler yapılması gerekebilir. Biliyorum çok karışık bir paragraf ile işe başladım. O yüzden problemi ortaya koymak adına aşağıdaki kod parçalarını göz önüne alalım. [Daha fazla]
JSON to BSON 01 Mayıs 2017 Burak-Selim-Senyurt C# Amacımız çalışan listesinin içeriğini BSON formatında bir dosyaya yazdırmak ve sonrasında bu içeriği tekrar okuyup ters-serileştirme işlemini gerçekleştirerek ekrana yazdırmak. [Daha fazla]
Tek Fotoluk İpucu 133 - Yüklü OLEDB Provider Listesinin Bulunması 16 Eylül 2016 Burak-Selim-Senyurt C# Merhaba Arkadaşlar,Malumunuz büyük çaplı sistemler kolay kolay yenilenmiyorlar. An [Daha fazla]
Oracle View' ları için Otomatik DataTable' lar Üretmek 19 Mart 2016 Burak-Selim-Senyurt C# Üzerinde çalıştığımız ve uzun süredir canlı ortamda yaşamakta olan eski bir ürünümüz geçtiğimiz günlerde kod kalite taramalarından birisine girdi. Vaktinde her zaman olduğu gibi alel acele yazılmak zorunda olan kodlar bir kaç ana kategori altında çeşitli tipte ihlallere yakalandı. Bunlardan birisi de Strongly Typed DataSet kullanımına ilişkindi. [Daha fazla]
Tek Fotoluk İpucu 128 - IFormattable ile Sihir 13 Ocak 2016 Burak-Selim-Senyurt C# Merhaba Arkadaşlar,Bildiğiniz üzere .Net çatısı altında bir çok arayüz(Inte [Daha fazla]
Hamming Distance Algoritmasının Basit Kullanımı 13 Ocak 2016 Burak-Selim-Senyurt C#, Ruby Hamming Distance Algoritmasının Basit KullanımıMerhaba Arkadaşlar,Geçtiğimiz günlerde [Daha fazla]
Bir Tip Ağacındaki Aynı İsimli Özelliklere Değer Atamak 07 Aralık 2015 Burak-Selim-Senyurt C# Çalışmakta olduğumuz projelerde zaman zaman bizi zorlayan vakalar ile karşılaşıyoruz. Bu gibi durumlarda Google abimiz en büyük yardımcımız olabiliyor. Hatta pek çoğumuz sorunların çözümünde Stackoverflow gibi kaynaklardan yararlanıyor ya da daha deneyimli birisinden yardım istiyor. Ne var ki bazı vakaları kendimiz çözmeye çalışsak çok daha yararlı olabilir. [Daha fazla]
Tek Fotoluk İpucu 122 - Regex ile MatchEvaluator Kullanımı 29 Kasım 2015 Burak-Selim-Senyurt C# Merhaba Arkadaşlar,Geçtiğimiz günlerde üzerinde çalıştığımız bir projede, sıkıştırılmış metinse [Daha fazla]
TCP Bazlı Soket Haberleşmesinde Sertifika Kullanımı 09 Kasım 2015 Burak-Selim-Senyurt C# Günümüzde geliştirilen yazılım ürünleri çoğunlukla farklı uygulamalar ile de konuşmak durumunda. Sistemler sürekli birbirleri ile konuşan parçalar bütünü halinde genişlemeye devam ediyor. Akıllı cihazlar büyük ölçekli sistemlerin birer parçası olup çeşitli iş süreçlerinin işletilmesinde rol alıyor. Bu iletişimde servislerin de yeri var. [Daha fazla]
Biyütıful Kod - Ninject ile Bir Dependency Injection Macerası 04 Ocak 2015 Burak-Selim-Senyurt C#, Tasarım Prensipleri(Design Principles) Merhaba Arkadaşlar,Her yazılım geliştirici özellikle büyük bir projeye girdiğinde kodlarının kalite [Daha fazla]
NLog için Oracle Database Kullanmak 17 Temmuz 2014 Burak-Selim-Senyurt C# Merhaba Arkadaşlar,Animasyon film meraklısı olupta Pixar’ ın 2003 yapımı Nemo’ sunu izl [Daha fazla]
C# 6.0–Yeni Esintiler 03 Nisan 2014 Burak-Selim-Senyurt C#, C# 6.0 İngilizce kelime anlamı Build olan inşa etmek(yapmak, kurmak) üzerine bu aralar uzak uzak diyarlarda da yapılmakta olan konuşmalar da var. Evet tahmin ettiğiniz gibi Microsoft’ un Build etkinlikleri dolayısıyla yazılım dünyasında hareketli günler yaşanmakta. Yeni ürünler, var olan ürünlere eklenen yeni özellikler, gelecek ile ilişkili planlamalar ve diğerleri. Konuşulabilecek ve üzerinde durulabilecek pek çok konu var. Benim dikkatimi çeken nokta ise bir süredir varlığından haberdar olduğumuz ve şu anda Roslyn’ in End User Preview sürümü ile Visual Studio 2013 üzerinden anında inceleyebileceğimiz C# 6.0 dili ile ilişkili yeni kabiliyetler. Bu yazımızda söz konusu yeteneklerden bir kaçına kısaca değinmeye çalışacağım. Amacımız öncelikli olarak söz konusu bu yeteneklerin ne olduklarını kavrayabilmek. [Daha fazla]
Excel İçeriğini DataSet Olarak Sisteme Katmak 18 Mart 2014 Burak-Selim-Senyurt C# Bazen geliştirme ortamımız ile yazılan uygulamanın taşınacağı ortamlar arasında ciddi ve keskin farklılıklar bulunur. İki resim arasındaki 9 farkı bulunuzdan öte, geliştirici ekiplerinin bu farkları bilerek kodlama yapmasında yarar vardır. Tabi bazı yazılım ekiplerinde Development sunucularının sanallaştırılmış versiyonları üzerinde geliştirme yapabilme imkanı da vardır. [Daha fazla]
Fluent Interface Prensibi ile Daha Okunabilir Kod Geliştirmek -2nci Yarı 06 Ocak 2014 Burak-Selim-Senyurt C# Bir önceki görsel dersimizde Fluent Interface prensibini nasıl kullanabileceğimizi görmüştük. Bu sefer Generic tip kullanan bir versiyonunu geliştireceğiz. İşin içerisine Generic mimari Reflection kavramı ile Expression<> ve Func gibi tipleri de katacağız. Amacımız sadece belirli bir tip için değil bazı kıstaslara uyan her hangibir T tipi için Fluent Interface prensiplerini uygulatabilmek. Buyrun izleyelim. [Daha fazla]
Fluent Interface Prensibi ile Daha Okunabilir Kod Geliştirmek - 1nci Yarı 23 Aralık 2013 Burak-Selim-Senyurt .Net Temelleri, C#, Tasarım Kalıpları(Design Patterns), Tasarım Prensipleri(Design Principles) Merhaba Arkadaşlar,Keşfedilmesi, anlaşılması ve okunması kolay kod geliştirmek, özellikle dışa [Daha fazla]
Çalışma Zamanında Generic Tip Üretmek, Generic Metod Çağırmak 01 Kasım 2013 Burak-Selim-Senyurt C# Merhaba Arkadaşlar, Bu görsel dersimizde çalışma zamanında kullanılabilecek örnek senaryolardan birisine daha değinmekteyiz. İlk amacımız Generic olarak tanımlanmış bir tipin çalışma zamanında üretilmesini sağlamak(Örneğin List<T> koleksiyonunun) Diğer amacımız ise generic bir metodun yine ça... [Daha fazla]
Çalışma Zamanında Class,Property, Module ve Assembly Üretmek 10 Ekim 2013 Burak-Selim-Senyurt C# Merhaba Arkadaşlar, Şöyle bir senaryo düşünelim; Bir Excel dosyasında yer alan sayfa ve kolon bilgilerini programatik ortamda ifade etmek istiyoruz. Ancak Excel dosyası oldukça büyük. Sheet ve kolon sayıları çok fazla. Bir şekilde dosyayı okumayı, kolon adları... [Daha fazla]
Dosya Satır Sayısını Bulmak 06 Ekim 2013 Burak-Selim-Senyurt C# Malum Bankaların sistemleri halen daha eski olabildiğinden, bölümler arası veya uygulamalar arası veri aktarmanın en popüler yollarından birisi olarak Text tabanlı dosya formatları göz önüne alınmaktadır. Bazen onlarca megabyte' ı aşan ve milyonlarca satırdan oluşabilen düzenli text dosyaları söz konusu olur ve bunların bir şekilde uygulamaların konuştuğu veritabanı ortamlarına işlenerek, ilişkisel veri bütünlüğü içerisinde yerlerini alması beklenir. [Daha fazla]
Sıralama Algoritmaları - Hangisi Daha Hızlı (Bubble, Quick, Insertion, Selection, Shell, Merge, Heap) 24 Eylül 2013 Burak-Selim-Senyurt C#, Data Structures, Algorithms Özellikle bu algoritmaların dil bağımsız olan Pseudo Code içeriklerinden yararlanarak her hangi bir dile uygulanmaya çalışılması üzerine epeyce kafa yormuşuzdur. C, C++, Java, Basic, Pascal ve benzeri temel programlama derslerinde edindiğimiz bilgiler ile bu algoritmaları yazmak için çokça uğraşmışızdır. Tabi üzülerek söylemeliyim ki ben üniversite yıllarındayken Bubble ve Quick Sort sıralama algoritmalarından fazlasını ne yazık ki göremedim. [Daha fazla]
Sıfır Sabit Değeri ve Enum Sorunu 19 Eylül 2013 Burak-Selim-Senyurt C# C# konulu yeni bir bilmece ile karşı karşıyayız. Bu sefer kolay kolay fark edemeyebileceğimiz, basit ama irdelenmesi gereken bir vakayı göz önüne alacağız. [Daha fazla]
MigraDoc ile PDF Rapor Üretimi - Hello World 18 Ağustos 2013 Burak-Selim-Senyurt C# Özellikle veri odaklı(Data-Centric) çalışan uygulamalar düşünüldüğünde çeşitleri ne olursa olsun raporlama, işin oldukça önemli bir parçasını oluşturmaktadır. Ağırlıklı olarak rapora ihtiyaç duyan pozisyonlar, söz konusu raporları çeşitli ortamlarda görmek isteyen elemanlardır. Örneğin bunları Web arayüzünde açabilmeyi, Excel veya Word formatındaki dosyalara çıktı olarak alabilmeyi ve mobil cihazlarından takip edebilmeyi isterler. Günümüzün pek çok modern uygulaması zaten bu tip çıktıların alınmasını standart olarak olanak sunmaktadır. [Daha fazla]
Hanoi Towers Probleminin Recursive Çözümü 13 Haziran 2013 Burak-Selim-Senyurt C# Bu görsel dersimizde eğlenceli Matematik oyunlarından birisi olan Hanoi Kuleleri problemini, Recursive bir metod yardımıyla nasıl çözebileceğimizi incelemeye çalışıyoruz. İlk olarak problemi tanımlıyor ve oyunun kurallarına kısaca bakıyoruz. Sonrasında ise 3 disk için gerçekleştirilen çözümü simüle ediyoruz. Problemin çözümü için kullanılan alt problem parçalarını tanımlıyor ve C# ile kodlama işlemlerini gerçekleştirerek uygulamamızı inşa ediyoruz. [Daha fazla]
C#’ ın Enteresan Yanları 09 Haziran 2013 Burak-Selim-Senyurt C# İşte size C# dili ile ilişkili olarak pek çoğumuzun hatırından giden bir kaç enteresan vaka… [Daha fazla]
Recursive Fibonacci Neden Yavaş? 07 Haziran 2013 Burak-Selim-Senyurt Algoritma, C# Okulda “Algoritma ve Veri Yapıları” dersinde ya da C# benzeri nesne yönelimli(Object Oriented) bir dili öğrenmeye başladığımız ilk zamanlarda, karşımıza muhakkak Recursive fonksiyonlar çıkmıştır(Çıkmaya da devam edecektir). Hatta en meşhur olanları da, bir sayının faktöryelinin (6!=6x5x4x3x2x1=720 ve 0!=1) bulunması veya Fibonacci sayı dizisinin(0,1,1,2,3,5,8,13,21,34…, Fn=(Fn-1(+(Fn-2)) ardışıl olarak ekrana yazdırılmasıdır. [Daha fazla]