Linux, Centos 7 Üzerinde .Net Core Proje Yayınlama ve Nginx Server Kurulumu

Merhaba Arkadaşlar, Öncelikle bu yazıda platform bağımsız hale gelen .net için bir konfeti patlatarak işe başlayacağız. 🙂 Özellikle kendi kaynak kullanımından, lisans maliyetlerinden, kaynak yönetiminden bıkan sistemciler ve tabii ki developerlar için böylesi bir icraatı ortaya çıkarmak bana sorarsanız Microsoft için gerçekten bir devrim. Windows’un o yönetimi kolay ancak hantal yapısından bıkan ve linux platformlarında uygulamalarını çalıştırmak isteyip ve fakat .net’ten de kopmak istemeyen developerlar için bu müjde oldukça iyi. Bu yazıda kısaca linux platformunda …

.NET Core 3.0 içerisindeki IHostingEnvironment ile IHostEnvironment – obsolete tipi

.Net 3.0 ile gelen güncellemelerden bir tanesi de HostingEnviroment sınıfında yapılan bir takım temel değişiklikler. Temelde içerisinde yukarıdaki gibi parametreleri barındıran iki adet HostingEnvironment sınıfı mevcut. Bunlardan bir tanesi “Microsoft.AspNetCore.Hosting” diğeri ise “Microsoft.Extensions.Hosting” sınıfına ait namespace’ler. Tabi bu sınıf adları .net core 3.0’a kadar geçerli idi. .Net Core 3.0 itibari ile (3.1 ve muhtemelen üzeri de dahil olacak) aşağıdaki şekilde değiştirildi. Bu şekilde gördüğünüz gibi aslında iki sınıfta birbirinden bir miktar daha farklı veriler tutar …

WordPress nginx 404 Hataları ve Çözümü

WordPress ile özellikle nginix web server’a kurulmuş olan wordpress ile karşılaşılması muhtemel hatalardan biri de “404 Not Found” hatasıdır. Zira nginx üzerinde yapmanız gereken basit bir ayar var iken, eğer bunu bilemiyor iseniz gerçekten bu hata insanı çılgına çevirebilir. Yapmamız gereken aslında ilgili sitenin config dosyasını açarak aşağıdaki “location” kısmını eklemek. Eğer “location /” özelliği var ise yalnızca “try_files” satırını da ekleyebilirsiniz. Yeterli olacaktır. Bazen bunun direk çözüme ulaşmaması durumunda nginx’i restart etmek veya reload …

Dapper – SqlTypeException: SqlDateTime overflow. Must be between

Bu uyarıyı dapper üzerinde alıyor iseniz öncelikle modellemeleriniz kontrol etmenizde fayda var. Özellikle başlıkta Dapper ifadesini kullandım ki, diğer ORM’lerde durumlar biraz daha farklılık gösterebiliyor. Katmanlı bir mimari kullanıyorsanız ve referans aldığınız aşağıdaki gibi bir baseentity class’ınız var ise aynı özelliği iki sınıf içerisinde de kullanmış olabilme ihtimaliniz mevcut. Özellikle sonradan baseentity sınıfı üzerinde yapılan değişikliklerde Visual Studio hemen hata bildirmeyebiliyor. Bu gibi durumlarda mutlaka kontrol yapılmalı ve varsa mükerrer özelikler kaldırılmalıdır. Hatalı örnek; İşte …

WordPress Cloudflare 521 Hatası ve Çözümü

Özellikle kendi sunucunuzu yönetiyorsanız ve de DNS sunucu ve yönlendirici olarak CloudFlare kullanıyorsanız bu bilgi oldukça işinize yarayabilir. Zira bir çok yerde bununla ilgili bir çözümü bulamayabilirsiniz veya oldukça fazla aramanız gerekebilir. Öncelikle 521 hatasını neden alırsınız kısaca ondan bahsedeyim. Aslında bu hata genelde cloudflare’in vermiş olduğu ve sitenizin bir DDOS atak altındaymışçasına bir hisse kapıldığı hatasıdır. Bu hatayı WordPress kurulumunda genelde almazsınız. Hatta sitenizi kurup ayarları yaparken çoğu yerde de almayabilirsiniz. Ancak eğer WordPress …

