Ú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. -
j0k3r!
őstag
válasz
zsolt13
#5146
üzenetére
Helló!
Kicsit mesélhetnél az alkalmazásról. Hogy tervezed a BLL-t (adatbázis, ORM, stb.)?
Nagyon röviden: a Repository az én fejemben valahol a DAL és a BLL között helyezkedik el, azaz egy köztes rétegként funkcionál a kettő közt, így az adatok kezelése ezen keresztül kell, hogy történjen legvégül.
Dependency Injection: [link]
Habár valószínűleg nem maga a "Dependency Injection" lesz számodra a lényeges, hanem valami DI Container framework (pl.: Unity, Ninject). Ha nagyon unatkozol, akkor valami faék egyszerű containert te is tudsz biztosan írni, hogy biztosan megértsd, hogy mire is jó.
Ú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!
- EAFC 26
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Befutott a régóta várt, sok P-maggal kitömött, LGA1700-as Core sorozat
- Milyen monitort vegyek?
- Gaming notebook topik
- TCL LCD és LED TV-k
- Renault, Dacia topik
- LEGO klub
- Fejhallgató erősítő és DAC topik
- Távol-keleti webshopok OFF topikja (játékok, kuponok, stb.)
- További aktív témák...
- Komplett RGB Gamer PC / RTX 3080 / i5-12490F / 32GB DDR5 / 250GB & 1TB SSD / IRÁNYÁRAS
- Magyar kiosztású Apple Magic Keyboard 2, Touch ID, teljes méretű
- Új Mac Studio M4 Max 2025 14C CPU /32C GPU / 36GB RAM / 512GB - 1 ÉV APPLE GARANCIA
- 2026 MacBook Air / MacBook Pro / M5 - M5 Pro - M5 MAX 14" / 16"
- Asus 15.6,core i3 8145U(4x3,9Ghz)IntelUHD VGA,MAGYAR Vil.bill.,8-20GB RAM,SSD+HDD?,,Win.11
- Lenovo LEGION 5 PRO Ultra 9 275HX 32GB RAM 1TB SSD RTX 5070 Ti 8GB 16" QHD+ 3év Prémium GAR
- ÁRGARANCIA! Épített KomPhone Ryzen 7 9800X3D 32/64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
- REFURBISHED és ÚJ - Lenovo ThinkPad Ultra Docking Station (40AJ)
- Bontott 0perces MIDNIGHT MacBook Air 15" M4 10C/1G 16GB 256GB Gar.: 3 év telekom + közel 1 APPLE gar
- 269 - Lenovo Yoga Pro 9 (16IAH10) - Intel Core U9 285H, RTX 5060
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

