42) Asp.NET Core 5.0 - Derinlemesine Dependency Injection - IoC Yapılanması
Вставка
- Опубліковано 22 лип 2024
- Github : github.com/gncyyldz #aspnet #netcore #programlama #yazilim
İçindekiler :
00:00 Giriş
04:08 Dependency Injection Nedir?
20:26 IoC(Inversion of Control) Nedir?
28:38 Asp.NET Core'da IoC Yapılanması
29:47 Asp.NET Core Built-in IoC Container
30:26 Singleton IoC Davranışı
31:20 Scoped IoC Davranışı
32:11 Transient IoC Davranışı
36:08 Asp.NET Core Uygulamasında Örnek Servislerin Oluşturulması
40:37 Built-in IoC - IServiceCollection
52:48 Container'a Eklenen Nesnenin Constructer’ı Parametreliyse Ne Yapılmalı?
56:32 Nesne Bildirimlerinde Uyulması Gereken Abstraction Mantığı
01:01:16 Controller Constructor’ından Nesne Talebinde Nasıl Bulunulur?
01:06:34 Action Bazında Nesne Talebinde Nasıl Bulunulur? FromServices Attribute’u
01:07:48 View’de Nesne Talebinde Nasıl Bulunulur? @inject
Bu video Gençay Yıldız tarafından NGAkademi bünyesinde ücretsiz çekilmiştir.
Ders notları ve dosyalarının hepsine aşağıdaki adresten erişebilirsiniz.
ngakademi.com/courses/ozel-de...
Gençay Yıldız'ın Bloğu
www.gencayyildiz.com/blog/
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
Bende defalarca izlediğim hatta deli kullandığım halde tam ne manayla kullandığımı bilmiyordum. Öğrenmiş oldum kralsınız hocam.
1.5 Yıldır anlayamadığım konuyu 1 saatte tam manasıyla anladım. Hocam yaptığınız işte gerçekten bir numarasınız. Allah yar ve yardımcınız olsun hocam bize gerçekten büyük emek veriyorsunuz.
1.5 senede nasıl anlayamadın hocam
Çok başarılı anlatım, teşekkürler Gençay hocam.
Sigara örneği kurtardı beni çok iyi bir anlatım teşekkürler Hocam
Yok artık LeBron James..Yok boyle bir anlatım..Super
Çoğu kişinin (ben de dahil ) kafasını karıştıran bu konuyu, böyle derinlemesine ve kolayca anlaşılır şekilde anlattığınız için çok teşekkürler hocam.
Bana bir tık ağır geldi. Tekrar takrar izlerim artık
hocam her gün videolarınızı izliyorum her gün allah razı olsun diyorum. Böyle basite indirgeyip anlatmanız alanınıza ne kadar hakim olduğunuzun göstergesi. çok teşekkürler dersler için
Şuan kurumsal bir e-ticaret sitesinin kaynak kodlarını inceliyorum,(yeni işim). Yayında olan bir e-ticaret sitesi. İçeriğinde kullanılan ne varsa senin bu eğitimlerinde paylaştığın değerli bilgiler... Eğitimde ara ara durup kaynak kodda aratmalar yapıyorum da, anlamadığım her kısma değinmişsin Gençay Hocam. Eğitimlerini çok değerli buluyorum, ilaç gibi geldi şu dönem... Allah razı olsun.
Çok faydalı bir eğitim oldu. Tam anlaşılamayan konular netlik kazandı. Çok güzel açıklayıcı anlatıyorsunuz. Böyle konuların özellikle yeni trendlerin devamını heyecanla bekliyoruz..
Bir çok konuyu sizden 0 dan öğreniyorum ve hemen kavrıyorum çok çok iyi anlatıyorsunuz .
Design principles solid serisini izleyip bu videoyu tekrar izliyorum çok daha anlaşılır oldu. Emeğinize sağlık teşekkür ederim hocam.
Emeğinize sağlık hocam.
Gençay kardeşim hayallerimi gerçekleştirmiş. O kadar, kanal açayım eğitim serileri yapayım diye düşünürdüm ama zaten gereğinden fazla yeterli şekilde içerikler üretmiş. Teşekkürler.
abiiii abiiiiiiiii FAZLA İYİ HUAAAAAAAAA
Çok iyi açıklamışsınız Hocam
.Çok teşekkürler
Allah razı olsun hocam teşekkürler
çok faydalı bir videoydu ellerinize sağlık :)
Gerçekten süper anlatmışsınız hocam.
Çok Faydalı bir eğitim emeğiniz için teşekkürler
Var olasin Xoca ,ALLAH razi olsun ,cox gozel izah edirsen
mükemmel anlattınız hocam
Net bilgiler verdiğin için teşekkür ederim.
Çok teşekkür ederiz hocam çok iyi şekilde anlıyorum çok sağol.
Çok faydalı olmuş. Teşekkürler.
Hocam mükemmel ve sürükleyici bir anlatımınız var, verdiğiniz anlamlı örnekleri saymıyorum bile teşekkür ediyoruz : )
Çok faydalı oldu. Teşekkürler
Çok beğendim, çok güzel bir eğitim videosu olmuş.
Gençay hocam yemin ederim dişlerimi sıka sıka vahşice like butonuna tıkladım. Tıkladıkça daha çok like gideceğini bilsem sabaha kadar tıklarım. Şunları yazarken daha videonun ortasında bile değilim. Nasıl teşekkür edeceğimizi şaşırdık topluluk olarak.
muhteşem anlatım..
Teşekkürler hocam. Gayet açıklayıcıydı.
ustasın sen hocam, eline emeğine sağlık, var ol.
Teşekkür ederim hocam 👍🖐️
Mükemmel bir anlatım. çok teşekkürler
Çok teşekkürler Hocam
Emeğinize sağlık.
Teşekkürler hocam
Hocam süpersiniz, biraz uzun videolarınız ama basa basa anlatıyorsunuz. Elinize sağlık.
Çok faydalı ve açıklayıcı bir eğitim oldu. Emeğinize sağlık. Teşekkürler.
Süper çok teşekkürler.
Emeğine, ağzına sağlık. Yeni videoları koyuyorsun bildirimler geliyor ama şu uçtan uca bi proje yapsak çok etkili olacak be hocam :) asp .net core mvc ile uçtan uca bi proje kulağa bile harika geliyor :) görsel kısmı çok önemli değil backend i yapsak bile yeter.
Yapacağız yakında...
Emeğinize yüreğinize sağlık hocam çok teşekkürler umarım milyon izlenen videolarınız da olur sayenizde bir çok şey öğrendim. İnşallah en kısa sürede patternleri anlattığınız video serisinide görürüz vallahi sabırsızlıkla bekliyorum.
yemin ederm böyle bir şey görmedim çok iyi anlatım, çok faydası oldu teşekkürler hocamm
Şimdiye kadar gördüğüm en detaylı anlatım, bu tarz konuyu net anlatanı para versen bulamazsın. amacım övmek değil sadece bütün eğitimciler kod yazmakla geçiyor hiç biri mantığını açıklamıyor. Eline diline sağlık.
Anlatmak var anlatmak var gerçekten örneklerle ve ses tonunla olayı kafalara çok güzel kazıyorsun. Eyvaaalah kral!!
Emeğinize sağlık. Çok değerli bilgiler. Piyasada bu işle uğraşanların bu kadar detaya hakim olmayıp ezbere yaptığı (neden böyle diye sorduğunuzda düzgün bir cevap alamadığımız) işlemleri akıllarda soru işareti kalmayacak düzeye indirgeyip bizimle paylaştığınız için kendi adıma çok teşekkür ederim.
tesekkurler
Hocam bayadır bu konuyu araştırıyordum ama bu verdiğiniz sigara örneği olayı tamamen kafamda oturttu çok güzel somutlaştırmışsınız, eğitmlerinizi izlemeye devam ediyorum, emeğinize sağlık çok teşekkürler.
hocam agziniza saglik. O kadar video,web sitesi dolastim sadece sizin videodan sonra tamam anladim diyebildim. Ek olarak konuyu anlatirken motivasyon kaynaginizin youtube icerigi ciksin diye degil; gercekten ogretmek oldugu cok belli.
Hocam container'a Transient IOc olarak "Allah sizden Razı Olsun " duasını ekledım.. ve her isteginiz ve her isteginizin özel şartı için.. çok çok teşekkür ederim
Bu adam var ya motoru söksün karşımda bu anlatımla anlatsın toplarım çok iyi video ya :) Çok büyük emek var.
Elinize sağlık hocam. Kurs baştan aşağı bir baş yapıt. Anlayamamaktan korkuyordum. Teşekkürler.
Biraz zormuş, ama süper anlatım
Hocam merhaba. Sormuş olduğum soruyu unutmayıp cevapladığınız için minnettarım.(Bu arada adım Mehmed Emre :D).
Hocam bu harikulade anlatım için ağzınıza ve emeğinize sağlık...Dependency Injection - IoC Yapılanması için bu "sözde" teorik anlatımsa asıl Design Patternlerde oluşacak ilgili içeriği düşünemiyorum bile 😄
Hocam çok güzel anlatıyorsunuz, affınıza sığınarak 1.5x'te dinliyorum 🫣👉👈😊
Hocam her şey süper sadece çizimlerinizi de koyu zemin üzerine açık renk kullanırsanız şahane olacak. :)
Merhebalar her nekadar normalde kulanıyor olsamda yinede " acaba eksiğim var mı ? " yada "olayı ben nasıl anlamışım ama aslında nasıl " diye araştırırken denk geldiğim çok güzel bir anlatım videosu olmuş. Elinize sağlık ve çok teşekkür ederim. İyi günler...
Teşekkürler. Ağzına sağlık.
Ben teşekkür ederim.
Destek ve teşekkür yorumu :)
Mükemmel
Yıl sonu işe giriyorum her ay 350 tl katıl aboneliği alacağım ♡
Hep o beklediğim hediyenin bir gece kapıma bırakılması, ve sabah gördüğümde yaşadığım mutluluk gibi bir şey şuan bu video :)
@@muraterkan3251 Dependency Injection yapısı kurumsal mimarilerin olmazsa olmazıdır interface lerin aktif şekilde kullanılması , bağımlılıgın ortadan kaldırılması ve genişletilebilir programlanın önünü açan bir yapıdır. Bu yapıyı öğrendiğimi düşündükten sonra bile tam kavrayamadığımı anladım zamanla. mantık çok basittir ama projelerde uygulayabilmek tecrübe ister. Gencay hocamdan da bu yapıyı anlatmasını beklerdim. bir sabah ofisimde çalışırken bu videoyu gördüm ve geceden yüklediğini fark ettim bizler uyurken o bizim için bir video daha eklemişti. çok mutlu oldum bu yüzden
@@muraterkan3251 Mevsimsel kaynaklı olmayan soğuk ve ruhsuz şu günlerde bırak insanlar ufak tefek farklı hobilerden mutluluklar yaşayabilsinler Murat'çım. Bu anlaşılmayacak ve kafanı karıştıracak hayatındaki en sonuncu mevzu bile olmasa gerek değil mi?
baya ağır bir konuymuş hocam hem not alarak hemde dinlmek baya zaman aldırıyor Ama harika anlatımınızla beraber konu mükemmel özetlmişsiniz sabah sadece izleyeceğim En sevdiğim filmden bile bu kadar zevk almıyorum şaşkınım ve sonsuz teşekürlerimi sunuyorum
Konunun özeti;
+Ben bir sigaraya bağımlı değilim....
+Ben sigaraya bağımlıyım...
string yorum="hocam örnek güzelmiş";
sigara ornegi bu anlatimin nirvana noktasi oldu hocam :)
emeğine sağlık hocam :)
28:00 da diyordu bana bağımlı olmayın :d
Her saniyesinde yeni bir şey öğrendim hocam, faydalı olmaz olur mu?
Emeğinize sağlık, teşekkürler.
Mükemmel video vallahi çok sağolun. Videonun başında da sürekli bahsettiğiniz "design patterns" ile ilgili videoyu yayınladınız mı acaba? Kanalınızda bulamadım da.
Hocam selamlar, yeni denk geldim videonuza. Burada bir sorum olacaktı. Eğer aynı anda projenin farklı yerlerinde örneğin Index Action'ında ConsoleLog Fakat Privacy Action'ında TextLog kullanmak istersem bunu nasıl yapabiliriz?
Yani zaten arkadaşlar polimorfizimi bilen arakadaşlar tabikide o interfaceden implame olmayan bir classı refere edemiyeceğini mutlak süretle bilmesi gerekir. Eğer burada bir yanılgıya düşüyor yada neden olduğunu tam kestiremiyorsanız. Derinlemesine bir oop dersine ihtiyacınız var bence bir adım daha bu seride ilerlemeden acil oop öğrenin Gençay Hocadan.
8-10 like atma özelliği gelmeli youtubea
dostum çok güzel anlatıyorsun ya zamanım az olduğu için yeterince izleyemiyorum, bütün videolarını izleyeceğim senden ricam lütfen videolarını silme :)
Exxen'den teklif gelene kadar silmeyeceğim 😜😂
@ Exxen se kolay ya yakında gelir :))
@ ahahahhaah
Hocam patten videosu da hemen gelse iyi olur. Güzel bir kaynak bulamadım.
Hala ihtiyacınız varsa ve İngilizceniz varsa Christopher Okhravi kanalındakiler çok iyi.
25:41 42 videodur adını duyuyorum şu Ahmet Bey ile bir tanışmak isterim :D
emeginize saglik ama cok detay vermekle yormus anlatimi yalinliktan uyaklastirmissiniz
Merhaba.Peki Hem Console hemde Text sinifini ayni anda kullanmak istersek bunu nasil taleb edicez?
hocam mükemmel anlatımınız sayesinde atıyorum sigara örneği gibi her şey net anlaşılır ama gerçek bir projede bunu nerede kullanıyoruz şeklinde sonunda küçük bir örnekle anlatsanız 5 -10 daha çok kalıcı olurdu. atıyorum normalde şöyle bir projenin şu kısmında şu şekilde kullanırız bunu gerçek hayat projelerinde gibi. iyi ki proje yaptınız da ona ulaşmak için videoları hızlı hızlı izliyorum. umarım proje de bittiğinde işte şimdi net anladım diyebilirim. çok teşekkürler
mesele smtp ile email gönderirken, yandex e bağlı kalmamak gibi , emaili diğer servislerden de gönderebilme uyumluluğu gibi düşünebilirsin.
Yada pdf oluştururken A firmasının ürünü ile değil de B firmasının ürünü ile de oluşturabilmek gibi, tabi iş yapan kodları buraya uygun yazacaksın....
👍👍👍
Bir sorum var. Dahili IoC yapısını kullanırken yani işin içine interfaces girmeden controller'da erişimi nasıl sağlayabilirim ? Interfaces girince constructor içerisinde ILog'dan log türetiyoruz. Interfaces girmeden bunu nasıl yapabiliriz ?
Ben de kahve içiyodum 15:08'de bi yudum kahve alalım diyince ben de bi yudum aldım reflex olarak :D
Gencay'bey teşekkür ederiz çok güzel ve sade bir anlatımınız var. Bu konu özelinde benim sorum; İlgili sınıfta dependency injection yaparken inject edilen nesnede constractor varsa ve constructor üzerinden benim bazı parametreleri göndermem gerekiyorsa nasıl bir yöntem izlemeliyiz. Diğer türlü sadece ilgili sınıfın metodunu çağırarak parametre gönderiyorum ve buda çok fazla kod kalabalığı yapmakda, çünki injecte edilen sınıf bazı durumlarda örnek vermek gerekirse 2 parametre ihtiyacı duyarken diğer bi kullanımda 5 parametreye ihtiyaç duyabiliyor. Ben bu durumu ihtiyacıma binaen constractor lar üzerinden yönetmek istiyorum. Baya araştırdım fakat düzgün bir kaynak bulamadım yardımcı olabilirseniz çok sevinirim.
Diğer bir sorum ise bir serviste ef core yapılanması ile yerine göre 15-20 farklı repository ekleme ihtiyacı duyuyorum buda ilgili sınıfta çok fazla kod kalabalığı yapmakda bu durumu ilgili sınıfa özel bir interface üzerinden yönetmeyi düşündüm böyle bir durum için görüşünüz nasıl olurdu nasıl yapsam daha mantıklı olur?
ilginiz için şimdiden teşekkür ederim,
iyi çalışmalar.
Selamlar Gençay abim. Bazen slideın bazı kısımları oluyor kameranın altında kalıyor. Sizin presentationların olduğu bir kaynak var mı acaba? ngakademiye girdim videolarda kilit logosu vardı. Şimdiden teşekkürler.
Hocam merhaba, bir datagrid den verileri alıp bir grafik oluşturmam gerekiyor. grafik oluşumu işin chart.js kütüphanesini buldum bi kaç deneme yaptım ihtiyaçlarımı karşılar gibi. Datagrid kütüphanesi bulamadım. projeyi core 5.0 ile oluşturdum. tavsiye edebileceğiniz bir kütüphane var mı javascript jquery olabilir daha önceden devextreme gridlerini kullanmıştım ama o paralı. kullanımı ona benzer olursa çok iyi olur. ya da kendim tablo oluşturup o tablo üzerinden işlem yaptırtabilir miyim. müşteri verileri tabloya girmek istiyor tablodan hücreyi id den yakalayıp value'sine ulaşabilir miyim? Ama 7-8 tane sütun ve 13 tane satır olucak tablodan tek tek almak çok zor gibi. Bi tavsiye verir misiniz hocam lütfen. Şimdiden çok teşekkür ederim.
Hocam 1:00:18 de yanlışınız var. services.AddScoped(); bu tür yazımda constructor'nın default olması gerekmez, istediğiniz parametreyi ala bilirsiniz constructor dan.
Evet haklısın. Doğrusu şöyle olacaktı. Verilecek sınıf her ne ise, constructor'ı parametre alıyorsa eğer o parametreyi karşılayacak IoC'de bir instance olması gerekiyor! Aksi taktirde işte o zaman sıkıntı :)
Merhaba hocam , Öncelikle Tüm emekleriniz için Teşekkür ederek başlamak istedim. Eğitimleriniz çok kaliteli, size çok büyük saygı duyuyorum bana çok faydanız dokundu bu güne kadar. İnşallah nasip olursa aklımda, ilk maaşımla size bir yemek ısmarlamak var :) . Ezbere yaptığım Şeylerin mantığını ve nedenini biraz olsun kavramamı sağladınız, bu yüzden çok Teşekkür ederim. Fakat benim biraz eksiklerim var dolayısıyla bu konu %100 oturmuyor bende. Size Danışmak istedim.
Design Princeples , Design Patterns , OOP'nin 2. kısmı (2.serisi), ileri Düzey C# programlama, gibi eğitim serilerinizi hangi sıralama ile izlemeliyim ? ,
İsimlerini yazdığım eğitim serilerinizden hangi sıralama ile izlersem bu konuya dönüp geldiğimde daha iyi anlarım ?. Bide hocam nacizane tavsiyem eğitim serilerinizi sıralamasını kanalda sabitlerseniz yeni başlayan arkadaşlar için daha iyi olabilir.
Sigara örneğinden sonra anlamayan varsa gitsin bir sigara içsin :)
visual studio 2022 de startup.cs kaldırıldı.Bu classtakiler hangi classa taşındı bilginiz var mı ?
Asp.Net Core 6 yeniliklerini ele aldığım seriye bakınız.
Hocam öncelikle çok teşekkürler, ben sizin videolarınızı izleyince anlatmak istediğiniz mantığı kavrıyorum fakat iş kod yazma kısmına geçince sizin yaptıklarınıza bakmadan yazmam zor oluyor, bu bana bir sıkıntı oluşturur mu ? Diğer sorum ise GitHub öğrencilere ücretsiz Copilot teknolojisini sağlıyor, eğer sınıf isimlerini yapacağımız işe göre doğru yazarsak copilot kodları önümüze getiriyor ya da bir kod yazmaya başladığımızda tamamlıyor, koda göre yorum satırı da ekliyor(vs. devam ediyor.). Sizce şuan öğrenme aşamasında Copilot kullanmak bir sıkıntı oluşturur mu? Tekrardan teşekkürler.
İlk bahsettiğiniz durum gayet doğal ve zamanla net aşılacak bir durumdur.
Copilot ise öğrenme sürecinde olan öğrencilere kesinlikle tavsiye etmediğim bir teknoloji. Hatta ben ki derslerimden bilen bilir, değil copilot, kullandığınız IDE'nin kolaylaştırıcı özelliklerinden bile kaçınılması gerektiğini savunan bir eğitimciyimdir. Önce her şeyi yazacaksın, noktasına virgülüne kadar olaya hakim olacaksın ki, hem böylece zamanla mantığı daha da pekişmiş olacak hem de neyin ne olduğunu zahiren de biliyor olacaksın.
hocam kolay gelsin acaba design patterns dersleriniz herhangi bir platformda yayınlandı mı ben bulamadım
UA-cam da. Katıla özel. Oynatma listesinden ilgili serinin detaylarını görebilirsiniz.
Hocam öncellikle eğitim için teşekkürler. Ders notları ve dosyalarını indirebileceğim linki paylaşmıssınız ama nerede indirebiliriz ben göremedim.
Artık slayt ve pdf paylaşımı yapmıyoruz.
hocam size katacak bilgim yok ama somut proje bekliyoruz elle tulur gorulur , mumkunse içinde sql den veri çekelim web projesi olur masaüstü proje olur, kapsamlı ve sade moduler yapıda bir proje yaparsak teoriler daha guzel oturur,
Yakında gelecek inşallah. Son zamanlarda yoğun işlerim var o yüzden çalışmaları ufak ara askıya aldık.
@ saolun hocam, çok kasmanıza gerek yok ama bir proje baslatın ufak ufak vıdeo cekın ızleyelım uygulayalım bızlerde , zaten işçiym hocam evde yorgunluktan masa başında hobi şeklinde icra ediyorum merak ediyorum bu tür şeyleri , saolun emekler için
built-in ioc iservicecollector kısmı muazzam bir anlatım, merak ettiğim konu ise şu siz hangi kaynaktan okuyor nasıl bir yöntem izliyorsunuz ki böyle bir anlatım yapabiliyorsunuz ve ne kadar vaktinizi alıyor öğrenmek merak ettim açıkcası
Güzel soru. Şu kaynak diyemem sanırım ama dersime iyi çalışıyorum diyebilirim :)
Anlatımın "Controller constructorından nesne talebinde nasıl bulunulur?" bölümünde
startup.cs'de services.AddScope() yapmamış olsaydık,
Controller constructur'ındaki injection işleminde hata alır mıydık?
Yoksa arka planda constructor'daki nesne talebimimiz için default olarak singleton olarak mı nesne oluşturuldu?
hata verirdi
Gençay bey yine çok başarılı bir ders olmuş tebrikler.
Nacizane bir sorum olacaktı.
Çok katmanlı bir mimari ile bir projede.
IServiceBase tipinde generic bir interfacemiz var.
DAL katmanın da
RepositoryBase :IServiceBase olarak bu interfaceden implemente ettik diyelim.
BLL katmanında ki ManagerBase Sınıfım da DAL katmanında ki RepositoryBase i kullanmak istiyorum.
anacak new lemek istemiyorum.
Startup ta service eklerken AddScope olarak izin vermiyor
T leri tanımadığından.Burada ya hard kod yazıp T yerine bir sınıf yazabiyoruz yada sanırım uzunca
Reflection la T yi dynamic olarak verdirmem gerekiyor.Orada da RepositoryBase sınıfının constractor olarak(AppDbContext)alması olayını aşamadım.
Uzunca oldu ama umarım anlatabilmişimdir.
bildiğiniz daha basit bir yol var mı.Teşşekürler.
Merhaba,
Startup'da
services.AddScoped(typeof(IServiceBase), typeof(RepositoryBase));
şeklinde dener misiniz?
@ Aynen hocam teşşekürler,Ben de aynı kodu yazmıştım,ama taglar arasına hep T yazıyordum.İstemiyor T yi kaldır di mi? yok işte fazla olsun eksik olmasın mantğı şe yaramıyor demek :-)
Hocam Biz services.Addscoped() dediğimizde Temel Constructure boş olduğu için bunu verebiliyoruz fakat biz bunun dışında Constructure' larla da beraber kullanmak istiyorsak nasıl eklememiz lazım ?
Not : kendim araştırıcam bulursam yazarım.
Bu sorunun cevabı da bu derste diye hatırlıyorum.
@ İstediğimiz constructure verebiliyoruz ama 2,3 adet constructure verebiliyormuyuz onu sormuştum
58:58
Hocam peki her ikisinide eklemek istiyorsak ? Mesela aynı anda hem Consol-a ve Text-e yazırmak istiyorsak o zaman o container-dan nasıl ayırt ede bileceğiz ? Iloga TextLog ve ConsoleLog ekleyip denesek controllerde hangisiniz baz alıcak ?
Cevabini bulabildiniz mj
@@ucamayanejderya evet
Nasılmıs bende merak ettim
@@ucamayanejderya ua-cam.com/video/dAgjqdx2PEQ/v-deo.html&ab_channel=LearningProgramming
Hocam anlatımınız için teşekkür ederim. Ufak bir sorum olacak. ILog arayüzünden aynı anda hem ConsoleLog hem de TextLog sınıflarının methodlarına neden erişemiyoruz? Uygulamanın belirli yerlerinde hem console hem de text log kullanmak isteyebiliriz. Burada belirli işleri yapan sınıfları gruplandırmış olmuyoruz gibi geldi bana. Ben bu iki log yöntemini de aynı anda kullanabilmek istiyorsam ya bunları IoC containera tek tek typeof ile ekleyeceğim yada IConsoleLog ve ITextLog arayüzlerini oluşturup ilgili sınıfların ikisini de kendi interfaceleri üzerinden ekleyeceğim. Ancak ikisi de log sınıfı olduğu için bunları ILog arayüzü altından yönetebiliyor olmalıydık gibi geldi. Method isimleri ikisinde de ortak olarak log olmazdı da public void consoleLog ve public void textLog olurdu mesela ben hangisini kullanmak istiyorsam ILog log ile inject ettiğim zaman ikisinin de methoduna erişebiliyor olurdum. Bunu yapmak mümkün mü? Çok karışık anlattım farkındayım ama toparlayamadım :)
Cevabini buldunuz mu
Eğer her iki concrete sınıfı da (ConsoleLog ve TextLog) ioc container içerisinde ILog ile eşlersek, bir constructerda kullanırken IEnumerable tipiyle alabiliriz ve burada eşleme sırasına göre hem ConsoleLog hem TextLog olduğunu göreceğiz. Bu durumda ayrı ayrı IConsoleLog ve ITextLog servisleri olmadan ILog servis listesinden Linq ifadeleriyle istediğimiz instance'e ulaşırız. Eğer kastettiğiniz bu ise..
2- Hocam birde kanal üzerinde ücretli abonelik alırsak ne gibi faydaları olur . Yani hangi anlamda eğitimleri özel olarak sizden alabiliriz ? Yada ücretli aboneliklere sağladığınız farklılıklar nelerdir ?
Pek fazla farklılık ya da bir avantaj yok. Ücretli aboneliklerde tanımladığımız seviyelere göz atarsan olabilecek avantajlar orada yazmaktadır lakin o avantajlar ücretli eğitimler için söz konusudur. Biz de ücretli eğitim yerine ne var ne yok youtube'dan ücretsiz politika güttüğümüz için ücretli üyeliklerde sizler açısından avantajdan/faydadan ziyade biraz maddi destek misali gibi oluyor...
@ anladım hocam . Verdiginiz bu emek icin binlerce kez tesekkurler.