KevserAkbas / BethanysPieShop

0 stars 0 forks source link

Introduction - Partial Views & Session & View Component & Özel Tag Helper #7

Open KevserAkbas opened 3 years ago

KevserAkbas commented 3 years ago

Partial View

KevserAkbas commented 3 years ago

Session

Alışveriş Sepetini Oluşturma

• Alışveriş yapma yeteneği olmayan bir web mağazası aslında oldukça işe yaramaz • Alışveriş sepetinin kendisine bakmadan önce, bunu nasıl uygulayacağımıza bakalım. • Henüz uygulamada kullanıcı hesabımız olmadığından, • bir kullanımı gerçekten bir alışveriş sepetiyle ilişkilendiremiyoruz, • ancak yapabileceğimiz şey SESSİON adı verilen bir şey kullanmaktır. • SESSİON'ler, kullanıcı uygulamaya göz atarken sunucuda veri depolamamıza izin veren bir ASP.NET Core özelliğidir.Tamamen ASP.NET Core tarafından yönetilir ve temelde bir kullanıcı sitemize geldiğinde bir SESSİON'i bir kullanıcıyla ilişkilendirebiliriz. • Bu SESSİON, daha sonra alışveriş sepeti için benzersiz bir kimlik depolamak için kullanacağız. • Dahili olarak, Session’lar, sunucuya her istekle gönderilecek bir SESSİON kimliği içeren bir tanımlama bilgisine güvenir ve bu, ASP.NET Core'un isteği kimin yaptığını bilir. • Şimdiye kadar birkaç kez gördüğümüz gibi, ASP.NET Core ekibinin amacı bir uygulamanın ayak izini (footprint) olabildiğince küçük tutmaktır ve bu nedenle ihtiyacımız olan hizmetleri eklememiz gerekir. image

Session’lar desteği varsayılan olarak dahil değildir, bu nedenle bunu uygulamaya eklememiz gerekir.Session’lar için destek sağlamak için hizmetleri aramamız gerekir. Ayrıca, bir middleware bileşeni de gereklidir.Configure metodunda UseSession çağırarak Session’lar için destek ekleyebiliriz. • Denetleyicilerimizden SESSİON nesnesini kullanırsak bu işe yarar. • SESSİON'e bir hizmet sınıfından erişmem gerekecek, yani düz bir controller olmayan sınıf. • SESSİON nesnesine, HttpContext adı verilen bir şey aracılığıyla erişilebilir, • bunu da uygulamamıza getirmemiz gerekir ve • bu parçacığın burada yeşil olarak görebileceğiniz gibi • services.AddHttpContextAccessor kullanarak yapabiliriz.

KevserAkbas commented 3 years ago

View Component

KevserAkbas commented 3 years ago

Özel Bir TAG HELPER Oluşturma

• Kendimiz de özel TAG HELPER'ler oluşturabilir ve bunları işlevselliği sarmak için kullanabiliriz. • Küçük bir hatırlatma olarak, Tag helper’ların temel işlevi yine neydi? • TAG HELPER'ler dahili C # kodu içerir ve bu C # kodu HTML oluşturacaktır. • Razor koduna bir TAG HELPER yerleştiririz ve böylece sayfanın oluşturulmasına yardımcı olurlar. • Ne zaman düşünsek, hey, bu küçük bir yeniden kullanılabilir bileşeni birden çok sayfaya sığdırabileceğim bir şey, ondan bir TAG HELPER oluşturmak mantıklı olabilir. • Aslında TAG HELPER'ler, ASP.NET Core MVC uygulamalarında önemli bir uzantı noktasıdır. • Bir TAG HELPER oluşturmak tamamen C # ile yapılır. image

• TAG HELPER'ler sadece sınıflardır ve onları projemizde istediğimiz yere yerleştirebiliriz. • TAG HELPER olmak için, bir sınıfın temel TagHelper sınıfından miras alması gerekir. • TagHelper adı verilen ad, üzerinde çalıştığı öğenin adından ve ardından TagHelper'dan oluşur. • Burada, EmailTagHelper adında kendi TAG HELPER adımı oluşturacağım. • Ortaya çıkan HTML'yi oluşturacak kod, Process yönteminde yaşayacaktır. • Dikkat edin, bu sefer, aslında bir geçersiz kılma. • Şimdi TAG HELPER ile • Razor kodu, artık e-posta adında bir öğe oluşturabiliyorum. image

• Bu daha sonra İşlem yöntemini TAG HELPER üzerinden çağırır ve sonuçta ortaya çıkan HTML'yi görünümde kullanıldığı yere enjekte eder. • TAG HELPER'lerimizi istediğimiz yere yerleştirebilsek de, hepsini aynı yere yerleştirmek iyi bir fikirdir. • Bunun nedeni, TAG HELPER'leri kodda kullanmadan önce kaydetmemiz gerektiğidir. • Uygulamamızda yerleşik TAG HELPER'lerin kullanımını ViewImports dosyası aracılığıyla ekleyerek nasıl etkinleştirebileceğimizi daha önce görmüştük. • Kendi TAG HELPER'lerimizi oluşturduğumuzda, gerçekten aynı prosedürü izlememiz gerekir. • Burada değiştirilmiş ViewImports dosyasını görebilirsiniz. image

• Şimdi kendi TAG HELPER'lerimi yerleştirdiğim ad alanını genişlettik. • Bu satırı ekleyerek, artık uygulamada kullanabilirim.