2010-05-15 9 views
8

Ich bin fertig mit einigen WinForms in C# arbeiten, aber jetzt bewegen, um eine Webanwendung Frontend in .NET zu entwickeln (C#) . Ich habe Erfahrung in der Entwicklung von Web-Anwendungen in Ruby on Rails (& ein wenig mit Java mit JSP-Seiten & struts mvc).Meine erste .net Web App - sollte ich direkt zum MVC-Framework gehen (siehe ASP.net)

Sollte ich direkt zum MVC-Framework springen? (im Gegensatz zu ASP.net gehen) Das ist aus der Sicht der zukünftigen Richtung für Microsoft & sowie Leichtigkeit im Rampen von mir selbst.

Oder, wenn Sie möchten, nach meiner bisherigen Erfahrung, was würde das Vor-/Nachteile für mich MVC vs ASP.net sein?

dank

Antwort

3

Wenn Sie wirklich eng am Kabel arbeiten müssen, ist MVC eine gute Wahl. Damit meine ich, wenn Sie sehr strenge Kontrollen über Markup dann haben müssen; während mit WebForms möglich; es ist viel einfacher mit MVC. Dies wäre für Anwendungen üblich, die auf ein öffentliches Publikum (z. B. das Internet) abzielen, das eine reichere grafische Erfahrung haben könnte. Wenn Sie dagegen eine interne (z. B. Intranet-) Geschäftsanwendung entwickeln, bei der die grafische Darstellung nicht so kritisch ist, bietet WebForms viele nützliche Funktionen, mit denen Sie sich schneller bewegen können. Versteh mich nicht falsch, du kannst WebForm-Anwendungen wirklich gut aussehen lassen, aber du gibst etwas Kontrolle über das Markup auf.

Sehr oft kommt ViewState in diese Art von Diskussion. MVC wird keinen ViewState haben, so dass der On-the-Wire-Footprint viel kleiner sein wird, was zu Einsparungen an Geschwindigkeit und Bandbreite führt. Auf der anderen Seite kann die Erstellung von Stateful-Anwendungen mit MVC schmerzhafter sein. Im Gegensatz dazu werden WebForms standardmäßig ViewState übertragen und sind inhärent zustandsbehafteter. Dies ist normalerweise für interne Anwendungen ausreichend. Denken Sie daran, dass ViewState nicht über die Leitung gesendet werden muss ... es gibt Erweiterungen, die es Ihnen ermöglichen, diese in einen lokalen Cache auszulagern. Ich bevorzuge keine der anderen, aber Sie sollten sich dessen bewusst sein, was jeder in dieser Hinsicht tun kann.

Wenn Komponententests für Sie wichtig sind, dann ist MVC auch eine viel bessere Wahl, da dies auch einfacher ist. Dies ist in WebForms durchaus möglich, erfordert jedoch, dass Sie Ihren Code korrekt formatieren.

Sicherheit ist kein wichtiger Faktor, da IPRinciple und IIdentity in der HTTP-Pipeline über HttpModules häufig eingerichtet werden.

Ein weiterer wichtiger Faktor bei der Wahl Ihrer Fähigkeiten ist die Zeit, die Sie verbringen müssen ... Wenn Sie nicht gewohnt sind, statusfrei zu arbeiten oder Standard-Webtechnologien zu programmieren (zB html, css, jquery , etc ...) MVC dauert länger, um sehr grundlegende Dinge zu tun. Wenn es einmal gesagt wird, wird es wahrscheinlich sauberer, kleiner, testbarer und schneller sein. Wenn Sie sich sehr schnell bewegen müssen, können Sie in WebForms viel schneller machen. WebForms macht auch viel Aufhebens in Bezug auf Markup, daher gibt es eine Reihe von Details, die Sie ASP.NET überlassen können.

Ich verwende beide aus einer Vielzahl von Gründen, und MS hat erklärt, dass sie planen, die Unterstützung und Entwicklung für beide fortzusetzen.

7

Haben hier wird es Sie, dass ich mit der Sprache vertraut machen sollte „fancy“ Sachen wie MVC vor der Verwendung, weil es einfach viel leichter zu lernen, wenn man fast denken konnte Choosing the Right Programming Model

0

helfen die Sprache (aber es ist nicht notwendig).

+0

Kommen aus Ruby on Rails, ASP.NET Webforms ist "Phantasie" nicht die ASP.NET MVC-Variante – SztupY

+0

das ist, was ich raten SztupY - was denkst du? – Greg

2

MVC ist Teil von ASP.NET. Sie müssen MVC vs Webform meinen, auf die die Antwort lauten würde: aus einem Winform-Hintergrund kommend, finden Sie webform einfacher zu verwenden. Für die Zukunft gehen Sie MVC.

