#20- Asp.NET Core 6 + Angular İle Mini E-Ticaret | Fluent Validation İle ValidationFilter

  Рет қаралды 11,915

Gençay Yıldız

Gençay Yıldız

Күн бұрын

Github : github.com/gnc...
#aspnetcore6 #angular #eticaret #aspnetcoreuygulama #onionarchitecture #angular #angular13 #fluentvalidation
Bu video Gençay Yıldız tarafından NGAkademi bünyesinde ücretsiz çekilmiştir.
Gençay Yıldız'ın Bloğu
www.gencayyild...
Güncel Duyuru ve Bildiriler İçin Sosyal Medya Hesaplarımız
/ ngakademi.sosyal
/ ngakademi
/ ngakademii
Bana destek olmak için kanalıma üye olabilirsiniz:
/ gençay yıldız

Пікірлер: 79
2 жыл бұрын
Değerli arkadaşlar, 46:55'te aldığımız hatanın sebebi ilgili parametrenin tip güvenliğini sağlamak için verdiğimiz yanlış formattan kaynaklanmaktadır. Eğer ki parametrenin bir function olduğunu bildirmek istiyorsak aşağıdaki formatta tip güvenliğini sağlıklı bir şekilde sağlayabiliriz. -> errorCallBack?: (errorMessage: string) => void *********** create(product: Create_Product, successCallBack?: any, errorCallBack?: (errorMessage: string) => void) { ... }
@semihatalay865
@semihatalay865 2 жыл бұрын
Hocam yorumu sabitlerseniz iyi olur .
@emrecoskun4171
@emrecoskun4171 2 жыл бұрын
Hocam iyi günler, Bu şekilde yapsak da yapmasakta subscribe'ın üstünü çiziyor muhtemelen bir şey daha istiyor ama çözemedim github üzerinden kodlarınıza baktım fakat orda da aynısını yapmışsınız subscribe etmediği için kayıt almıyor sanırım.
@emrecoskun4171
@emrecoskun4171 2 жыл бұрын
Hocam kusura bakmayın swagger açık değilmiş :D. Kolay gelsin iyi çalışmalar.
@semihatalay865
@semihatalay865 2 жыл бұрын
@@emrecoskun4171 swagger'dan kaynaklı mı ciziyormus bende de ustunu ciziyor
@emreaka3965
@emreaka3965 2 жыл бұрын
@@semihatalay865 Onunla alakası yoktur.
@ozanfiliz4636
@ozanfiliz4636 2 жыл бұрын
"Lütfen stok bilgisini adam gibi giriniz." Hocam harikasınız 😂😂😂
@tunazorlu
@tunazorlu 2 жыл бұрын
ben "ya neyse artık" girdim :D
@salam2568
@salam2568 4 ай бұрын
17:12 Kullanıcıya hitap edicek şekilde yazmamız doğru olucaktır."Orda ürünün adını istiyoruz sende belki zeka problemi ola bilir. Lütfen adını giriniz". Harikasınız hocam))
@yazilimciyizBiz
@yazilimciyizBiz Жыл бұрын
11.03.2023 Tekrar dan yazdım programı ve yeniden dinledim. Hocam bu videoya alma düşüncesi ne kadar güzel bir nimet. Yoksa nerden bulacaktık sizi, Tekrar Tekrar...
@Furki4_4
@Furki4_4 Жыл бұрын
Teşekkürler hocam. Son 5 gündür kafayı toparlayıp adamakıllı çalışamıyordum, sonunda tekrardan seriye devam edebildim. Hepimize geçmiş olsun...
@muhammedyucedag
@muhammedyucedag Жыл бұрын
furkan sizin iletişime geçebileceğim bir linkedin hesabınız varmıdır ?
@kazimkesler
@kazimkesler 7 ай бұрын
İzlemeye ve uygulamaya devam ediyorum, daha önceki ef core, net core vs kurslarınızı tamamıyla bitirdim. Emeklerin boşuna gitmiyor bilgin olsun Gencay baba
@muhmkaraca
@muhmkaraca 2 жыл бұрын
Hocam emeğinize sağlık çok şey öğreniyoruz. Şu oynat listesinin değeri paha biçilmez. 🚀
@beyazbiyaz
@beyazbiyaz 7 ай бұрын
Yine çok yerinde ve güzel bir anlatım olmuş. Teşekkürler
@theentein
@theentein 2 жыл бұрын
Hocam selam, kulaklıkla dinleyenler için arkaplandan çok ses geliyor. Bunu çözmek için obs stüdyo kullanabilirsiniz. Ekran kaydınızı onla alıp, arka plan sesini kaldır filtresini eklerseniz arka plandaki hışırtı çok büyük ölçüde kalkacaktır. Gene mouse tıklama sesi anlık klavye seslerini de büyük ölçüde kaldırır. Kendi eğitim kanalımda öyle yapıyorum ben de :)
@sevgibahcemmm5540
@sevgibahcemmm5540 2 жыл бұрын
Hocam emeğine yüreğine sağlık çok başarılı bir eğitim oluyor. Çok çok teşekkürler
@ilhanylmaz5977
@ilhanylmaz5977 2 жыл бұрын
hocam 4 ay geriden ama azimle geliyoruz:) emeğinize sağlık.
@nihatyavuz2206
@nihatyavuz2206 2 жыл бұрын
ohh sahurluk videomuz da gelmiş :)) elinize sağlık hocam
@korayozyurt2341
@korayozyurt2341 2 жыл бұрын
Teşekkürler hocam emeğinize sağlık, Özellikle hata mesajları kısmına çok güldüm geliştirme aşamasında o hata mesajlarını yazanlar var 😁
@yazilimciyizBiz
@yazilimciyizBiz Жыл бұрын
14.02.2023 Nihayet Ugulamalı Seyrettim bitti. çok zorlandığım bir bölüm. en az 5 kere seyr ettim. sanırım benim sade olayları algılamama problemim var..
@mesutdemirci7933
@mesutdemirci7933 2 жыл бұрын
Hocam emeğinize sağlık çok şey öğreniyoruz.
@yusufakkurt2308
@yusufakkurt2308 Жыл бұрын
errorlarda tip güvenliği için service'deki create fonksiyonun parametresini tanımlarken şu şekilde: errorCallback?: (message?: string) => void
@abdulkadirkg
@abdulkadirkg 2 жыл бұрын
Nöbetteyiz gençay hocam 😂
@tek1774
@tek1774 2 жыл бұрын
sen nasıl bir kralsın emeğinize sağlık
@berkdeveloper
@berkdeveloper 2 жыл бұрын
20:06 Hocam çok sempatiksiniz :D
@BurakBAKIR-om5iy
@BurakBAKIR-om5iy 4 ай бұрын
Burada value'yu 0 verdiğimiz için ilgili alana tıklandığında 0 yazdığınız rakamlarla birlikte kalıyor, bunu önlemek için placeholder kullanabilirsiniz lakin o zaman da validasyondaki error mesajları default olarak geliyor ( ben çözümünü bulamadım, ne zaman value 0 verdim o zaman bizim özel error mesajlarımız ekrana geldi). Velhasıl hem value 0 kullanmak hem de tıklandığında 0 ın gitmesini istiyorsanız bunu yapabilirsiniz, selectAllText(event: any) { if(event.target.value == 0) event.target.select(); }
@diary3613
@diary3613 4 ай бұрын
Lanlı Lunlu felan yok lütfen rica ediyosun, HAHAHAHAHA Hocam Cansın :)
@u.dinozor
@u.dinozor 2 жыл бұрын
Hocam bir şey soracaktım. Entity metodlarında "SaveChanges" ekledik. Zannedersem bu tüm değişiklikleri aynı anda kaydetmeye çalıştığından transaction görevi de görüyor. Yani 10 tane işle varsa 6. hatalı ise hiçbirini kaydetmiyor. Ama bu durumda değişiklikler tracking 'de hala duruyor. Sonra 2 işlem daha eklense, 12 işlemi save etmeye kalkacak ve yine 6. hatalı olduğundan yapılamayacak. Hatalı işlem var olduğu durumlar için RejectChanges diye metot koymamız gerekmiyor mu? Teşekkürler
@dogukanergin5259
@dogukanergin5259 Жыл бұрын
Atladığım bir nokta yoka CQRS pattern'a geçtiğimiz için burada validasyon uyguladığımız VM nesnesi artık kullanılmıyor. Onun yerine ilgili Request nesnesini vermemiz gerekiyor.
@hilmicelayir3750
@hilmicelayir3750 2 жыл бұрын
Hayırlı sahurlar sevgili yiyenim
@emreaka3965
@emreaka3965 2 жыл бұрын
Hızınıza yetişemiyoruz :D
@nihatyavuz2206
@nihatyavuz2206 2 жыл бұрын
Hocam veritabanından dönen validasyonu backend de nasıl yakalayıp client e göndereceğiz. 1 örnek yapsak güzel olabilir.
@HasanInan-mj7ol
@HasanInan-mj7ol Жыл бұрын
Hocam çoklu dil desteği olan sitelerde bu hata mesajlarının ilgili dil seçeneğine göre verilebilmesini nasıl sağlayacağız? Veritabanında ilgili dil seçeneğinin hata mesajını okutup burada o dile ait mesajı nasıl gösterebiliriz?
@galaxy1066
@galaxy1066 Жыл бұрын
Hocam Fluent Validation'un register işlemini daha önceden oluşturduğumuz ServiceRegistration sınıfında oluştursak SOLID'e daha uygun olmaz mıydı?
@Berk.demir.
@Berk.demir. Жыл бұрын
Yorumları okuyup yeni kullanımını yapsam da foreach is not a function hatası alıyorum nasıl düzeltebilirim
@Berk.demir.
@Berk.demir. Жыл бұрын
bilen birisi yardım ederse çok sevinirim 6-7 saattir bakıyorum ama bulamadım şimdi yatıcam :(
@denizdumanresmi
@denizdumanresmi Жыл бұрын
@@Berk.demir. yorumda belirttim 2 ay geçmiş üzerinden bulamadıysan yine bakabilirsin.
@semihatalay865
@semihatalay865 2 жыл бұрын
Hocam emeğinize sağlık. Bir sorum olacaktı. Client bazlı validationlarda "Lütfen ürün adını boş geçmeyiniz" şeklinde mesajı yazmışken neden "Name alanı boş olmamalı" şeklinde mesaj fırlatıyor. Bir kısmı kaçırdım sanırım.
@omerfarukcan3982
@omerfarukcan3982 Жыл бұрын
Dk 35:11 deprecated uyarısı alan arkadaşlar için (yani kodunuzun altı yeşil ile çiziliyorsa) kodu tazeledim belki yardımcı olur diye buraya bırakıyorum: builder.Services.AddFluentValidationAutoValidation().AddFluentValidationClientsideAdapters(); builder.Services.AddValidatorsFromAssemblyContaining(); builder.Services.AddControllers(options => options.Filters.Add()) .ConfigureApiBehaviorOptions(options => options.SuppressModelStateInvalidFilter = true);
@berkdeveloper
@berkdeveloper 2 жыл бұрын
16:11 ve 16:12 klavye pert :D
@khanbozkurt
@khanbozkurt 2 жыл бұрын
Ben Validatorsleri bir yerde toplamak için, oluşturduğumuz Validators klasörü altında BaseValidators adında bir sınıf oluşturup bu şekilde prop olarak ekledim. Sonradan oluşturulacakları da ekleyebilmek için. public CreateProductValidator CreateProductValidator { get; set; } Bunu yeri ve yöntemi doğru mu?
@fotouzun9527
@fotouzun9527 Жыл бұрын
Merhaba hocam, httpclient servisindeki metodları kullanırken generic kısımlarını doldurmalimiyiz?
@yazilimciyizBiz
@yazilimciyizBiz Жыл бұрын
41:43
@cenkozturk5396
@cenkozturk5396 2 жыл бұрын
Hocam şunu sormak isterim size. Validasyon işlemlerini neden bu kadar özelleştirdik yani validationfiltera ne kadar gerek vardı bunu anlayamadım. Örnek veriyorum bir iş görüşmesine girdim ve kodlarımı incelediler ve dedler ki ne gerek duydun nerden gordun amacın neydi dediklerinde bu validation filter adına nasıl bir cevap vermeliyim yani genel olarak bunu özelleştirip neden biz yapıyoruz bu işlemi ?
@cenkozturk5396
@cenkozturk5396 2 жыл бұрын
Anladığım kadarıyla hocam amacımız tamamen sunucuyu yormamak uygulamanın effectligini arttırmak örnek veriyorum controllera işlem gelmeden gelen isteği geri göndermek ve back end tarafını rahatlatmak gibi olduğunu düşünüorum galiba bu amaçlı bu filtreleri biz yaptık. Yani sistemi iyice biz yönetiyoruz
2 жыл бұрын
Aynen öyle, bir de bazı şeyleri merkezileştirip yönetebilmek için. Mesela validationlar'da yahut ileride göreceksin exception handling'de olduğu gibi...
@theentein
@theentein 2 жыл бұрын
Hocam selam. Daha önce generic repository ile ve geleneksel mimari ile yaptığım tasarımda, Mapping işlemlerini Data katmanında yapmıştım. Bu mimaride nerede yapmam lazım? Örnek mapping kodum aşağıdaki gibi. public class KulturMap : IEntityTypeConfiguration { public void Configure(EntityTypeBuilder builder) { builder.HasKey(a => a.Id); builder.Property(a => a.CreatedDate).IsRequired(); builder.Property(a => a.ModifiedDate).IsRequired(); builder.Property(a => a.IsDeleted).IsRequired(); builder.Property(a => a.CreatedByName).IsRequired(); builder.Property(a => a.ModifiedByName).IsRequired(); builder.Property(a => a.Title).IsRequired(); builder.Property(a => a.Title).HasMaxLength(20); builder.HasIndex(a => a.Title).IsUnique(); builder.Property(a => a.Description).IsRequired(false); builder.Property(a => a.Description).HasMaxLength(160); builder.Property(a => a.Thumbnail).HasMaxLength(250); builder.Property(a => a.Thumbnail).IsRequired(false); builder.Property(a => a.Ikon).HasMaxLength(30); builder.Property(a => a.Ikon).IsRequired(false); builder.ToTable("Kultures"); } } Bu kodu da contextte çağırdım aşağıdaki gibi. builder.ApplyConfigurationsFromAssembly(typeof(WCoreContext).Assembly); Soğan mimarisinde mapping işlemini hangi katmanda yapmam daha doğru olur?
2 жыл бұрын
Application.
@theentein
@theentein 2 жыл бұрын
@ seed dataları da mı hocam?
2 жыл бұрын
@@theentein pardon ben automapper sandım. Persistence da daha uygun olur.
@theentein
@theentein 2 жыл бұрын
​@ hem seed hem mapping yani fluent api işlerini pers katmanında hallediyorum o zaman. Sanırım doğru anladım. automapper veya herhangi başka 3. parti kütüphane kullanmayacağım projemde.
@yazilimciyizBiz
@yazilimciyizBiz Жыл бұрын
27.01.2023 izledim
@volvvol3899
@volvvol3899 2 жыл бұрын
hocam validation yapısını projenin api bağımlılığının önlenmesi için backend kısmında kurulması daha mantıklı olmaz mı?
2 жыл бұрын
Bence mantıklı olmaz. Nihayetinde ilgili uygulamanın iletişim kuracağı API'a uygun bir şekilde veriyi kullanıcıdan talep etmesi API içinde kolaylaştırıcı unsur olacaktır. Nihayetinde client'ın tek amacı bağımsızca API'ı tüketmek değil, tükettiği API'a uyarlı bir arayüz sağlamaktır. Bağımlılığı %100 sağlayacağım diye arayüzde API'a uyarlı operasyonları gerçekleştirmemek pek ideal bir yaklaşım olmayacaktır kanaatindeyim. Sevgiler.
@volvvol3899
@volvvol3899 2 жыл бұрын
@ Hocam dönüşünüz için çok teşekkürler. Asıl anlayamadığım olay ileride web arayüzüne ek olarak android arayüzü oluşturacağımız zaman aynı yapı ve validation kurallarını uygulayacak olmasına rağmen tekrardan yazacağız ve en temelde bağlandığımız dry prensibini çiğneyeceğiz tabiki istisnai durumlar her zaman var ancak bize faydası ne olacak? öğrenciyim cahilliğime verin hocam 😂
@wallpapers_hd
@wallpapers_hd 8 ай бұрын
Kullanımı değişmiş sanırım. Umarım doğru olmuştur; .subscribe({ complete: successCallBack, error: (errorResponse: HttpErrorResponse) => { const _error: Array = errorResponse.error; let message = ""; _error.forEach((v, index) => { v.value.forEach((_v, index) => { message += `${_v}`; }); }); errorCallBack(message); } });
@tunazorlu
@tunazorlu 2 жыл бұрын
Fluent Validation özelinde program.cs de kullandığınız bazı builder'lar depreceated olmuş. onlar yerine builder.Services.AddControllers(options => options.Filters.Add()) .ConfigureApiBehaviorOptions(options => options.SuppressModelStateInvalidFilter = true); builder.Services.AddFluentValidationAutoValidation(); builder.Services.AddValidatorsFromAssemblyContaining(); kullanarak devam ettim. Umarım hata yapmamışımdır.
@amasraa7489
@amasraa7489 Жыл бұрын
cok tessekürler yarim saatir ugrasiyordum bir türlü Validasyon olmuyordu belkide cok ciddi manada zamanimi kurtardiniz
@tahaozturkk
@tahaozturkk Жыл бұрын
FluentValidation default hata mesajlarının bazılarını Türkçe gönderiyor bende bu hata mesajını nerede ayarlamıştım diye arıyordum. Meğerse hata mesajlarını kullanıcının bilgisayar diline göre ayarlayıp gönderiyormuş. "FluentValidation kutudan çıkar çıkmaz varsayılan doğrulama mesajları için çeşitli dillerde çeviriler sağlar. Çevirirken varsayılan olarak .NET çerçevesinin geçerli kullanıcı arabirimi kültüründe belirtilen dil kullanılacaktır ."
@muhammedfurkancolak1021
@muhammedfurkancolak1021 2 жыл бұрын
core.mjs:7643 ERROR TypeError: _error.forEach is not a function şöyle bir hata alıyorum yardımcı olabilicek var mı
@bunyaminavc719
@bunyaminavc719 2 жыл бұрын
Muhammed selam, Gençay Hocanın ilk yorumuna yapılan yanıtları incelersen hatanın sebebi ve çözüm yolu ile ilgili bilgilere ulaşabilirsin
@Berk.demir.
@Berk.demir. Жыл бұрын
merhaba yeni kullanımını yapsam da hala aynı hatayı alıyorum acaba nasıl düzelttiniz
@muhammedfurkancolak1021
@muhammedfurkancolak1021 Жыл бұрын
@@Berk.demir. ters tırnak işareti kullanarak düzelttim galiba (`)
@benbilmem98
@benbilmem98 Жыл бұрын
@@Berk.demir. çözüm buldunuz mu?
@denizdumanresmi
@denizdumanresmi Жыл бұрын
_error.forEach is not a function hatası alanlar altta belirttiğim 2 for yönteminden birini kullanarak düzeltebilir. let _error2: {key: string, values: Array}[] = errRes.error; for (let key in _error2) { let value = _error2[key]; msg += `${value}` } ------------------------------------------------ Object.entries(_error2).forEach(([key,value])=>{ msg += `${value}`; }); -------------------------------------------------
@yusiff
@yusiff Жыл бұрын
Merhaba, Program.cs'te .AddFluentValidation() kısmını eklerken siz de deprecated mesajı alıyor musunuz?
@ahmedhakanokumus
@ahmedhakanokumus 9 ай бұрын
evet ve errorları yakalayamıyorum@@yusiff
Men Vs Women Survive The Wilderness For $500,000
31:48
MrBeast
Рет қаралды 101 МЛН
ASP.NET Core Crash Course - C# App in One Hour
1:00:44
freeCodeCamp.org
Рет қаралды 1,5 МЛН