WinFuture-Forum.de: Vortrag Berufsschule - Codebeispiel Mvc - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Vortrag Berufsschule - Codebeispiel Mvc


#1 Mitglied ist offline   skelle 

  • Gruppe: aktive Mitglieder
  • Beiträge: 793
  • Beigetreten: 15. Juli 04
  • Reputation: 0

geschrieben 26. April 2010 - 15:47

hey
wir müssen in der berufsschule einen vortrag zum thema mvc pattern halten.
ich habe dazu mal eine mini anwendung geschrieben welche das prinzip vom mvc pattern zeigen soll.
ich habe 2 views 1 controller und 1 model

das C# projekt findet sich im anhang

wäre nett wenn jemand mal fix drüber schauen könnte (is echt nich viel ) und mir sagt ob das so ok ist oder ob ich was falsch verstanden habe :wink:

greetz skelle :wink:

Angehängte Datei(en)

  • Angehängte Datei  MVC.zip (38,98K)
    Anzahl der Downloads: 196

0

Anzeige



#2 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 26. April 2010 - 17:24

Mal einige unsortierte Punkte, die mir so auffallen:

- Bei dir sind die Views ist fest gekoppelt an ein Model oder Controller. Bei dem Controller würde das noch einen Sinn ergeben, da dieser sich idR nicht ändert, aber ein Model? In deinem Fall würde das heißen, dass ich mit View2 kein anderes Auto anschauen kann.
- Dein Controller kann ohne ein Model nicht leben
- Ein Controller steuert die Präsentationen, macht er das bei dir?
- Um auch was Positives loszuwerden, das Observer-Pattern hast du schön umgesetzt. :wink:

Im Großen und Ganzen musst du versuchen, das etwas "loser zu koppeln". Arbeite immer mit dem Hintergedanken, du hättest viele Views und viele Models. Das Strategie-Pattern dürfte recht interessant sein.
0

#3 Mitglied ist offline   skelle 

  • Gruppe: aktive Mitglieder
  • Beiträge: 793
  • Beigetreten: 15. Juli 04
  • Reputation: 0

geschrieben 27. April 2010 - 15:27

Zitat

Bei dir sind die Views ist fest gekoppelt an ein Model oder Controller. Bei dem Controller würde das noch einen Sinn ergeben, da dieser sich idR nicht ändert, aber ein Model? In deinem Fall würde das heißen, dass ich mit View2 kein anderes Auto anschauen kann.

ok ich hab die sache mal ein wenig angepasst:
ich habe eine abstrakte klasse auto von der dann die "richtigen" autos erben... somit ist die view schonmal ein wenig flexibler da sie alle auto darstellen kann.

wenn ich dich richtig verstehe is dies aber immernoch zu stark gekoppelt.
ich weiss aber nich genau wie ich das noch weiter entkoppeln soll... die view muss doch an ein model gebunden sein oder etwa nicht? ich kann ja keine universelle view bauen die autos, flugzeuge, und tiere darstellen kann (einfach ausgedrückt ^^)

Zitat

Dein Controller kann ohne ein Model nicht leben


hmm naja da ein controller das bindeglied zw view und model ist macht das doch irgendwo sinn oder meinst du die art das ich im konstruktor ein model verlange und man es nicht nachträglich ändern kann

Zitat

Ein Controller steuert die Präsentationen, macht er das bei dir?

ich habe das genau andersrum verstanden .... nach meiner auffassung dient der controller als bindeglied zw view und model... man klickt in der view -> das geht an den controller -> dieser forder das model auf eine best aktion auszuführen -> das model benachrichtigt dann die observer das es neue daten gibt und diese holen sich die

Zitat

Um auch was Positives loszuwerden, das Observer-Pattern hast du schön umgesetzt. :)

danke <_<

wär nett wenn du meine fragen nochmal beantworten könntest

greetz

Dieser Beitrag wurde von skelle bearbeitet: 27. April 2010 - 15:29

0

#4 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 30. April 2010 - 08:38

Zitat

die view muss doch an ein model gebunden sein oder etwa nicht? ich kann ja keine universelle view bauen die autos, flugzeuge, und tiere darstellen kann

Bei den Views habe ich mich etwas unglücklich ausgedrückt.

Wenn du dir mit der View2 ein neues Auto anschauen möchtest, musst du jedesmal eine neue Instanz erzeugen. Wobei das ansich nicht wirklich falsch ist und in erster Linie nichts mit MVC zu tun hat. Man könnte sie stattdessen mit Setter-und Gettern austatten, aber das ist nur Optimierung. Ich nehme daher alles zurück und behaupte das Gegenteil. Die View2 ist genau richtig so. :wink:

Zitat

hmm naja da ein controller das bindeglied zw view und model ist macht das doch irgendwo sinn oder meinst du die art das ich im konstruktor ein model verlange und man es nicht nachträglich ändern kann

Das letztere meinte ich unter anderem. Jedes Mal, wenn du ein neues Auto anschauen/verändern möchtest, musst du einen neuen Controller erzeugen. Das ist sicherlich nicht Sinn und Zweck. Vor allem wenn man bedenkt, dass auch ein Controller Models erzeugen kann.

Zitat

ich habe das genau andersrum verstanden .... nach meiner auffassung dient der controller als bindeglied zw view und model... man klickt in der view -> das geht an den controller -> dieser forder das model auf eine best aktion auszuführen -> das model benachrichtigt dann die observer das es neue daten gibt und diese holen sich die

Es klingt bei dir ein wenig so, als ob die View nichts mit dem Model machen dürfte. Der View ist es durchaus erlaubt, das Model mit Daten füllen (also die Setter-Methoden aufrufen).

Der Controller kann mehrere Aufgaben haben.
Eine Aufgabe ist, die Benutzereingabe die von der View kommt, so aufzubereiten, dass das Model damit etwas anfangen kann.
Beispiel: In einer Produktübersicht (View) wählt ein Benutzer ein Produkt aus und legt es in den Warenkorb (Model). Der Controller aktualisiert den Warenkorb des Benutzers. Wie die View über die Aktualisierung des Warenkorb benachrichtigt wird, ist dem Entwickler überlassen. Entweder der Controller teilt das der View mit oder sie wird "quasi automatisch" über das Observer-Pattern aktualisiert.

Da ein Controller auch mehrere Views steuern kann, kann eine weitere Aufgabe des Controllers darin bestehen, die entsprechenden Views aufzurufen.
Beispiel: Ein Benutzer hat die Möglichkeit die Daten des Autos "Mercedes SLS" zu verändert oder anzuschauen. Der Controller nimmt die Eingabe des Benutzers an, wertet diese aus und ruft die entsprechende View auf. Für den Aufruf der richtigen View kann das Strategie-Pattern verwendet werden.

In der Praxis, vor allem bei größeren Projekten, teilt man diese beiden Aufgaben in unterschiedliche Controller-Typen auf.
0

#5 Mitglied ist offline   skelle 

  • Gruppe: aktive Mitglieder
  • Beiträge: 793
  • Beigetreten: 15. Juli 04
  • Reputation: 0

geschrieben 03. Mai 2010 - 20:04

hmm leider etwas spät die antwort aber dennoch danke ;)
im grpßen und ganzen schein ich die sache aber ganz gut gerafft zu haben.. paar sachen warn halt der einfachheit halt etwas statisch gemacht hier


gab aber 92% im vortrag von daher ganz ok

danke dir nochmal

greetz ;)
0

#6 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 04. Mai 2010 - 18:01

Ist doch super! Besser hätte es fast gar nicht laufen können. :yuk:
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0