1

Von Ruby on Rails oder anderen MVC-basierten Frameworks kommt ASP.NET MVC fast die beste Wahl. (ASP.NET MVC ist eigentlich nur der "VC" Teil, also müssen Sie ein ORM Ihrer Wahl hinzufügen. EF und Linq zu Sql ist der Microsoft Weg, NHibernate oder andere ORM's sind die andere Art. Ein gutes schnelles Startprojekt ist S#arp Architecture, die NHibernate als "M" -Teil verwendet, oder Sie können WHCM auschecken, das ein Projekt ist, das auf S # arp Architecture und anderen guten Frameworks erstellt wurde (es wird als ASP.NET MVC Best-Practices-Demoprojekt betrachtet). ASP.NET MVC verwendet fast nichts aus dem WebForms-Paket (die einzige Ausnahme, die ich gefunden habe, ist der AntiForgeryToken), so dass Sie nichts verlieren, wenn Sie mit ASP.NET WebForms nicht vertraut sind.

Aber wie Sie gesagt haben, haben Sie auch Konsolenanwendungen gemacht, denen ASP.NET WebForms mehr ähneln.

Wenn Ihr Projekt neu ist, rate ich Ihnen, ASP.NET MVC zu verwenden. Wenn Ihr Projekt den M-V-C-Teil klar trennt (wie in S # arp Architecture, wo sie sich in verschiedenen Assemblies befinden), sollte die Erstellung einer Konsolenanwendung, die dieselbe Geschäftslogik verwendet, nicht zu schwierig sein. Wenn Ihr aktuelles Projekt eine WinForms-Anwendung in das Web portiert, ist es möglicherweise einfacher, WebForms zu verwenden.

0

Pferde für Kurse. Wenn Sie eine schnelle App für jemanden zusammenstellen, ist Webformulare wahrscheinlich schneller und einfacher.

Wenn Sie eine lange laufende Enterprise-App erstellen MVC gibt Ihnen bessere Testbarkeit ein SoC.

+0

was meinst du mit besserer Testbarkeit ein SoC aus Neugier Doobi? – Greg

+0

Doh, sorry, Tippfehler: $ Ich meinte Testability und SoC (Trennung von Bedenken) http://msdn.microsoft.com/en-us/magazine/dd942838.aspx – Doobi

2

Ich habe auch an Desktop-Anwendungen gearbeitet und bin nie wirklich ins Web gekommen. Ich wusste nicht einmal (keuch!) HTML (ja, das war meine Programmierer Schande). In meinem neuen Job wollten wir eine neue Anwendung mit ASP.NET MVC starten und ich muss dir sagen, ich liebe es. JEDOCH denke ich, dass du nur mit MVC gehen solltest, wenn du es bist oder mit jemanden mit guten HTML/CSS-Designkenntnissen zählst.

Html ist einfach ich weiß (ich habe es gelernt wissen!), Aber ich denke, es ist schwierig, schöne Designs mit HTML und CSS zu machen, besonders wenn Sie beim Entwerfen saugen und Sie könnte schöneres Zeug mit Webforms tun, Das ist ein bisschen einfacher/ähnlich wie Winforms.

Auch, wenn Sie den MVC Weg gehen, stellen Sie sicher, Sie haben genug Zeit, um es zu lernen, da Sie ein wenig tiefer gehen werden, müssen mehr von den kleinen Details lernen, wie der tatsächliche Unterschied zwischen Post/Get und all das Zeug, das in Webforms ziemlich vollständig versteckt ist. Ich würde wirklich empfehlen, ein Buch zu bekommen, ich benutzte dieses Pro Asp.net MVC und mochte es wirklich.

Schließlich, wenn Ihre Seite interaktive Bits haben, oder Ajax-y Dinge, wenn Sie die MVC-Art gehen, werden Sie wahrscheinlich auch JavaScript/jQuery lernen müssen. Wenn Sie die Webformulare aufrufen, können Sie die enthaltenen Drag'n-Drop-Ajax-Steuerelemente verwenden.

+0

haben Sie jemals Probleme mit WebForms stecken, wo Sie können ' t Tweek Dinge, wie Sie wollen, dass sie aussehen? – Greg

+0

Ich habe nicht zu viel mit Webforms gearbeitet, aber in den wenigen Dingen, die ich gemacht habe, sind Sie ziemlich beschränkt auf die gegebenen Kontrollen und ihre Aktionen, da ID's ein Durcheinander ist. Das scheint viel einfacher zu sein.net 4, da du jetzt die ID angeben kannst, was dir erlaubt jquery/ajaxy dingies viel einfacher zu machen –

Verwandte Themen