2009-07-24 12 views
1

Ich bin frustriert vor kurzem von allen Möglichkeiten, die Microsoft bietet ein Webformular zu entwickeln. Es gibt Sharepoint, Infopath ohne Sharepoint, ASP.NET Web Forms (mit verschiedenen Steuerelementen für jede Laufzeit), ASP.NET ohne Web Forms, ASP.NET MVC Framework, Silverlight und WCF. Rendering und Datenbindung Technologien beiseite, es gibt eine Handvoll von verschiedenen Möglichkeiten, um Daten zu und von der Datenbank (DataSets, LINQ, SqlDataControls, und viele mehr) Und das sind nur diejenigen, die ich in einer Minute oder so benennen kann - ich ' Sicherlich fehlen mir einige sehr alte Technologien (hat FoxPro jemals ein Web-Frontend bekommen) oder sehr neue Dinge in der Einführung von Microsoft Labs.Von all den Möglichkeiten, die Ihnen Microsoft bietet, um eine Webseite zu schreiben, welche bietet den meisten Nutzen pro Programmierstunde?

Wenn ich von der Verwendung von ASP.NET Web Forms und DataSets abrücken möchte, was ist der beste Weg, um jetzt für datengesteuerte Formulare zu wechseln? Mit was hast du gearbeitet, das hat einen guten Wert für deine Programmierzeit geliefert? Ich bin versucht, mit LINQ to Entities und dem neuen MVC-Framework zu arbeiten, aber ich weiß nicht genug über all diese neuen Technologien, um zu entscheiden, wo der Wert liegt.

+3

Es ist faszinierend für mich, dass Sie durch Entscheidungen frustriert wären! –

+1

Wenn es eine lange Zeit braucht, um jede Wahl zu bewerten, ja, viele Möglichkeiten frustrieren mich. – quillbreaker

+0

Ich denke, das OP hat einen guten Stellenwert in MS, der mehrere Auswahlmöglichkeiten bietet, aber nicht eindeutig auf die Zielgruppe abzielt, und in den neueren Fällen sogar keine adäquate Dokumentation bietet. (ASP.NET MVC und AJAX kommen mir in den Sinn, und fangen nicht einmal mit dem .NET Chart-Steuerelement an) –

Antwort

2

Es wurde schon oft gesagt - es gibt kein "Was ist das Beste". Wenn eines dieser Werkzeuge am besten wäre, dann würde der Rest nicht existieren. "Data Driven Forms" ist eine ziemlich breite Anforderungsaussage.

Sie alle haben Vor- und Nachteile in anderen Bereichen, aber alle von ihnen sind in der Lage "datengesteuerte Formen". MVC ist Formulare auf niedrigerer Ebene - Sie müssen die gesamte HTML- und Formularverarbeitung selbst vornehmen, es ist jedoch viel näher an der direkten Verwendung von HTTP, so dass viele Leute es leichter finden und einfacher damit arbeiten können.

Silverlight hat Nachteile, da es eine reduzierte Menge der .Net-Bibliotheken verwendet und die Benutzer Browser-Plugins installieren müssen.

WCF würde die Daten hinter Ihren Formularen bereitstellen und wäre sehr geeignet, wenn Sie eine öffentliche API öffnen oder die Daten anderweitig nutzen möchten.

Sie können es nützlich finden, jede Technologie für eine Stunde zu erforschen, und Sie würden ein besseres Verständnis davon haben, die Ihren Bedürfnissen entsprechen könnte.

1

Wenn Sie ASP.NET verwenden (was beim Versuch, eine reguläre Website zu codieren, ein wenig "schuhspurig" ist), empfehle ich Ihnen, das MVC-Framework von Microsoft zu testen. Es ist ein echter Hauch frischer Luft!

Von einem Wert pro Arbeitsstunden-POV hängt es wirklich davon ab, was Sie tun. Ich kann nicht sagen, dass ich viele Web-Frameworks ausprobiert habe, daher bin ich vielleicht nicht die beste Metrik, aber mit MVC ist alles natürlich zusammengewachsen und ich bin froh, dass ich es jetzt beibehalten werde.

1

Ich glaube nicht, dass ASP.Net Forms etwas ist, von dem Sie "wegkommen" müssen.

MVC hat sicherlich seine Nützlichkeit und macht, wenn es angemessen ist, eine Menge Dinge einfacher.

Aber eine gut gestaltete ASP.Net Forms App kann in bestimmten Situationen genauso oder sogar noch nützlicher sein.

Ich benutze MVC für öffentliche Seiten und Formulare für interne/administrative Sachen.

0

Für eine datenintensive Seite halte ich Webformulare für eine vollkommen adäquate Lösung. MVC führt die Trennung von Layern ein, die es für Sie schwieriger machen, sich zu entwickeln, da Sie gezwungen sind, die Sammlung der Daten zu trennen und sie zu routen.

Ich würde sagen MVC ist nett für eine interaktive Webseite (Web 2.0-ish) aber wenn Sie nur eine Reihe von Berichten zeigen oder Benutzer Formulare ausfüllen lassen - es gibt nicht viel für Sie, IMHO zu nutzen.

Als Alternative versuchen Sie, weniger Code mit integrierten Steuerelementen wie Repeater oder DataGrids oder sogar DataSets zu schreiben. Wenn Sie sich auf den Kern Ihres Datenflusses konzentrieren, können Sie produktiver arbeiten, indem Sie intelligenteren Code schreiben - nicht unbedingt, indem Sie weniger Code schreiben.

Am Ende habe ich festgestellt, dass ich mein eigenes "Framework" zusammenstelle, das genau das tut, was ich brauche. Ich erhalte HTML direkt von einem benutzerdefinierten Steuerelement. Diese Steuerelemente formatieren einfach die Daten, die von Prozeduraufrufen an meine benutzerdefinierte Datenbankzugriffsklasse übergeben werden. Und ja, diese werden alle mit Webformularen oder http-Handlern (ASHX) und ein bisschen jQuery bedient.

Obwohl es nicht glamourös ist, wird es schneller und besser erledigt - durch die Entwicklung von Code, der genau auf mein Geschäft abgestimmt ist, nicht auf abstrakte Software-Designmuster.