aaPanel Nedir? Kurulumu Nasıl?

aaPanel,  BAOTA panelinin Uluslararası versiyonudur (www.bt.cn). 2014 yılından bu yana Çin’de BAOTA panelini kurmuş milyonlarca sunucu var. Dünya genelinde de aaPanel bir süredir yayılmaya devam etmektedir. Bu yönetim paneli sayesinde sunucularınızı plesk, cpanel, vb… ciddi aylık fiyatları olan (özellikle Türk Lirası karşılığı olarak) panellere bir alternatif olarak sunucunuzu yönetebileceğiniz bir management panel, yani yönetim paneli uygulaması. Github üzerinden ulaşabileceğiniz açık kaynak kodları, api desteği ve tamamen ücretsiz eklentileri mevcuttur. Giderek yaygınlaşacağını düşündüğümüz aaPanel, şimdilik ücretsiz …

C# ile String Sınıfı ve Genel Metodlar

Merhabalar, bu yazıda biraz da genel string fonksiyonlarından bahsetmek istiyorum. Tabi her birini ayrı ayrı örnek kullanımları ile birlikte test edeceğiz. Bu aşamada ilerlerken eksik bıraktığım veya yanlış belirttiğimi düşündüğünüz alan(lar) olur ise lütfen en alttaki yorumlar kısmından benimle paylaşmaktan çekinmeyin. String.Concat Kullanımı – Birleştirme Metodu String.Concat fonksiyonu ile birden fazla string ifadeyi birleştirme işlemini gerçekleştirebiliriz. Temel olarak aslında dizi birleştirme işlemi için de kullanılan bir yöntemdir. Her ne kadar günlük rutinde çok çok daha …

Host Dosyasına Kayıt Ekleme

Host dosyası bilgisayarınızın bir url sorgulandığında network’e gitmeden önce uğradığı dosyadır. Eğer burada girilmiş bir yönlendirme var ise sorgu direk bu adrese yönlenecektir. Dolayısı bu yöntem ile lokalde bilgisayarın veya sunucunun içerisinde çalışan bir uygulama için istekler hiçbir şekilde network’ten dışarı çıkıp DNS sunucuları dolaşıp tekrar aynı sunucuya dönmeyecektir. Bu aradaki tüm trafikteki zaman kaybını sıfıra indirmiş oluyoruz. Host Dosyası Nerededir? Host dosyası, “C:\Windows\System32\drivers\etc” dizininde yer almaktadır. Herhangi bir uzantıya sahip değildir. Host Dosyası Nasıl …

Html5 Video Player

Bu yazıda kısaca Html5 ile birlikte gelen standart video oynatıcısı ve bir kaç özelliğinden bahsetmek istiyorum. Daha eskiler bilirler hayatımızda bir süre öncesine kadar flash, vb… tabanlı video oynatıcılar hüküm sürüyordu. Epey zamandır bu durum html5 teknolojisi ve daha öncesindeki bazı jquery veya javascript tabanlı eklentiler ile değişmiş durumda. Artık günümüzde bir video oynatmak için bu tip taklalara gerek kalmadan sadece <video> tagi ile bu işlemi yapabiliyor durumdayız. Tabi daha gelişmiş oynatıcılar yine var. Onlara …

Dapper Repository Kullanımı ve Örnek Proje – 1

Merhaba Arkadaşlar, bugün kendimce biraz marjinal bir karar alayım dedim ve dapper repository kullanarak örnek bir proje makale serisi hazırlamaya karar verdim. Bu projenin içerisinde temel olarak sıfırdan bir proje açmayı ve EF, FNhibernet, vs… değil de data katmanında DapperRepository kullanarak işlemlerimi yapmayı düşünüyorum. Dapper Nedir? Son yıllarda yazılımdan çok yazılımın güvenliği, performansı ve işlevselliği daha büyük önem kazanmış durumunda. Bu neden ile aslında kendim de yaptığım ORM testlerinde epey bir fark ile dapper’ın performansını …

