C#

.NET CORE ile Şifreleme ve Şifre Çözme (Encryption-Decryption)

Merhabalar;Bu yazımda C# ile Symmetric key kullanarak önceden tanımlanmış AES sınıfı ile şifreleme ve şifre çözme örneği yapacağım. Burada oluşturduğumuz projeye Github adresimden ulaşabilirsiniz. AES algoritması 128, 198 ve 256 bit şifrelemeyi destekler. Symmetric key, veri şifrelemede kullanılan bir dizedir, aynı dize ile hem şifreleme hemde şifre çözme yapılabilir. Projeyi .NET CORE konsol uygulaması ile yapacağız, bu nedenle öncelikle bir proje başlatarak devam edebiliriz. Projemizi oluşturduktan sonra öncelikle dizemizi bir class içerisine alalım, bunun için bir class oluşturuyoruz. Class içeriğimiz aşağıdaki gibidir; Burada, şifreleme ve şifre çözme için “System.Security.Cryptography” namespace kullanan ve burada önceden tanımlanmış olarak bulunan AES class’ını kull...

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...

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...

C# UWP ile Rakamları Nasıl Yazıya Çevirebiliriz?

Merhabalar; Genellikle fatura altlarında gördüğümüz fatura tutarının yazı ile yazılmış şekillerini C# UWP kullanarak nasıl yapabiliriz, hızlıca anlatmaya çalışacağım. Öncelikle Visual Studio ile bir UWP projesi oluşturarak başlıyoruz, oluşturduğumuz projede MainPage.xaml tasarımında sadece formda gösterebilmek amacıyla Grid tagları arasına Number ve Read isimlerinde iki adet TextBlock oluşturuyorum. Daha sonra MainPage.xaml.cs içerisine aşağıdaki kodları ekliyoruz, kodların detaylarını aşağıda belirteceğim. Aşağıdaki kodda Number isimli Textblock’da bir numara set ediyoruz, burada set ettiğimiz değeri harflere dökeceğiz. Daha sonra bu sayı içerisinde ki . ve , ile Tutarı replace ederek birlik, onluk ve binlikleri alıyoruz. Kullanacağımız değişkenleri ayarlıyoruz, ve bir döngü içerisi...

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...

C# UWP – Raspberry Pi Real Time GPIO

Merhabalar;Bu yazımda C# Universal Windows Application ile Windows 10 IOT kurulu bir Raspberry Pi cihazında GPIO pinlerinin durumlarını gerçek zamanlı olarak dinleyen ve ekranda gösteren bir uygulama nasıl yapılır bunu anlatmaya çalışacağım. Bu yazıda yaptığımız projeyi Github sayfandan indirebilirsiniz. Raspberry Pi pinlerini IoT projelerinde giriş-çıkışlarda devamlı olarak kullanıyoruz, bu nedenle bu pinleri dinlemeyi ve her platformda kullanabilmeyi öğrenmek çok önemli. UWP Projesi Oluşturma; Öncelikle Visual Studio ile bir Windows Universal Application projesi oluşturarak işleme başlıyoruz; UWP Tasarım; Projemiz oluşturulduktan sonra MainPage.xaml dosyamızda <grid> tagları arasında aşağıdaki kodları yazıyoruz, öncesinde tasarım ekranımızın boyutunu da ayarlamamız lazım ben Raspberry...

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 ...

Asp.Net Core ile Rest API Oluşturma

Günümüzde Rest API’ler uygulamalarımızın istediğimiz uçlarını başka uygulamalara (mobil vb.) açmanın standart yolu haline gelmeye başladı, hatta geldi diyebiliriz. Bende bu yazımda Visual Studio 2019 kullanarak Asp.Net Core ile nasıl bir Rest Api oluşturacağız onu anlatmaya çalışacağım. Senaryomuz da Api görevlerimiz, Üretim İş Emirlerini oluşturabilecek, var olan iş emirlerini listeleyebilecek, silebilecek ve güncelleyebilecektir. Makalede yaptığımız projeye Github sayfamdan ulaşabilirsiniz. Asp.NET Core Web Application Projesi Oluşturun Visual Studio’yu açarak yeni proje oluşturma aşamasında Asp.Net Core Web Application projesi oluşturuyoruz. Next diyerek ilerliyor, proje bilgilerimizi girdikten sonra Create deyip projemizi oluşturuyoruz, bu aşamadan sonra gelen ekrandan API seçerek deva...