3

Scheint so, als ob jedes Projekt, in dem ich bin, eine Model View Controller-Architektur verwendet, und so rolle ich meine eigenen Projekte. Gibt es eine Alternative? Wie sonst würde man eine Anwendung erstellen, die über persistenten Speicher und eine Benutzeroberfläche verfügt?Was ist eine Alternative zu MVC?

+0

Duplikat von [141912] (http://stackoverflow.com/questions/141912/alternatives-to-the-mvc)? – xenoterracide

+0

Sie können einen Artikel hier lesen: [http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science)][cs] [cs]: http://en.wikipedia.org/wiki/Architectural_pattern_%28computer_science% 29 – Dels

Antwort

8

MVC gibt es schon seit einiger Zeit. Es ist eine Zeit getestet und bewährt pattern. Viele Frameworks nutzen die MVC Pattern. Martin Fowler hat die MVC in: Supervising Presenter und Passive View dekonstruiert.

Architekt Christopher Alexander hat es am besten:

Jedes Muster ein Problem beschreibt die immer und immer wieder in unserer Umgebung auftritt, und beschreibt dann den Kern der Lösung dieses Problems, in einer solchen Art und Weise dass Sie diese Lösung millionenfach verwenden können, ohne je zweimal.

Ich bin mir nicht sicher, warum Sie von MVC bewegen möchten. Gibt es ein Problem, auf das Sie stoßen, das MVC nicht eloquent löst? Um geben Sie eine bessere Antwort wir müssen mehr über Ihre Problemdomäne wissen.

Dinge zu berücksichtigen, wenn Muster/Architektur bedenken: Wenn Sie etwas mit einer Myspace Art Architektur bauen Sie eine robuste Architektur (MVC) benötigen. Wenn Sie eine einfache Crud-Schnittstelle über das Internet erstellen, ist fast alles möglich.

Für .Net-Web-Formulare (ich nehme an, Web, da Sie nicht dick oder Web-Client sagen), die nicht MVC ist, war es ein Albtraum, sie zu pflegen. Web Forms-Anwendungen, die mehr als ein paar Jahre alt waren, tendierten dazu, big balls of mud zu werden. Schon damals entdeckten Entwickler Möglichkeiten, MVC with web forms zu verwenden.

Ironischerweise war das Fehlen von MVC-Architektur in ASP.NET Web Forms eine der treibenden Beschwerden, die zur Entwicklung von ASP.Net MVC framework führen.

Aus Erfahrung, wenn Sie nicht einige MVCesk Ansatz verwenden, werden Ihre Lösungen schwer zu pflegen und aufgebläht. Diese Anwendungen werden einen langsamen schmerzhaften Tod sterben.

Wenn es sich bei Ihren Lösungen um kleine Einzelprojekte handelt, sollten Sie auf jeden Fall etwas zusammenschmeißen. Zum Schluss gibt es Tools, die alles von den Bildschirmen bis zur Datenzugriffsebene generieren. Was auch immer funktioniert, um den Job zu erledigen.

6

Klassische CRUD-Apps, die mit Tools wie VB6 und Delphi erstellt wurden, verfügen über Benutzeroberflächen, dauerhaften Speicher und verwenden MVC nicht. Die meisten von ihnen verwendeten datensensitive Steuerelemente, die direkt mit Datenbankfeldern verbunden sind.

0

Benutzerschnittstelle ist Ansicht und eine Anwendung wird immer ein Modell haben und die Brücke zwischen den beiden ist Controller. Das ganze MVC ist nichts besonderes, denn so werden die Dinge immer sein.

Allenfalls können Sie Controller loswerden und Ihre Ansicht mit Ihrem Modell sprechen, aber Sie verlieren die Flexibilität.

3

Schauen Sie sich MVP Model View Presenter an.

+0

Es ist auch MVC unter der Haube;) –

0

Ich habe eine Alternative zu ASP.NET MVC entwickelt. Sie erhalten die gleiche lose Kopplung und Trennung von Bedenken, aber der Unterschied besteht darin, wie Sie Ihre Projekte aufbauen.

Ich habe ein paar Videos auf meinem Blog, Quellcode für das Framework, ein Beispielprojekt und ein paar VS.NET-Add-Ins (Neues Projektelement, Neuer Builder und Neue Ansicht).

Builder for ASP.NET

Einige der wichtigsten Unterscheidungsmerkmale sind 1. Vorlagen sind nur html - kein Code mit Vorlagen gemischt 2. Vorlagen somit über Ansichten wiederverwendbar sind und Website-Designer können Vorlagen in ihrem Design-Tool der Wahl entwerfen 3. Stark typisierte Code (keine ViewData und Zeug), so dass Sie intinisense, kompilieren Zeit überprüfen, F12 Navigation usw. 4. Sie Seiten als Kompositionen der Ansichten statt einer Inside-Out-Ansatz 5. Ansicht kann behandelt werden als " echte "Klassen. 6. Alles ist erfüllt, so keine Laufzeitkompilierung

Eine ganze Reihe anderer unterscheidender Faktoren als auch.

0

Theoretisch:

MVC ist ein geprüftes Technologie und bla-bla-bla, und es ist ideal für Websites.

Aber in einem realen Fall:

Ein ernstes Projekt, das MVC verwenden, um einen Rahmen benötigt, daher sind Sie nach einem Rahmen mit all ihrer Begrenzung und Einschränkungen. An diesem Punkt ist die spezifische Implementierung von MVC eine Regel und keine einfache "Richtlinie".

Auch MVC scheitern kläglich für Websites, wenn es sich um eine Verbindung mit dem Modell anders als einfache POST/GET ist, scheitern mit Xml-Asynchronität und es scheitern mit Ajax. (*)

(*) existiert ein Patch, aber ein Design muss klar und funktional sein und wenn Sie es "patchen" müssen, dann ist es weder klar noch funktional.

Persönlich denke ich, dass das Hauptproblem mit MVC ist, dass es so viel Aufwand in der Controller, wo die meisten Projekt nicht mehr als 5 Zeilen für den Controller Teil verwenden.

ps: Die meisten "gut gemacht" MVC-Projekte sind 3-Tier-Projekt.

PS2: MVC mit Ausnahme einiger Rahmen, ist nur ein Buzzterm, ist keine ernste Terminologie und es ist in der Gruppe der "Interpretation von MVC".

Verwandte Themen