TryParse() Kullanımı

C# içerisinde belki de en çok kullandığımız metodlardan biridir. Bir nesneyi dönüştürürken çeşitli hatalar ile karşılaşabiliriz. Bu hataların başında da “object reference not set to an instance of an object” yani “nesne başvurusu bir nesnenin örneğine ayarlanmadı” hatası gelir. Bu hatanın en büyük nedenlerinden biri objenin içeriğinin boş olması veya istediğimiz tipe uygun olmamasıdır. Burada alabileceğimiz hatalardan bir diğeri de; “converting data type varchar to numeric” veya türevi hatalardır. Genel kullanım olarak kurslar dahil bir …

.Net Core ile app.settings Dosyasından Değer Okuma

.Net Core’un hayatımıza girmesi ile aslında pek çok yazılımcı bir bakıma rahat bir nefes aldı diyebiliriz. Elbette yaygın olarak bilindiği üzere bu teknolojinin en önemli ve güzel tarafı şimdilik %90 diyebileceğimiz ve muhtemelen yakında %100 olacak platform bağımsızlığıdır. Örneğin burada yazdığınız bir uygulamayı linux, macOS, windows gibi platformların hemen hepsinde çalıştırabiliyor olmanız, bu teknolojinin getirdiği en büyük yeniliklerin başında geliyor. Tabii ki buradaki %90 tabiri biraz afaki. Zira tüm sınıfların SDK’ları %100 oranında tamamlanmamış olasa …

string.Format() ile Karakter Katarını Formatlama

C# içerisinde belki on binlerce farklı sınıf ve metod var. Peki bunlardan kaç tanesini gerçek anlamları ile kullanıyoruz. Bir çok metod aslında günlük kullanımımız içerisinde kendini çok farklı ortaya çıkarmamızı sağlayan farklı yöntemlerle şekil buluyor kodlama hayatımızda. İşte string.Format() fonksiyonu da kısaca bunlardan bir tanesi. Genel içeriği aşağıdaki şekilde; Yukarıda belirttiğim şekilde, istediğiniz formatı hazırladıktan sonra içerisine istediğini türden objeyi atarak yazınızı oluşturabilirsiniz. Nasıl mı? String.Format Nasıl Kullanılır? Buradaki “2020” hatalı bir yazım değil. Zira …

Ücretsiz E-Posta Sunucusu hMailServer

Merhaba Arkadaşlar, Uzun zamandır yeni makale ile güncelleme yapmıyordum. Bu süreçte araştırdığım ve kullanmaya başladığım bir uygulamadan bahsederek başlamak istiyorum, hMailServer. hMailServer Nedir? Bir çoğumuz, gerek windows gerek ise linux platformlarda çalışabilecek kolay kurulabilir ve yönetilebilir bir e-posta sunucusu kurmak istiyoruzdur mutlaka. İşte hMailServer da bu amaç ile hizmet veren bir e-posta sunucu programı. Yani sunucusunuzdan e-posta gönderip almaya yarayan ve yine sunucunuzu kullanacak kişiler için e-posta hizmeti verebileceğiniz tümüyle ücretsiz bir e-posta hizmet programı. …

C# Asp.Net ve Core İle E-Mail Gönderme

Merhaba Arkadaşlar. Uzun zamandır hiç paylaşım yapmıyordum. Tabi bu arada kodlamalara devam ediyoruz. Hayatın bir gerçeği. 🙂 Az önce belki hayatımda yüzlerce kez kullandığım bir kodu tekrar tekrar yazmak zorunda kaldım. Bu da haliyle bende “neden ben siteme bu kodu hazırlayıp koymadım ki” hissiyatını uyandırdı istemsizce. Bu yüzden de hemen kodu hazırlayıp, açıklamaları ile birlikte siteye atmak istedim. İşte bu paylaşım tamamen böyle bir durumun ürünü. Umarım daha sonralarında size çok çok daha yararlı gelecek …

