Ich habe einige WinForms in C # gearbeitet, aber jetzt muss ich ein Web Application Frontend in .NET (C #) entwickeln. Ich habe Erfahrung in der Entwicklung von Web-Anwendungen in Ruby on Rails (und ein wenig mit Java mit JSP-Seiten und amp struts mvc).
Soll ich direkt zum MVC-Framework springen? (im Gegensatz zu ASP.net gehen) Das ist aus der Sicht der zukünftigen Richtung für Microsoft & amp; sowie Leichtigkeit im Hochfahren von mir selbst.
Oder, wenn Sie möchten, was würde das Pro / Contra für MVC im Vergleich zu ASP.net bedeuten?
Danke
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 Geschäftsanwendung (z. B. Intranet) entwickeln, bei der die grafische Darstellung nicht so wichtig ist, bietet WebForms viele nützliche Funktionen, mit denen Sie sich schneller bewegen können. Versteh mich nicht falsch, du kannst WebForm-Anwendungen wirklich sehr schön aussehen lassen, aber du gibst etwas Kontrolle über das Markup auf.
Sehr oft kommt ViewState zu dieser 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 nicht den einen gegenüber dem anderen, aber Sie sollten sich 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 Hauptfaktor, da viel von der Einrichtung von IPrinciple und IIdentity in der HTTP-Pipeline über HttpModules erfolgt, so dass beide in dieser Hinsicht tun werden.
Ein weiterer wichtiger Faktor, der Ihre Wahl betrifft, bezieht sich auf Ihre Fähigkeiten im Verhältnis zu der Zeit, die Sie liefern müssen ... Wenn Sie nicht daran gewöhnt sind, statusfrei zu arbeiten oder Standard-Webtechnologien zu codieren (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 eine Menge Schwerarbeit in Bezug auf Markup, also gibt es eine Reihe von Details, die Sie ASP.NET überlassen können.
Ich verwende beide aus verschiedenen Gründen, und MS hat erklärt, dass sie die Unterstützung und Entwicklung für beide fortsetzen wollen.
Schauen Sie hier, es wird Ihnen helfen Das richtige Programmiermodell auszuwählen
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 MVC.
Ich habe früher 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önnten wahrscheinlich hübscher Sachen mit Webforms, die ist ein bisschen einfacher / ähnlich wie winforms.
Wenn du auf MVC gehst, solltest du auch genügend Zeit haben, um es zu lernen, da du ein bisschen tiefer gehst und mehr von den kleinen Details lernen musst, wie zum Beispiel den Unterschied zwischen den Posts / get und all das Zeug, das in Webforms ziemlich vollständig versteckt ist. Ich würde wirklich empfehlen, ein Buch zu bekommen, ich habe dieses Pro Asp.net MVC benutzt und es hat mir wirklich gut gefallen.
Schließlich, wenn Ihre Seite interaktive Bits oder Ajax-y Dinge haben wird, wenn Sie den MVC-Weg gehen, werden Sie wahrscheinlich auch JavaScript / jQuery lernen müssen. Wenn Sie die Webformulare aufrufen, können Sie die enthaltenen Drag & Drop-Steuerelemente verwenden.
Von Ruby on Rails oder anderen MVC-basierten Frameworks kommend ist 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 , ein Projekt, das auf S # arp Architecture und anderen guten Frameworks aufbaut (es wird als ASP.NET MVC Best-Practice-Demoprojekt betrachtet)). ASP.NET MVC verwendet fast nichts aus dem WebForms-Paket (die einzige Ausnahme, die ich gefunden habe, ist die AntiForgeryToken), so dass Sie nichts verlieren werden, wenn Sie mit ASP.NET WebForms nicht vertraut sind.
Aber wie Sie bereits sagten, haben Sie auch Konsolenanwendungen erstellt, 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.
Ich sollte mich mit der Sprache vertraut machen, bevor ich "ausgefallene" Sachen wie MVC benutze, weil es einfacher ist, zu lernen, wenn man fast in der Sprache denken kann (aber das ist nicht nötig).
Tags und Links asp.net-mvc c#