.Net Core Web Api Tarafında SqlKata ile Sevimli SQL İşlemleri 28 Ekim 2020 Burak-Selim-Senyurt .Net Core Veri odaklı uygulamalarda sorgu komutlarını çalıştırmak için kullandığımız birçok hazır altyapı var. Örneğin .Net dünyasına baktığımızda en temel seviyede Ado.Net ve Object Releational Mapping tarafında Entity Framework sıklıkla karşılaştıklarımız arasında. SqlKata'da bunlardan birisi olarak düşünülebilir. Bir süredir de sağda solda okuduğum makale ve github çalışmalarından dolayı merak edip kurcalamak istediğim bir kütüphaneydi. C# ile geliştirimiş paketin temel amacı SqlServer, PostgreSql, Firebird, MySql gibi veritabanları için kod tarafında ortak bir sorgu oluşturma/derleme arabirimi sunmak ama bunu LINQ sorgu metotları üzerinden SQL dilinin anlaşılır rahatlığında, injection yemeden(Parameter Binding tekniğini kullandığı için) ve cache gibi performans artırıcıları kullanarak sağlamak... [Daha fazla]
Tek Fotoluk İpucu 130 - Distinct Fonksiyonunu IEqualityComparer<T> ile Özelleştirmek 12 Nisan 2016 Burak-Selim-Senyurt Tek Fotoluk Ipucu Koleksiyon bazlı veri kaynaklarında LINQ(Language INtegrated Query) sorgularını yoğun şekilde kullanmaktayız. LINQ bildiğiniz üzere pek çok genişletme metodundan oluşan ve ifadesel olarak koleksiyonlar üzerinde SQL benzeri sorgular yapabilmemizi sağlayan bir alt yapı sunmaktadır. Sıklıkla Select, Where, Count, Sort, Max, Min, Reverse, GroupBy, OrderBy ve daha pek çok metodu kullanırız. Bunlar zaman zaman ifadeler şeklinde ele aldığımız gibi zaman zamanda metod zincirleri biçiminde değerlendiririz. [Daha fazla]
Hamming Distance Algoritmasının Basit Kullanımı 13 Ocak 2016 Burak-Selim-Senyurt C#, Ruby Hamming Distance, Amerikalı Matematikçi Richard Hamming tarafından bulunmuş olan ve kodlama teorisinde geçen vektör bazlı bir karşılaştırma algoritmasıdır(Bu adresten teori hakkında biraz bilgi alabiliriz) Programlama tarafından baktığımızda çoğunlukla eşit uzunluktaki içeriklerin benzerliklerine ilişkin bir mesafe ölçüsünün bulunmasında kullanılır. Bu sayede bir metnin diğerine dönüştürülebilmesi için kaç adımlık değişime ihitiyaç duyulduğu da hesaplanabilir. Ya da benzerliğin ne kadarlık bir değere denk geldiği anlaşılabilir. Hata tespiti ve düzeltilmesi, grafik dosyaları üzerinden şekil eşleştirmelerinin(Shape Recognation) yapılması gibi hesaplamalarda kullanılmaktadır. Aslında örnekler ile konuyu daha iyi anlayabiliriz. Basit düşünmeye çalışalım ve aşağıdaki gibi bir kaç kelime çiftini ele alalım. [Daha fazla]
Tek Fotoluk İpucu 117 - LINQtoExcel ile Hello World 20 Haziran 2015 Burak-Selim-Senyurt Tek Fotoluk Ipucu Yine çok sıkıldığınız günlerden biri ve siz şöyle bir yarım saatlik kodlama uğraşı arıyorsunuz. Hani yeni birNuGet paketi denesem nasıl olur diyorsunuz belki de. Hatta azcık da zorlayıcı bir paket olsa, yükleyince hemen çalışmasa ama çok da vaktimi almasa derdindesiniz. Bir bakıyorsunuz karşınızda Excel dosyalarındaLINQ(Language INtegrated Query) sorguları yazabilmenizi sağlayan LINQtoExcel. Hemen örnek bir Exceldosyası oluşturuyorsunuz belki de. [Daha fazla]
Tek Fotoluk İpucu 113 - Dapper.Net ile Hello World 07 Haziran 2015 Burak-Selim-Senyurt Tek Fotoluk Ipucu Gecenin bir yarısı. Bilgisayarınızın başındasınız. Önünüzde Visual Studio. Yanınızda kahveniz/çayınız. Canınız da sıkılmış. Acaba ne yapsam da vaktimi iyi değerlendirebilsem diye düşünüyorsunuz. Böyle hallerde şöyle bir NuGet paketi bulup araştırmak bünyeye iyi gelebiliyor. Bunun için Nuget Must Haves isimli siteyi ziyaret edebilirsiniz. Diyelim ki öyle bir gece ve orada Dapper.Net diye bir paket gördünüz. Hatta azcık Entity Framework, Oracel/SQL ve O-RM(Object Relational Mapping) bilginiz var. Hazır elinizin altında da Microsoft'un emektar Northwind veritabanı. O halde ne duruyorsunuz. Bir Hello World diyivirsiniz ya! [Daha fazla]
NoSQL Maceraları - db4o ile Hello World 12 Kasım 2013 Burak-Selim-Senyurt NoSQL Apache Cassandra, RavendDb, Dex, StsDb derken sıra geldi nesne veritabanlarından(Object Database) birisi olan db4o’ ya(Database for Objects şeklinde çevirebiliriz sanırım) Object tipinden bir NoSQL(Not-Only SQL) veritabanı olan db4o ürününün, Java ve .Net platformları için sürümleri bulunmaktadır(Hatta Mono desteği de mevcuttur). Aslında %100 Java ile geliştirilmiştir ve açık kaynak Sharpen ile C# diline de çevrilmiştir. Bu da onun popüler olmasını sağlayan unsurlardan bir tanesidir(Yazının hazırlandığı tarih itibariyle .Net Framework 3.5/4.0 ve platformlarını hedef alan versiyonları vardı) [Daha fazla]
Tek Fotoluk İpucu 95–OfType<T> 25 Mart 2013 Burak-Selim-Senyurt Tek Fotoluk Ipucu Merhaba Arkadaşlar, LINQ(Language INtegrated Query) tarafını her ne kadar yoğun kullanıyor olsak da gözümüzden kaçırdığımız, dikkat etmediğimiz, yerine yeni geliştirmeler yaptığımız ama aslında bizim kullanmamızı bir köşede bekleyen fonksiyonlar vardır. Örneğin kalı... [Daha fazla]
Tek Fotoluk İpucu 76–Bir Listeyi Shuffle’ lamak 30 Ocak 2013 Burak-Selim-Senyurt Tek Fotoluk Ipucu Merhaba Arkadaşlar, Malum hepimizin devasaaa/kocaman boyutlarda MP3 arşivleri var ve genelde müzik dinlerken de uygulamaların shuffle özelliklerini açarak, karışık sırada dinlemeyi tercih ediyoruz. Peki kendi tiplerinize ait generic bir listeyi Shuffle’ layarak kullanmak... [Daha fazla]
Tek Fotoluk İpucu 75–LINQ ile Rastgele Eleman Çekmek 04 Ocak 2013 Burak-Selim-Senyurt Tek Fotoluk Ipucu Merhaba Arkadaşlar, Pek çoğumuz Random tipini kullanır ve bir listeden rastgele elemenalar üretmeye veya elde etmeye çalışırız. Peki T tipinden bir listeden herhangibir anda rastgele eleman almak isteseniz ve bunu bir Extension metod olarak tasarlamayı planlasanız...Nasıl bir yol... [Daha fazla]
Tek Fotoluk İpucu–74–SequenceEqual<T> 10 Aralık 2012 Burak-Selim-Senyurt Tek Fotoluk Ipucu Merhaba Arkadaşlar, Diyelim ki uygulamanızda zaman zaman da olsa farklı referanslar da duran ve aynı tipte elemanlardan oluşan koleksiyonlarınız oluşuyor ve bunları yeri geldiğinde birbirleri ile kıyaslamak istiyorsunuz. Ne yaparsınız? Mantıksal olarak her iki koleksiyonu dolaşacak ortak bir d&oum... [Daha fazla]
Tek Fotoluk İpucu–73–LINQ to Excel için Strongly Typed Tip Kullanmak 27 Kasım 2012 Burak-Selim-Senyurt Tek Fotoluk Ipucu Merhaba Arkadaşlar, Bir önceki ip ucunda LINQ to Excel Provider’ dan yararlanmış ve bir Excel dosyasını kolayca nasıl sorgulayabileceğimizi görmüştük. Peki ya Excel tablosunda yer alan satırları, kod tarafında oluşturacağımız Strongly Typed sınıflar içerisindek... [Daha fazla]
Tek Fotoluk İpucu–72–LINQ to Excel ile Basit Sorgulama 23 Kasım 2012 Burak-Selim-Senyurt Tek Fotoluk Ipucu Merhaba Arkadaşlar, Zaman zaman siz de benim gibi LINQ ile yazılmış çeşitli Provider' lara şöyle bir göz gezdirenlerden misiniz? Belki siz de LINQtoEXCEL provider' ını duymuşsunuzdur. NuGet paket yönetim aracı yardımıyla indirip kullanabileceğiniz bu sağlayıcıyı duymadıysanız... [Daha fazla]
Tek Fotoluk İpucu–68–Reflection ile Workflow Activity Yüklemek, Çalıştırmak 12 Ekim 2012 Burak-Selim-Senyurt Tek Fotoluk Ipucu Merhaba Arkadaşlar, Diyelim ki elinizde içerisinde bi dünya Workflow Activity’ si olan bir kütüphane var. Ancak bu kütüphane projenize referans edilmiş değil. Fiziki bir klasörde tutulmakta. Siz de istiyorsunuz ki, bu kütüphane içerisinde ... [Daha fazla]
Windows Phone 7 Cihazlarda LINQ to SQL Kökenli Veritabanı ile Çalışmak 11 Ekim 2012 Burak-Selim-Senyurt Windows Phone 7 Geçtiğimiz günlerde Feedreader üzerinden blogları şöyle bir tararken Windows Phone üzerinde kullanılabilecek olan veri depolama seçenekleri ile ilişkili kısa bir nota rast geldim. Özellikle Isolated Storage tabanlı depolamalar üzerinde durulmaktaydı. Derken kendimi konuyu araştırır halde buldum. İşte bu yazının amacı elde edilen sonuçlar ve hoşunuza gidecek(hoşuma gidecek) bir örneği kaleme almak [Daha fazla]
Tek Fotoluk İpucu 67.75–Asp.Net 4.5 ControlAttribute 02 Ekim 2012 Burak-Selim-Senyurt Tek Fotoluk Ipucu Merhaba Arkadaşlar, Asp.Net 4.5 ile gelen önemli tiplerden birisi de, System.Web.ModelBinding isim alanı(System.Web.dll assembly’ ı içerisindedir) altında yer alan ControlAttribute niteliğidir(Attribute). Metod parametrelerine uygulanabilen bu nitelik ile, veri bağlı kontrollerin(... [Daha fazla]
Tek Fotoluk İpucu 67.5–Asp.Net 4.5 No More DataBind 25 Eylül 2012 Burak-Selim-Senyurt Tek Fotoluk Ipucu Merhaba Arkadaşlar, Asp.Net 4.5 Web Forms tarafında gelen yeniliklerden birisi de, veri bağlı kontrolleri IQueryable<T> veya IEnumerable<T> tipinden arayüz referanslarına bağlarken DataBind fonksiyon çağrısı yapılması zorunluluğu olmamasıdır. Bu sayede Markup tarafında sadec... [Daha fazla]
Tek Fotoluk İpucu–67–Fibonacci, LINQ, Skip ve Take 22 Eylül 2012 Burak-Selim-Senyurt Tek Fotoluk Ipucu Merhaba Arkadaşlar, Biliyorsunuz .Net Framework 4.0 ile birlikte BigInteger tipi geldi ve çok büyük sayıları kullanabilir olduk. Şimdi diyelimki eğlencelik olsun diye Fibonacci sayılarının sonlu kümesine ve bu kümedende istediğiniz indexte başlayıp istediğiniz miktarda al... [Daha fazla]
Tek Fotoluk İpucu 64 – Assembly Adresinden Object Üretmek 10 Eylül 2012 Burak-Selim-Senyurt Tek Fotoluk Ipucu Merhaba Arkadaşlar, Bazen reflection tekniklerini kullanarak harici assembly’ lar içerisinden bulduğumuz tiplerin örneklerini ürettirme ihtiyacı duyabiliriz. Bunun için kullanabileceğimiz pek çok yol vardır aslında. Örneğin tipin bulunduğu Assembly dosya ad... [Daha fazla]
Tek Fotoluk İpucu 61–Primitive Olmayan Property’ leri Bulmak 26 Temmuz 2012 Burak-Selim-Senyurt Tek Fotoluk Ipucu Merhaba Arkadaşlar, Diyelim ki bir değişkenin tipinin içerisinde yer aldığı Assembly’ daki diğer tiplerin Primitive olmayan(int,double,char vb) özelliklerini bulmak gibi bir ihtiyacınız var. Nasıl bir yol izlersiniz? Kuvvetle muhtemel Reflection’ dan yararlanırsınız. Hatta b... [Daha fazla]
Tek Fotoluk ipucu - 57 LINQ Tarafında Cross Join 11 Temmuz 2012 Burak-Selim-Senyurt Tek Fotoluk Ipucu Merhaba Arkadaşlar, Elinizde iki adet nesne koleksiyonu olduğunu ve bunların veri satırı bazındaki olası eşleşmelerine ait kartezyen tablosunu elde etmek istediğinizi düşünün. Aşağıdaki gibi bir sorgu, SQL tarafındaki Cross Join etkisini LINQ ile de gerçekleştirebileceğimizi g... [Daha fazla]
Tek Fotoluk Ipucu 56 – LINQ Metodlarında String Sorgular 08 Temmuz 2012 Burak-Selim-Senyurt Tek Fotoluk Ipucu Merhaba Arkadaşlar, Bazı durumlarda Entity Framework tabanlı nesne koleksiyonlarını sorgularken, Extension Method’ lar içerisine gelecek olan sorgulama ifadelerinin string bazlı olarak gelmesi söz konusu olabilir. Örneğin servis metodlarının istemci tarafından parametre olara... [Daha fazla]
Tek Fotoluk İpucu 55 - Distinct ve IEqualityComparer 04 Temmuz 2012 Burak-Selim-Senyurt Tek Fotoluk Ipucu Merhaba Arkadaşlar, Diyelim ki elinizde kendi tipinize ait generic bir liste ve bu liste içerisinde veri bazında tekrarlı nesne örnekleri var. Örneğin bir ürün listesi ve bu liste içerisinde aynı üretici adına ait pek çok kayıt olduğunu düşüne... [Daha fazla]
Tek Fotoluk İpucu 50 - Pivot Taklidi Yapan LINQ 05 Nisan 2012 Burak-Selim-Senyurt Tek Fotoluk Ipucu Merhaba Arkadaşlar, Elimizde ülke bazlı bir toplam satış rakamlarını içeren bir veri listesi olduğunu düşünelim. Normal şartlarda bu tip bir çıktıyı sorguladığımızda veri içeriği ülke bazlı olacak şekilde dikine akacaktır. Ancak istediğimiz çıktı, &uu... [Daha fazla]
Tek Fotoluk İpucu-46(LINQ Aggregate Fonksiyonları) 05 Şubat 2012 Burak-Selim-Senyurt C#, Tek Fotoluk Ipucu Merhaba Arkadaşlar, LINQ tarafında Sum,Max,Min,Average gibi bazı hesaplama fonksiyonları vardır. Bunlara ait örnek bir kullanımı aşağıda bulabilirsiniz Aggregation.rar (22,75 kb)
Tek Fotoluk İpucu-41(Let Keyword) 21 Kasım 2011 Burak-Selim-Senyurt C#, Tek Fotoluk Ipucu Merhaba Arkadaşlar, LINQ sorgularını pek çoğumuz etkin bir şekilde kullanıyoruzdur. Ama belki aralarda atladığımız keyword' ler de vardır. Mesela Let. Çık sık kullanmasakta oldukça işimize yarayan bir anahtar kelimedir. Söz gelimi onu bir ifadeye eşitleyip LINQ sorgusunun ... [Daha fazla]