2009-12-22 12 views
11

Mir wurde eine kurze Zeitspanne (~ 80 Stunden, um damit zu beginnen) gegeben, um eine vorhandene Access-Datenbank durch ein ausgewachsenes SQL + Web-System zu ersetzen, und ich zähle meine Optionen auf. Ich möchte ASP.NET MVC verwenden, aber ich bin mir nicht sicher, wie ich es effektiv mit meinem kurzen Zeitplan verwenden kann.Wie kann ich eine schnelle Anwendungsentwicklung mit ASP.NET MVC durchführen?

Für das Datenbank-Backend verwende ich Linq to SQL, da es ein Produkt ist, das ich bereits kenne und etwas damit schnell arbeiten kann.

Hat jemand Erfahrung mit der Verwendung von ASP.NET MVC auf diese Weise und kann einige Einblicke teilen?

Bearbeiten: Der Grund, warum ich ASP.NET MVC interessiert bin, ist, weil ich weiß (100% bestätigt), dass es mehr Arbeit nach dieser ersten Runde zu tun, und ich möchte meine Wartungsarbeiten so einfach wie möglich zu sein. Nach meiner Erfahrung neigen Webforms-Anwendungen dazu, trotz wiederholter Wartung trotz Disziplin zu brechen.

Vielleicht gibt es einen Mittelweg? Wie schwierig wäre es für mich beispielsweise, die App mit Webforms zu erstellen und sie dann später zu MVC zu migrieren, wenn ich mehr Zeit für das Projekt habe? Bearbeiten 2: Weiter Hintergrund: Die Access-Anwendung, die ich ersetze, wird von jedem im Gebäude genutzt und seit es von Access 98 auf 2003 aktualisiert wurde, stürzt es täglich ab und verursacht Stunden verlorener Produktivität da Personen Daten seit dem letzten Backup neu eingeben müssen. Dies ist der Grund für die kurze Zeitspanne - dies ist eine kritische Geschäftsfunktion und sie können es sich nicht leisten, Daten täglich neu einzugeben.

+1

Was möchten Sie wissen? Wenn Sie eine kurze Zeit haben, wird das Erlernen eines neuen Rahmens und einer Methode, Dinge zu tun, keine gute Idee sein! – LiamB

+1

Es dauert länger als Sie denken; aber mit ASP.NET MVC können Sie ziemlich schnell laufen - wenn Sie ASP.NET MVC kennen. Es werden jedoch keine Daten außerhalb der Datenschicht übertragen. Sie müssen eine neue Benutzeroberfläche und Controller-Logik entwickeln. RAD hilft dir hier nicht; Es ist ein ganz neues Paradigma. –

+1

Ich denke, sobald Sie genug Code an Ort und Stelle haben, kann die Verwendung von ASP.NET MVC sehr RAD werden. – RichardOD

Antwort

7

Es gibt wirklich keine guten Antworten.

Ich wäre sehr überrascht, wenn Sie eine nicht-triviale Geschäftsanwendung in einem neuen Format (Web) in einem "kurzen" Zeitraum neu erstellen könnten (es sei denn, Sie messen "kurz" 6 Monate).

ASP.NET MVC bietet (Hände nach unten), um die meisten Abkommen mit jedem Anfang Web-Projekt zur Verfügung.

ASP.Mit NET können Sie Dinge per Drag-and-Drop ziehen, um die Dinge zum Laufen zu bringen, aber es bricht die Wartung für nicht-triviale Anwendungen auf schreckliche Weise.

Wenn es nach mir ginge, würde ich drei Dinge tun:

  1. meinen Chef fragen, ob er mich will eine ganze Geschäftsanwendung auf eine ganz andere Plattform erstellen.

  2. Sagen Sie ihm, er kann es jetzt entweder schneller (ASP.NET) oder schneller später (ASP.NET MVC) haben.

  3. Lassen Sie ihn anrufen.


Personal Addendum: Ich habe sowohl ASP.NET und ASP.NET MVC für Web-Anwendungen verwendet. MVC ist einfach besser. Nicht schneller, aber besser. Es hat die Webentwicklung für mich wieder "Spaß" gemacht.

+0

Das werde ich tun - ich habe ihm die Situation erklärt, die Kompromisse zwischen den Zielkonflikten (Entwicklungsgeschwindigkeit vs. Instandhaltungskosten) erklärt und ihn um seine Empfehlung gebeten. –

+0

Auch - ich habe 80 Stunden für jetzt gegeben. Nicht viel Zeit. = X –

+0

@Erik: Ich mag es nicht, in absoluten Zahlen zu sprechen, aber es sei denn, das ist eine wahnsinnig triviale Anwendung, ich bin mir nicht sicher, dass du es jemals in 80 Stunden schaffen würdest. –

7

MVC ist nicht wirklich ein RAD-Entwicklungsframework.

Sie schreiben viel mehr Infrastrukturcode als die RAD Webforms-Alternative zum Ziehen eines Datagrids und einer Datenquelle auf eine ASPX-Seite. Ich Liebe MVC aber wenn Sie unter der Pistole gehen mit Webforms gehen. MVC kann schneller sein, aber nur, wenn Sie eine Infrastruktur vorkonfiguriert haben.

MVC 2 lindert einiges davon, indem es modellbasierte HTML-Helfer wie Model.EditorFor() enthält, aber es ist noch nicht gut genug. Kein schneller Grid-Code. Paging? Sie rollen Ihren eigenen Pager. Ajax? Schreibe deine eigene JQuery.

Sicher, es gibt 3rd Party und Open-Source-Bibliotheken für all diese Sachen, aber nach meiner Erfahrung smushing sie alle zusammen und dafür sorgen, dass sie schön spielen, ist auch zeitaufwendig.

+3

ASP.NET MVC stellt die Infrastruktur bereit (siehe: Konvention über Konfiguration). Mit Drag & Drop Linq-To-SQL haben Sie bereits die Hälfte des Modells fertig. Die Infrastruktur ist da - aber Sie müssen MVC verstehen, und Sie können sich nicht einfach auf Drag & Drop-Steuerungen verlassen, die die Programmierung aus der Programmierung herausnehmen. –

+0

Lol, MVC bietet die Infrastruktur, schauen Sie sich diese Linq zu Sql-Funktion? Und wir sprechen nicht darüber, warum Drag and Drop schlecht ist. Wir reden darüber, ob Drag and Drop schneller ist. – jfar

+0

Bearbeitete meine Frage mit etwas mehr Hintergrund. –

0

Sobald Sie mit MVC laufen, ist es ziemlich schnell, aber es dauert eine Weile a) zu lernen und b) eine Reihe von nützlichen Bits Code aufzubauen.

Wenn Ihre Benutzeroberfläche nicht kompliziert wird, kann es sehr einfach sein, eine schnelle Dateneingabe-Schnittstelle einzurichten.

Wenn Ihr UI ist wirklich zu sein, wirklich einfach, können Sie gerne sehen ASP.net dynamic data.

0

können Sie auch das Entity Framework schauen auf Ihre Datenbank zu binden, dies Ihre Modelle erstellen mit verwendet werden MVC. Aber wie jfar sagte, unter dem Druck der kurzen Todesstrafe, gehen Sie für das, was Sie am besten wissen!

0

ASP.Net MVC ist gut, aber ....

Wenn Sie nicht ein System mit ASP entwickelt haben.Net MVC vor, und dann verwenden Sie es auf ein Projekt mit einer kurzen Frist ist ein Risiko.

Wenn Ihre Anwendung ist eine „einfache“ CRUD Anwendung dann würde ich mit Dynamic Data gehen: http://www.asp.net/dynamicdata/ (Paddy schlug mich nur zu, dass man)

Wenn Ihr System wirklich groß ist, könnte Sie Sharepoint Access Services betrachten http://blogs.msdn.com/access/archive/2009/10/21/net-developer-blogs-about-access-2010.aspx

4

Einfache Webanwendung + enger Zeitplan = ASP.NET Webforms.

Komplexe Webanwendung + enger Zeitplan = ASP.NET MVC.

ich gefunden habe, dass die Komplexität einer Web-App steigt linear die Komplexität eines webforms App steigt exponentiell. Sobald Sie anfangen, Ihre eigenen Serversteuerelemente zu schreiben (NICHT Benutzersteuerelemente, da diese immer noch relativ einfach sind), die für komplexere UI erforderlich sein können, müssen Sie eine gründliche Kenntnis des gesamten Seitenlebenszyklus haben, wie das Viewstate funktioniert und anderes Obskure Teile von Webformularen, die das Framework von dir abstrahiert.

MVC, während es erfordert wissen Sie HTML gut, tut gut aus auf dem hinteren Ende der Komplexität. Egal wie komplex die Anwendung ist, Sie haben immer noch mit POCOs und Methoden in Ihrem Controller zu tun. Sobald Sie die ersten Hürden überwunden haben, ist es leicht zu segeln. Die Entwicklungsschwierigkeiten steigen im gleichen Tempo wie die Schwierigkeiten der Website.

Persönliche Erfahrung: Ich konvertierte eine relativ komplexe Website mit benutzerdefinierter Server-Steuerelemente zu ASP.NET MVC und der Code-Basis in zwei Hälften geschnitten. Ich habe auch die Komplexität des Codes drastisch reduziert.

