2013-02-08 3 views
7

Hinweis: Dies ist weit von einem Beitrag auf x ist besser als x. Bitte nicht dorthin gehen.Warum ist .Net MVC-Architektur so über Rails kompliziert?

Ich bin ein .Net-Typ und immer gewesen, ich habe das MVC-Framework seit der frühen Version 2 Betas und jede Version seit. In den letzten Monaten habe ich mich mit Rails herumgeschlagen und ich habe eine Frage zur Architektur, die sich zwischen den beiden Plattformen sehr unterscheidet. (Basierend auf der Community und Fragen zu Websites wie SO)

In .Net MVC werden wir ermutigt, Bedenken zu trennen, erstellen separate Projekte für den Umgang mit Datenzugriff, Business Logic und die Ansicht, wir werden auch gesagt, dass wir konvertieren sollten Unsere Datenobjekte an ViewModels, bevor sie die Ansicht usw. treffen

In Rails scheinen die Dinge viel einfacher, wir haben ein Objekt, das Validierung, DataAccess (Via active record) und andere logische Eigenschaften enthält und wir liefern es einfach an die View und zeige es an.

Also warum in einem Rahmen ist diese Methode akzeptabel und in der anderen wird es als falsch angesehen und wir alle am Ende schreiben mehr Code und erstellen mehr Dateien.

Hinweis: Ich bin kein Rails-Experte und ich versuche wirklich nicht zu vergleichen, was besser ist als x, ich betrachte die High-Level-Architektur der 2 Frameworks und arbeite aus, was in einem akzeptabel ist, aber nicht in dem anderen .

+0

Gorilla vs Shark? http://blog.stackoverflow.com/2011/08/gorilla-vs-shark/ – mattytommo

+0

Nein, ich habe klar gesagt, ich frage nicht, was besser ist. Meine Frage ist warum ist komplizierte Architektur die Norm für .Net MVC noch Schienen unterstützt das komplette Gegenteil. – LiamB

+0

Die Tatsache, dass diese Frage innerhalb von 10 Minuten 4 Mal angezeigt wurde, sollte zeigen, dass dies für die Gemeinschaft von Wert ist. – LiamB

Antwort

6

Es hängt davon ab, welche Art von Anwendung Sie entwickeln und wie viel Sie erwarten, dass es wächst.

Für triviale Anwendungen ist es nicht nötig, die Dinge mit verschiedenen Ansichts- und Domänenmodellen zu verkomplizieren (aber Sie könnten separate Ansichtsmodelle und Entitäten verwenden: http://blog.gauffin.org/2011/07/three-reasons-to-why-you-should-use-view-models/).

Bei CRUD-Anwendungen müssen Sie Ihren Datenzugriff nicht in eine Abstraktion wie das Repository-Muster einbinden.

Aber wenn Sie erwarten, etwas anderes als trivial oder CRUD-Anwendungen zu programmieren, ermutige ich Sie, dies zu tun. Muster und Prinzipien unterstützen Sie an dem Tag, an dem Sie mit der Pflege Ihrer Anwendung beginnen möchten. Sie erhalten kleinere, besser definierte Klassen und die Geschäftslogik wird an einer Stelle anstatt in Ihrer gesamten Anwendung erstellt.

Ich habe einen kleinen Blog-Eintrag geschrieben, warum ich Abstraktionen verwenden: http://blog.gauffin.org/2013/01/data-layer-the-right-way/

Und warum Verkapselung ist wichtig: http://blog.gauffin.org/2012/06/protect-your-data/

+0

Das ist was mich immer und immer wieder während der Verwendung von .Net MVC beeinflusst hat - Aber kompliziertere Web-Anwendungen sind in Rails geschrieben, sie verwenden das Muster nicht. – LiamB

+0

Welches Muster? Und CRUD-Anwendungen können auch ziemlich groß sein, aber sie müssen immer noch nicht so viel Geschäftslogik haben. – jgauffin

+0

Sorry Pattern ist das falsche Wort, aber die ViewModels, die Abstraktion der Rails-Apps, die ich mir ansehe, scheinen mich nicht zu interessieren. – LiamB

Verwandte Themen