- „Új mérce az Android világában” – Kezünkben a Vivo X300 és X300 Pro
- Apple iPhone 16 Pro - rutinvizsga
- iPhone topik
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Fotók, videók mobillal
- Megérkezett végre a várva-várt órafrissítés
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Telekom T Phone 3 5G – modern tudakozó
- Xiaomi 14T Pro - teljes a család?
- Xiaomi 15 - kicsi telefon nagy energiával
Új hozzászólás Aktív témák
-
j0k3r!
őstag
válasz
zsolt13 #5149 üzenetére
Előrevetem, hogy 1-2 mórickánál komolyabban soha sem foglalkoztam WindowsForms-szal.
A dependency injection résznek valahogy így kezdenék neki:
- egyik Form osztályodban se legyen semmiféle "közvetlen" adatelérés/adatmódosítás, csak Service/Manager osztályokon keresztül (lásd később)
- egyik Form osztályodból se lehessen elérni a DbContextet
- a Form osztályaid használják a már fentebb említett Service/Manager osztályokat
- a Service/Manager osztályok használják az éppen szükséges Repository-katÍgy már látható, hogy kinek-mire van szüksége (függősége). Valahogy így képzelek el egy Button Click eventet:
1, összeszeded a bejövő adatokat (ez rád van bízva)
2, ezekből az adatokból, ha szükséges, akkor Model/ViewModel-eket hozol létre
3, ezeket a Modelleket átadod a Service/Manager osztályoknak
4, a Service/Manager osztályokon belül módosítasz/lekérdezel adatokat a Repository-kon keresztül
5, a Repository(k) kezeli(k) az adatbázist közvetlenMegpróbálom kóddal is szemléltetni, hátha úgy jobban érthető:
1,2,
var model = new AuthenticationModel(txtUserName.Text, txtPassword.Text);
3,
if(userService.AuthenticateUser(model))
{
// todo
}
4, IUserService-en belül vagyunk:
public bool AuthenticateUser(AuthenticationModel model)
{
return userRepository.Get(u => u.UserName == model.UserName && u.Password == model.Password) != null;
}5, ilyesmi: [link]
Remélem valamennyire érthető volt, amit leírtam. Illetve, ha hülyeséget írtam valahol, akkor jöhetnek a vélemények.
egyébként melyik iskola ez? jöhet privátba is akár
-
martonx
veterán
válasz
zsolt13 #5149 üzenetére
Pedig a neten vannak ezekhez teljesen jó leírások. Joker DI-ra már javasolt is pár megoldást (Unity, NInject, Autofac ...). Bármelyiket beüzemelni nem nagy ügy.
Viszont előbb a DB repository-dat csináld meg, és majd azt használd DI-al. Ehhez semmi extra nem kell, pusztán kód szervezés kérdése. Csinálsz egy plusz réteget a DB réteg fölé. Ehhez is rengeteg magyarázó anyag van a neten.
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- „Új mérce az Android világában” – Kezünkben a Vivo X300 és X300 Pro
- Elemlámpa, zseblámpa
- Apple iPhone 16 Pro - rutinvizsga
- Milyen videókártyát?
- TCL LCD és LED TV-k
- iPhone topik
- OLED TV topic
- Rezsicsökkentés, spórolás (fűtés, szigetelés, stb.)
- One otthoni szolgáltatások (TV, internet, telefon)
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- További aktív témák...
- Bomba Ár! Lenovo IdeaPad Flex 5 Ryzen 3 5300U I 4GB I 128SSD I 14" FHD Touch I W11 I Cam I Garancia!
- Bomba ár! HP ProBook X360 435 G7 - Ryzen 3/5 I 8GB I 256SSD I 13,3" FHD Touch I W11 I Cam I Gari!
- Bomba ár! Lenovo ThinkPad X13 G1 - AMD Ryzen 5 PRO I 8GB I 256SSD I 13,3" FHD I Cam I W11 I Gari!
- Bomba Ár! Lenovo ThinkPad E14 G2 AMD - Ryzen 5 I 8GB I 256SSD I 14" FHD I HDMI I W11 I Gari
- Bomba ár! Lenovo ThinkPad T14s G1 - i7-10G I 16GB I 512GB SSD I 14" FHD Touch I Cam I W11 I Gari!
- GYÖNYÖRŰ iPhone SE 2022 64GB White -1 ÉV GARANCIA - Kártyafüggetlen, MS3366
- Telefon felvásárlás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
- BESZÁMÍTÁS! Intel Core i9 9900K 8 mag 16 szál processzor garanciával hibátlan működéssel
- Lenovo ThinkPad Z13 G1 (ELKELT)
- Geforce GTX 1050, 1050 Ti, 1060, 1650, 1660 - GT 1030 - Low profile is (LP)
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest