none
[MVC2] Nicht definierte Funktionalitäten wo lagern? RRS feed

  • Frage

  • Hallo.

    Da ich ein Projekt zusammenstelle, welches Inhalte nutzt, welche desöfteren in kommenden Projekten verwendet werden sollen, frage ich mich, wo genau ich die Logik und vor allem, von wo aus ich z.B. ein repository übergebe.

    Beispiel:

    Das Projekt beinhaltet einen HitCounter inkl. IP-Sprerre.

    Ich verfasse nun die Logik, also den berechnenden Code im Model.
    Da es sich hierbei aber um keine Validierung oder Modelservice handelt,
    wollte ich den Code jedoch lieber im Controller unterbringen, da er u.a. auch linq abfragen (EF) benötigt
    und ich so das Model als nicht geeignet empfinde.

    EDIT: Das Problem ist z.B. auch, dass die Klasse für den HitCounter, mehrere Methoden beinhaltet.
    Diese wollte ich jedoch nicht im Controller unterbringen, weil dies sonst zu unübersichtlich wird, finde ich. Wie sieht es mit der Auslagerung der Klasse in eine seperate Datei aus?

    Meint Ihr, dass ist so ok?

    Danke


    Dienstag, 8. Mai 2012 17:56

Antworten

  • Ich habe in Erfahrung bringen können,
    dass einige Programmierer Ihr MVC auf MVVM (Bzw. MVVMC) erweitert haben.

    Somit hat man die Möglichkeit, die meiste Logik im Model unterzubringen
    und für das FrontEnd das ViewModel zur Verfügung steht.

    Ich werde das mal ausprobieren.

    Hier ein Beispiel:

    HTTP/Request
    #
    Controllers/ShopController
    #
    Models/ShopModel [Method: "GetArticle(int id)"]
    #
    return View(Model)
    
    #or#
    
    HTTP/Request
    #
    Controllers/ShopController
    #
    ViewModels/ShopViewModel [Props: "ArticleName", "ArticlePrice"]
    #
    return View(ViewModel)
    
    #or#
    
    HTTP/Request
    #
    Controllers/ShopController
    #
    Models/ShopModel [Method: "EditArticle(int id)"]
    #
    ViewModels/ShopViewModel = ShopModel
    #
    return View(ViewModel)

    Mittwoch, 9. Mai 2012 15:15