C# İle Kurulu Bir Uygulamanın Yolunu, Adresini Bulmak

Bilgisayarda kurulu veya yüklü olduğunu bildiğiniz bir uygulamanın tam yolunu bulmak isteyebilirsiniz. Bu gibi bir durumda aslında başvurulması gereken yöntem iç içe bir foreach döngüsü ve Directory sınıfından ibaret olacaktır. Diyelim ki uygulamamızın adı notepad++.exe olsun. Bu dosyanın da C:\Program Files (x86)\ dizininde kurulu olduğunu biliyoruz. İşte bu gibi bir durumda aşağıdaki kodu rahatlıkla kullanabiliriz; Burada, try – catch bloğunu kullanmamın sebebi; Bazı uygulamaların dizinlerine erişmekte başarısız olabiliriz. Örneğin temp klasörü altında veya windows klasörü …

MSSQL İç İçe Sorgular (Select In Select)

Bir tabloya select sorgusunu atarken gelecek sonuçlar içerisinde o tabloyla ilişkili belli alanların da gelmesini isteyebilirsiniz. Elbette bunun için inner join, cross join, left ve right join leri de kullanabilirsiniz. Ancak kimi durumlarda bu sorgular yeterince karmaşık hale gelebilir veya ihtiyacınızı join işlemlerinin hiçbiri göremiyor olabilir. Bu gibi durumlarda bu uygulamaya ihtiyaç duyabilirsiniz. İşte bu tip durumlarda DBA’lar tarafından (Database Admin) çok da tavsiye edilmeyen, ancak developerlar tarafından başvurulan yöntemlerden birisi de iç içe select …

MSSQL – Cursor Kullanımı

MSSQL içerisinde bir çoğumuzun bildiği üzere çok sayıda döngü bulunmamakta. Bu yüzden genellikle WHILE döngüsüne hapsolup kalabiliyoruz. Ancak kimi zaman kayıtlarda işlem yaparken birden fazla alana ihtiyaç duyabiliyor ve o alanları döngünün içerisinde kullanmak isteyebiliyoruz. Aslını isterseniz CURSOR metodu da tam olarak burada imdadımıza yetişiyor. Kendisi WHILE döngüsü ile birlikte kullanılan bir yöntem aslında. Tek farkı da, WHILE ile tek başına rakam içerisinde dönerken CURSOR ile birlikte kullanımında bellekte o döngü sırasına birden fazla değişken …

MSSQL Tüm Tabloları Silmek

Kimi zaman veritabanındaki tüm tabloları silip yerine yeni script içerisindeki tabloları eklemek istersiniz. Tek tek tabloları drop table yaparak silmek de bir seçenek elbette. Ancak çoğu zaman gerçekten eziyet haline gelebiliyor bu durum. Hele de çok sayıda tablonuz var ise. İşte bu gibi durumlar için aşağıdaki kod kısaca işinizi çözecektir. Kısaca şöyle özetleyeyim kodu isterseniz; Bu blokta sql sizin için tüm ilişki şemasını aşağıdaki şekilde bir araya topluyor. Tabii ki ne kadar ilişki var ise …

C# String Compare Methodu ve Kullanımı

string.Compare methodu kısaca iki string değeri karşılaştırmak için kullanılan bir metottur diyebiliriz aslında. Örnek kullanım alanları ise ilk akla geldiği gibi şifre ve şifre tekrar inputbox ları olabilir örneğin. string.Compare metodu, içerisine girilen iki değeri karşılaştırır ve eğer değerler tam uyumlu ise “0”, değil ise girilen değerlerin alfabetik sırasına göre “1” veya “-1” değeri döndürür. Burada dikkat edilmesi gereken, bu metodun orjinal halinde case sensitive, yani büyük/küçük harf duyarlı olmasıdır. Yani “erkan” değeri ile “Erkan” …