.NET

.NET’de ElasticSearch ile Çalışma

Merhabalar; Bu yazımda .Net’de ElasticSearch nasıl kullanılır buna bakacağız. ElasticSearch Lucene library’si üzerine inşaa edilmiş çok yetenekli açık kaynak bir metin arama motorudur. ElasticSearch, verileri JSON biçiminde saklayan bir Veritabanıdır. Verileri yapılandırılmamış biçimde saklar. Elasticsearch, indeksleme, otomatik tahmin vb. işlemler için Lucene StandardAnalyzer kullanıyor. Elasticsearch’ün bütün özellikleri bir REST API olarak bulunmaktadır. API’nin yardımıyla, Arama, Verileri Alma, Gönderme, Silme işlemlerini yapabiliyoruz. ElasticSearch Java ile geliştirilmiştir, öncelikle kurulum ve yapılandırması için JRE’yi kurmalıyız. JRE yüklendikten sonra aşağıdaki bağlantıdan ElasticSearch indirerek kurmamız gerekmektedir; https://www.elastic.co/downlo...

C# Asenkron Anti-Pattern’ler | Bölüm 1

Merhabalar;C#’da async ve await, asenkron kod yazmayı basitleştirerek büyük bir iş yaptı, fakat ne yazık ki bu tarz güzel özellikler bile yanlış yapmaktan bizi koruyamıyor.  Bu yazıda, kod incelemelerinde karşılaştığım en yaygın asenkron kodlama hatalarına veya anti-pattern’lere değinmek istiyorum. 1- await Kullanmayı Unutmayın; Task ya da Task<T> döndüren bir method çağırdığınız da, dönüş değerini göz ardı etmemenizde fayda vardır. Daha sonraya erteleyecek şekilde beklemekten kaçınabilirsiniz ama, çoğu durumda bu fonksiyonu beklemeniz anlamına gelir. Aşağıda ki örnekte, Task.Delay‘ı çağırıyoruz, ancak onu beklemiyoruz, “Sonra” mesajı hemen yazdırılacak çünkü Task.Delay (1000) bir saniyede tamamlayacak bir görev döndürüyor, fakat bu g...

Infer.NET Olasılığa Dayalı Programlama

Merhabalar;Bu yazımda Infer.Net ve Olasılığa dayalı programlama nedir bunu anlatmaya çalışacak ve Microsoft tarafından verilen bir örnek üzerinden kod incelemesi yapacağım. Olasılığa dayalı programlama; gerçek işlemlerin istatistiksel modellerini oluşturmamızı sağlar. Infer.NET Yapay zeka alanında Microsoft’un son teknolojilerinden bir tanesi. Model tabanlı makine öğrenme için platform bağımsız açık kaynak bir framework. Peki model tanımlı derken ne demek istiyoruz? Sorununuzu varolan bir makine öğrenme algoritmasını kullanmak yerine tanımladığınız modelden kendi makine öğrenme algoritmasını oluşturarak çözmenizi sağlar. Model tabanlı makine öğrenme, gerçek zamanlı veriler, heterojen veriler, yetersiz veriler, etiketsiz veriler ve eksik parçaları olan veriler gibi belirli veri özelli...

C#’da Sık Yapılan Hatalar ve Çözümleri

Merhabalar; Bu yazımda C# ile yazılım geliştirirken sık yaptığımız programın çalışmasını engellemese bile performans sorunlarına yol açabilecek hataları ve çözüm yollarını anlatacağım. LINQ Kullanımı; Bir program yazarken mutlaka bazı verileri bir list veya collection da saklamamız gerekir ve binlerce kayıt için yenileme yapmak zorunda kalabiliriz. Örneğin bir Depo stok yönetimi sisteminde 200.000 stok kaydını çektiğimizi düşünün, belirli bir data seti bulmak için yenileme yapmak verimli olmaz, döngü kullanmak yerine .NET’in entegre bir özelliği olan ve nesneleri sorgulamamızı kolaylaştıran LINQ kullanabiliriz. Verimsiz; Verimli; Gereksiz “Var” kullanımı; Bazı durumlarda gelen verinin veya oluşan sonucun ne olduğunu tahmin edemediğimiz için var kullanırız, fakat sonucu bi...

C# ML.Net ile Makine Öğrenme | Maaş Tahmini

