Kayıtlar

Mayıs, 2021 tarihine ait yayınlar gösteriliyor

Middleware nedir? (Gençay Yıldız anlatımından resmedilmiştir)

Resim
  Middleware nedir? Middleware ler ilgili requestin talep amacına ulaşana kadar sonlanmaz. Biri diğerini tetikler. Talep tamamlandığında sonlanır. Startup.cs içerisindeki Configure altındakilerin hepsi birer Middleware dir.  Her request geldiğinde Hello yazdıran bir Middleware oluşturalım. Bunu oluşturmamızın nedeni, bu Middleware den bir önceki Middleware deki RequestDelagate in,  HelloMiddleware i tetikleyebilmesi için  uygun bir imza oluşturduk. Artık customda yapacağımız Middleware içeriğini burada oluşturduk. Böylece startup.cs içeriğini doldurmamış olduk. İdeal kullanım bu şekildedir. startup.cs içeriği kodlarla şişirilmemelidir. Tetikleme işlemini gerçekleştirebilmemiz için, metodumuza gelen next değerini almak için RequestDelagate referansına almam gerekiyor. Bu nedenle bu referans türünde _next değişkeni belirledik. Gelen next değerini bu referansa atadık. Selamin Aleykümm dedik. Httpcontext imizi de göndererek, bizden sonraki Middleware i tetikledik. Böylec...

Asp.NET Core 5.0 - Custom Route Handler Nedir - Custom Route Handler ile Resim Boyutlandirma ( Gençay Yıldız anlatımından resmedilmiştir)

Resim
  Custom Route Handler:  Herhangi bir belirlenmiş route şemasının controller sınfılarından ziyade business mantığında karşılanması ve orada iş görüp respon edilmesi operasyonudur. Map işleminin içinde metod kullanmak yerine bu metodu bir sınıfta yapıp, sınıfı burada kullanmak daha uygun olacaktır. Çünkü startup.cs dosyamız sade, yönetilebilir olmalıdır. Bunun için Handlers isimli klasör oluşturup, içine ExampleHandler.cs oluşturuyoruz. Handlers ile Resim Boyutlandırma işlemi yapalım. Bunun için  ImageHandler.cs içerisinde işlemlerimizi yapıyoruz. Uygulamamıza boyutlandırma işlem kütüphanesi olan MagihImage i ekliyoruz. using ile kullanıyoruz. Böylece bu nesneye işi bittiği anda bellekten temizleyecektir. kullanıcı w yani width değeri ya da h yani height değeri gönderdiyse boyutlandırma işlemlerini yapıyoruz. resmi yeniden boyutlandırdıktan sonra gelen response u siliyoruz.  gelen resmin uzantısı ne ise onun noktasını sildikten sonra uzantımıza ekliyoruz.  Ardınd...

Asp.NET Core 5.0 - Derinlemesine Route Yapılanması( Gençay Yıldız anlatımından resmedilmiştir)

Resim
  Startup.cs altındaki UseRouting(): İlgili isteğe göre hangi controller ın ayağa kaldırılacağını belirler. Yani gelen rotayı ayrıştırma işlemini gerçekleştirir. UseEndpoints: rotaları tanımlama işlemidir. Birden fazla UseEndpoints tanımlayacaksak, özel kullanımdan genel kullanıma doğru sılama yapmalıyız. Çünkü öncelikle özel kullanım kontrol edilmesi uygun olacaktır. Route Constraint: route içerisindeki parametrenin türünü bildirebiliriz. paremetreli uygulanış örneği: id isimli parametre. bu parametre int olacak, ? den dolayı da nullable yani boş değer alabilecek.

Joomla Menu tipinde Modul ve Alt Menuler Ekleme (joomla 3.x sürümünde resmettik ama önceki sürümlerde de benzer)

Resim
  Yönetim panelinde Menus menüsünde Manage alt menüsü ile menü yönetim sayfamıza ulaşabiliriz: Menus: burada modül olarak ekleyeceğimiz menü çatısını oluşturuyoruz. Örneğin şuan 3 menü modülümüz var: Main Menu, test21 ve Top New butonu ile yeni bir Menü Modülü ekliyoruz. Menu items: Oluşturduğumuz çatı için menü içeriklerini belirliyoruz. Örneğin: Top menü modülünü açtığımızda menü elemanları listeleniyor Menu Items seçili iken New butonuna bastığımızda gelen ekranda aşağıdaki işlemleri yapalım: Menü ile sitede oluşturduğumuz Article görüntülenecek Top için yeni bir menü ekleyelim. Bu menü daha önce var olan menünün alt menüsü olacak Artık yeni menümüz listede görüntülenecektir Tanımladığımız ana menü yapıları Modules yönetim sayfasında listelenecektir: Son durumda aşağıdaki gibi görünecektir

Asp.NET Core 5.0 _Layout / _ViewStart ve _ViewImports Dosyaları Nelerdir? Moduler yapi nedir? Partials (Gençay Yıldız anlatımından resmedilmiştir)

