Ú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özvetlen

    Megpró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 :)

Új hozzászólás Aktív témák