Mit Blick auf MVC-Framework, scheint es, dass wir mehr von klassischen ASP Wissen dann ASP.NET Postbacks und Viewstates erfordern. Bewegen wir uns rückwärts zu komplexen UI + Code-Logik in der tatsächlichen Frontend-HTML-Markup?
Antworten
Zu viele Anzeigen?Wir versuchen nicht mehr, von grundlegenden Konzepten wie HTML und HTTP-Anfragen zu abstrahieren. Auf der UI-Seite bedeutet dies, dass die Ansichten enger mit der Ausgabe integriert sind, was keine schlechte Sache ist. Das klassische ASP-Modell bedeutete, dass alles eng mit der Ausgabe integriert war, was es eine schlechte Sache.
Man könnte argumentieren, dass das MVC-Paradigma ein Rückschritt ist, wenn man das ASP.NET-Paradigma als einen Schritt nach vorne betrachtet, denke ich. Ich persönlich war immer der Meinung, dass es viel einfacher war, sauberen, getrennten Code in klassischem ASP zu schreiben, als in .NET, wo der Ausgabetext in der Regel in Codeblöcken vermengt wurde, auf die man mit einem Standard-HTML-Editor nicht zugreifen konnte. Ich war immer der Meinung, dass es bei der ASP.NET-Architektur mehr darum ging, .NET voranzutreiben, als die Gesamtstruktur unserer Anwendung zu verbessern, so dass MVC in diesem Sinne ein Schritt nach vorn ist.
Es ist lustig, dass Sie das erwähnen ... Ich hatte heute das gleiche Gespräch mit einem Kollegen.
Ist das ein Rückschritt? Ich glaube nicht, so ... während in der klassischen Asp Sie eine einige komplexe Logik in der UI hatte, von dem, was ich mit MVC sehen kann, sollte die komplexe Logik noch in Ihrem Business-Objekte sein, und jede komplexe Interaktion mit dem Objekt sollte über den Controller erfolgen.
Das Ziel ist, soweit ich das beurteilen kann, die Benutzeroberfläche schlank zu halten, wenn es um die eigentliche Geschäftslogik geht. Jede zusätzliche Aufblähung würde durch die Herstellung der UI mehr benutzerfreundlich, mit der wie AJAX und JQuery verursacht werden.
Dies ist nur meine erste Beobachtung in Bezug auf MVC. Es ist eine sehr coole Technologie, vor allem mit, wie es sitzt oben auf REST, macht es sehr einfach, mit von anderen Technologien zu arbeiten.
Ich freue mich schon darauf, es in einigen zukünftigen Projekten auszuprobieren!
Wenn Sie komplexe Codelogik in der Ansicht im Verhältnis zu den Modellen und Controllern sehen, dann gehen Sie vielleicht auf die falsche Weise vor.
Im eigentlichen Sinne sollten Sie in der Lage sein, die Ansicht (z. B. XML anstelle von HTML) mit minimalem Aufwand zu ändern. Das kann nur geschehen, wenn die Datenlogik in den Modellen und die Geschäftslogik in den Controllern enthalten ist.
Wenn Sie also einen Einkaufswagen anzeigen würden, könnte die Ansicht nur Code enthalten, der die Produktmengen und Summen ausgibt. Die Modellklasse(n) würde(n) die Produktdaten enthalten, und der Controller würde die gesamte Verarbeitung vornehmen, z. B. das Hinzufügen von Produkten und das Auschecken.