Resim
  _Layout Yapılanması Nedir? RenderBody ve RenderSection Fonksiyonları Nelerdir? _Viwestart  Her view içerisinde Layoutu tanımlamak yerine, tek bir noktada tanımlama yapılır ve bütün viewler için geçerliliği sağlanmış olur.  Başlangıç viewine hangi viewi verirsek onu gösterir. Dolayısıyla _Layoutu buraya eklersek, her sayfada görüneceği için sayfalarda ayrıca Layaut eklememize gerek kalmaz. Herhangi bir sayfada viwestart görüntüsünü ezmek istiyorsak Layout=null diyebilir ya da burada istediğimiz başka bir view tanımlayabiliriz. _ViewImports  namespacelerde tanımlı nesneleri view bazlı kullanılabilir hale getiriyoruz. Ancak bu kullanım her sayfada yapıldığında uğraştırıcı olmaktadır.  Modül katmanındaki tüm entitylere view tarafında erişmek için Çözüm olarak ViewImports kullanıyoruz.View klasörü altına _ViewImports.cs ekliyoruz.Burada yapılan tanımlamalara tüm viewler tarafından erişlebilir olacaktır. Örneğimizde,  tüm modellere erişilebilir kıldık.  Ve...

Asp.NET Core 5.0 - Kullanıcıdan Gelen Verilerin Doğrulanması Validations (Gençay Yıldız anlatımından resmedilmiştir)

Resim
  Asp.NET Core 5.0 - Kullanıcıdan Gelen Verilerin Doğrulanması Validations Form üzerinde 3 alanımız var.  Bu alanlardan gelen verileri kontrol etmek için if, switch gibi yapıları kullanmamız, ilerleyen zamanda kodların çöp haline gelmesine neden olur.  Bunun yerine ilgili nesnemizin özelliklerinde kurallar tanımlıyoruz. Bu kurallara data annotations deniliyor. Böylece ifler yazmak yerine ModelState özelliğini kullanıyoruz. Bu kontrolleri MVC yapmış oluyor! Sarı renkle işaretlendiğimiz alanlarda görüldüğü gibi, view tarafına span tagi içine "asp-validation-for" ile yakalanan hataların otomatik olarak formda gösterilmesini sağlayıyoruz.  Server tarafında ModelState ile yakalanan hataları tek tek göstermek yerine, toplu şekilde bir div içinde de gösterebiliyoruz.(kırmızı renkle belirttiğimiz alandaki gibi) ModelMetaDataTypes kullanımı ile Validations Buradaki durum TEK SORUMLULUK PRENSİBİ ne aykırıdır. Diğer bir değişle, SOLID prensiplerinden Single Responsibility prens...

Çözüldü: Joomla WYSIWYG editor hatası / Article ve Modül düzenlenmiyor | editor error/ Article ve Modules not edit

Resim
  ALINAN HATA: Bir article oluşturmak ya da var olanı değiştirmek istediğimizde  ya da  Daha önce html olarak oluşturduğumuz bir modülü değiştirmek istediğimizde "  This module allows you to create your own Module using a WYSIWYG editor  " yazan bir ekran çıkıyor. Ekranda herhangi bir işleme yapamıyoruz. Çözüm: İşlem yaptığınız kullanıcı rolünde başka bir kullanıcı ile işlem yapmanız ya da hata aldığınız kullanıcıyı silip yeniden oluşturmanız durumunda sorun düzelecektir. Bu işlemi yaptıktan sonra ekranımız aşağıdaki gibi geliyor:

Asp.NET Core 5.0 - Kullanıcıdan Veri Alma Yöntemleri - Form-QueryString-Route Parameters-Headers-Ajax Tabanlı Veri Alma-Tuple Nesne Post etme Alma (Gençay Yıldız anlatımından resmedilmiştir)

Resim
Gençay Yıldız kanal aboneliği için: https://www.youtube.com/channel/UCc2xZ26Ih4QVx8uiR4bVLxw/join  Asp.NET Core 5.0 - Kullanıcıdan Veri Alma Yöntemleri - Form-QueryString-Route Parameters-Headers-Ajax Tabanlı Veri Alma- Tuple Nesne Post etme Alma  Form ile veri alma yöntemine bir önceki yazı olan Model Binding Mekanizması anlatımında değindiğimiz için tekrar buraya almadık. Bizim viewimizde bind edilen nesne tekil bir nesne değil. İçerisinde iki tane nesne var. Bunlardan birine product diğerine user isimlerini verdik. Ve formumuzda kullandık. Bu şekilde birden fazla nesne barındıran nesnelere Tuple nesne diyoruz. Bunu yakalayan actionda da farklı bir bind işlemi yapmamız gerekecek. Null hatasını almamak için Get metodunda, viewde kullandığımız model nesnelerimizi içeren, tuple bir nesne oluşturuyoruz. Burada viewde tuple nesnelerimize verdiğimiz isimleri kullanamıyoruz. Item1, Item2 şeklinde kullanmak gerekiyor. Soldan başlayarak nesnelere karşılık geliyor. Örneğimize göre: It...