Merhabalar, bu yazımda 2018 yılında ilk defa hayatımıza giren ML.Net‘i nasıl kullanabileceğimizi öğreneceğiz, bir sektörde personelin çalışma süresi kıdemine göre maaş skalası verileri ile yapay zekamızı eğitecek, sonra bu zamana kadar aldığımız maaşların olduğu bir liste ile ve oluşturacağımız modellerle bundan 8 yıl sonraki maaşımızı tahmin etmesini sağlayacak küçük bir proje ile giriş yapacağız. ML.Net nedir buradan bakabilirsiniz.Bu projenin dosyalarına Github adresimden ulaşabilirsiniz. Öncelikle bir Console Application projesi oluşturuyoruz, ve Nuget yöneticimizden Microsoft.ML kütüphanemizi projemize dahil ediyoruz. Proje Ayarları; x32 ML.Net için desteklenmediğinden dolayı Platformu x64 olarak ayarlıyoruz; Eğitim Dataları; Bu uygulamamızda kullanacağımız verileri bir csv dosy...

DataTable’dan PDF Oluşturma | C# Windows Form

Merhabalar;Windows Form Application projemizde herhangi bir veri kaynağından beslenen DataTable‘da ki verilerin nasıl PDF‘e aktarılacağını bu yazıda anlatacağım. Hazır proje dosyalarına Github adresimden ulaşabilirsiniz. Öncelikle Windows Form Application projesi oluşturarak, ExcelDataReader ve ExcelDataReader.DataSet Nuget paketlerini projemize dahil ediyoruz. Daha sonra DataTable oluşturarak içerisine dataları giriyoruz, bunu herhangi bir database kaynağından da çekiyor olabilirsiniz, ben manuel olarak dataları oluşturdum. DataTable’ı formumuza ekleyelim Şimdi formumuz da bir buton oluşturarak Button_click içerisine aşağıdaki kodları yazalım. Buton işlevine eklediğimiz aşağıdaki kod pdf dönüşümünde Türkçe karakter sorununun önüne geçmemizi sağlıyor. PDF dosyamızın oluşt...

Windows Formlara Sistem Menüsü Eklemek

Merhabalar;Windows form uygulamalarında formun sol üst köşedeki iconuna tıkladığımız da veya üst barda sağ tuşla tıkladığımız da açılan sistem menüsüne nasıl yeni menü ekleyebiliriz bu yazımda bunu açıklamaya çalışacağım. Burada anlattığımı projeyi Github adresinden indirerek üzerinde çalışmanızı öneririm. Öncelikle Windows Form projesi başlatarak devam ediyoruz, oluşturduğumu projede SystemMenu isminde bir class oluşturuyoruz ve kodlarımız aşağıdaki gibi. Defaults…, Properties… ve About… olarak 3 menü ekledik, About menüsün atandığı yeni bir form daha ekliyoruz projemize.AboutDialog.cs MainForm içeriğimiz; ve programımızı çalıştırdığımızda menülerimizin eklendiğini gördük. About’a tıkladığımız da oluşturduğumuz formumuz da açıldı. Projenin kaynak kodlarına Github adresimden ulaşabil...

Raspberry Pi’de C# Uygulamalarını Çalıştırma

Merhabalar; Bu yazımda Raspberry Pi gibi Linux işletim sistemi yüklü cihazlarda alışık olduğumuz C# ile yazılmış Windows uygulamalarının nasıl çalıştırılabileceğini anlatacağım. Aslında Linux’da C# ile proje yapmak istiyorsak .Net Core kullanmak en doğru yöntem fakat .Net Core öğrenmek için henüz fırsat bulamayan geliştiricilerin veya önceden yazılmış küçük programlarını Raspberry Pi’de çalıştırmak isteyenlerin çok işine yarayacak olan “Mono” ile exe dosyalarının nasıl yürütüleceğine bakalım. Not: Öncelikle büyük programların ki aslında büyükten kastım içerisinde farklı 3. parti tool’lar kullandığınız veya henüz Mono tarafından desteklenmeyen işlevlerin olduğu programlarda sorunlar yaşayabilirsiniz. Rasppbery Pi cihazımıza ssh bağlantı yaparak öncelikle güncel...

C# ile Azure Storage Resim Yükleme

Merhabalar;Bu yazımda örnek bir C# console application proje oluşturarak bilgisayarımızda bulunan bir klasördeki resim dosyalarının Azure BlobStorage’a aktarılmasını sağlayacağız. C# Projemize Github adresimden ulaşabilirsiniz. Bunun için öncelikle Azure portaldan Storage Account oluşturuyoruz. Gerekli alanları doldurarak, Hesap Türü olarak “BlobStorage” seçiyoruz ve oluşturmayı tamamlıyoruz. Oluşturma işlemini tamamladıktan sonra Kaynak Grubumuza giderek gerekli Connection Stringi almamız gerekiyor, bunu kopyalayarak bir yere not edelim. C# Projemizi Oluşturuyoruz; Ben demoyu Console Application olarak oluşturacağım, bu nedenle Visual Studio ile bir Console projesi açıyoruz. Projemizde WindowsAzure.Storage nuget paketini yüklüyoruz, Github’da bulunan projemi olduğu gibi kullanabilir veya ...