Die einzige Einschränkung ist, dass ich Ajax einfacher ist ASP.NET AJAX zu tun verwenden. Wenn Sie also eine Web-App entwickeln, die stark auf Ajax basiert, können Webforms MVC einfach übertreffen.


Die Migration von ASP.NET zu MVC ist nicht immer die einfachste. Sie müssen von einer Anwendung, die auf Codebehind basiert, zu einer Anwendung wechseln, in der Ihre Controller die Benutzeroberfläche nicht kennen. Außerdem hängt MVC stark von der URL ab, um die Absicht des Benutzers zu ermitteln, während ASP.NET auf Ereignishandlern beruht.

Persönlich, wenn ich eine Anwendung fühlte bestimmt war MVC zu sein, würde ich keine Zeit, es in ASP.NET Entwicklung verschwenden. Aber dann hatte ich den Vorteil, die anfängliche Lernkurve zu überwinden. Was war nicht so schlimm IMHO. Ich hatte mehr Probleme damit, alle HTML- und HTML-Formulare zu lernen, die ASP.NET mir vom Lernen abgehalten hat.

+0

Redigierte meine Frage mit etwas mehr Hintergrund. –

0

Evolutionary Software Development

Aus Erfahrung, die ich für sie bürgen - es ist, wie ich Programm, es unabhängig von der Technologie funktioniert.

Kurz gesagt: tu, was dein Bauchgefühl sagt (Code etwas), ändere, wie du Fehler/Auslassungen findest, und wenn es funktioniert, bist du fertig (aber für die Dokumentation).

1

Mit dieser Frist ich denke, es bequemer ist die ASP.Net Webform zu verwenden. Nach dieser ersten Phase mit mehr Zeit/Budget können Sie beginnen, neue Teile Ihrer Anwendung mit dem MVC zu entwickeln, da sie nebeneinander bestehen können.

Beachten Sie auch den Ajax- und Grid-Code. In MVC dauert es normalerweise länger, bis sie sich entwickeln, aber zumindest für mich scheinen sie robuster zu sein, weil du wirklich wissen musst, was du machst.

Diese Frage ist von 2009, wäre nett, wenn der Autor einige Rückmeldungen über seine Entscheidung geben würde.

EDIT: Werfen Sie einen Blick in http://mvcscaffolding.codeplex.com/, wenn Sie noch eine RAD mit asp.net MVC benötigen.

+0

Es endete nicht meine Entscheidung. Ich habe das Unternehmen verlassen, bevor sie mit der Konvertierung begonnen haben, und sie sind tatsächlich mit ASP.NET MVC gegangen. Danke =) –

0

Beide Frameworks liefern genug, um eine Lösung zu liefern, aber WebForms automatisiert einige der mit UI-Funktionen verbundenen Aufgaben wie Daten-Paging, Sortierung, Statuspersistenz oder benutzerdefinierte Datenpersistenz und vieles mehr, ABER ... wenn Sie sich wirklich hinsetzen und sagen Ok, was muss ich tun? ... entwerfen, navigieren, modellieren, präsentieren und dann herausfinden, wie man Layout zeigt, wie man Daten verbindet, wie man Daten bringt, wie man sie mit UI verbindet, wie man paginiert, sortiert und schließlich bearbeitet, wirklich einen Sinn ergibt In jedem Framework, das all dies erfüllt, werden Sie feststellen, dass MVC natürlicher und teamorientierter ist. Sie benötigen Werkzeuge wie EF Code First, ein CSS-Framework wie Bootstrap und jQuery, wenden Techniken wie IoC, SoC, Layering etc. an und verwenden zum Beispiel Automapper für den langweiligen Stuff, aber egal wie viele Dinge Sie berücksichtigen müssen, wird es immer passender sein, einfacher, natürlicher und direkter, als die verschiedenen Konfigurationen der zahlreichen Steuerelemente und Manager kennen zu müssen, die WebForms benötigt. Außer wenn es sich bei Ihrem Projekt um ein ERP mit CMS-Fähigkeiten handelt, wo ... Sie wissen: Wie auch immer, moderne Skills müssen sich den heutigen Trends anpassen und MVC ist einfach ein guter Host, der Ihnen hilft, sie ohne Überraschungen zu nutzen. Ich habe Tonnen von WebForms Code geschrieben, aber ich berühre es nicht wieder. Also, der letzte Punkt ist, dass im Jahr 2014 mit all diesen Tools und Frameworks, MVC ist nicht langsamer, sondern eher das Gegenteil, aber erfordert eine erste, kleine für mich, um einige Ressourcen zu sammeln und ein paar Methoden zu sperren.