Hirdetés
- Ha nem növelnéd feleslegesen a villanyszámlád, a Chieftecnek van pár új ajánlata
- ARC vs eARC — Ilyet is tud a HDMI-d? 🤨
- A következő évtizedbe repíti a NAND hatékonyságát a Samsung új kutatása
- ASUS blog: kisebb, de nem gyengébb – a mini PC-k forradalma
- 5 kilowattos GPU-k előtt nyitná meg az utat az Intel
- Stratégiai biztonsággal védekeznek a dráguló memóriák ellen a gyártók
- Melyik tápegységet vegyem?
- Soundbar, soundplate, hangprojektor
- Kivégezheti a kisebb VGA-gyártókat az NVIDIA döntése
- ASUS blog: kisebb, de nem gyengébb – a mini PC-k forradalma
- Milyen RAM-ot vegyek?
- Gaming notebook topik
- Projektor topic
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- AMD K6-III, és minden ami RETRO - Oldschool tuning
Ú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!
- Stratégiai biztonsággal védekeznek a dráguló memóriák ellen a gyártók
- Melyik tápegységet vegyem?
- A Vivo S50 Pro mini is beáll a sorba
- Konzolokról KULTURÁLT módon
- Mibe tegyem a megtakarításaimat?
- Víz- gáz- és fűtésszerelés
- Soundbar, soundplate, hangprojektor
- Kivégezheti a kisebb VGA-gyártókat az NVIDIA döntése
- Lakáshitel, lakásvásárlás
- Formula-1
- További aktív témák...
- RYZEN 7 7800X3D 32 GB DDR5 RTX 3080 Ti 12GB 1TB M.2
- Lenovo ThinkPad P15 Gen 1 Tervező Vágó Laptop -50% 15,6" i7-10750H 32/512 QUADRO T1000 4GB
- Dell LAtitude 7490 FHD, TOUCH, i7-8565U CPU, 16GB DDR4, 512GB SSD, 27% ÁFÁS SZÁMLA, 1ÉV GARANCIA!
- Üzletből, Lenovo garanciával ThinkPad E14 Gen 5/ Intel Core i5-1335u/16GRAM/512SSD/FULL HD +kijelző
- HP Elitebook 840 G6 FHD, i7-8565U CPU, 16GB DDR4, 512GB SSD, 27% ÁFÁS SZÁMLA, 1ÉV GARANCIA!
- BESZÁMÍTÁS! ASUS H510M i7 10700 16GB DDR4 512GB SSD RTX 3060 12GB GDDR6 Zalman T4 Plus ADATA 600W
- LG 34GN850P-B - 34" Ívelt Nano IPS - 3440x1440 - 160Hz 1ms - G-Sync - FreeSync - HDR 400
- Casio férfi karóra ECB-950DB-1AEF
- Gamer PC-Számítógép! Csere-Beszámítás! R5 5500 / RX 5700XT 8GB / 32GB DDR4 / 500GB SSD
- Apple iPhone 13 128 GB Fekete 1 év Garancia Beszámítás Házhozszállítás
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: ATW Internet Kft.
Város: Budapest



