8 Stimmen

Wird .NET MVC mir die HTML/CSS/JS-Trennung bieten, die ich brauche?

Ich arbeite mit meinem ASP.NET-Entwicklungsteam zusammen, um zu versuchen, "bessere" (d.h. sauberer) HTML beim Rendern von Seiten. Im Moment hat .NET die unangenehme Tendenz, JavaScript in die Seite einzubauen, was es zu einer zwingenden Voraussetzung für Formularsteuerelemente macht und es nicht erlaubt, dass Formulare funktionieren, wenn JS nicht verfügbar ist. In einigen Fällen haben wir Schwierigkeiten, dies zu überwinden, ohne die Entwicklungszeit erheblich zu verlängern.

Ich habe schon früher mit MVC gearbeitet - über Struts in Java - und fand, dass ich in diesem Fall die HTML-Seiten genau so halten konnte, wie ich sie haben wollte. (Diese Sichtweise basiert auf dem "besten Fall" von statischem HTML, das ich normalerweise vorher entwickelt und dann den Java-Programmierern zum Ausfüllen der Löcher übergeben habe).

Das hat sehr gut funktioniert und wir konnten einige der "besten" Webseiten aus einem CMS erstellen, die ich je gesehen habe. Könnte ich mit .NET MVC die Trennung erreichen, die ich brauche, oder wäre es eine falsche Einsparung, wertvolle Entwicklungszeit für diesen Test zu opfern?

Wenn .NET MVC nicht geht, um mir diese feinkörnige Kontrolle über die Trennung, alle Empfehlungen für .NET-Codierung Praktiken, Bibliotheken, usw., die wirklich hilfreich sein könnte.

5voto

Ryan Lanciaux Punkte 5974

Das ASP.NET MVC Framework würde Ihnen eine viel vertrautere Trennung bieten. Da es im MVC-Framework keinen Viewstate usw. gibt, müssen Sie sich keine Sorgen machen, dass JavaScript in Ihre Seiten hineingeschleust wird. Die einzigen JavaScript-Aufrufe, die Sie sehen, werden diejenigen sein, die Sie manuell hinzufügen.

Sie können, zum größten Teil, trennen HTML / CSS / JS wie Sie in einem anderen Rahmen würde.

3voto

Mendelt Punkte 35649

Je nachdem, welche Ansichtsmaschine Sie verwenden werden, ja.

Sie können dies aber leicht überprüfen, indem Sie sich den Seitenquelltext von stack-overflow ansehen. Es ist nicht zen-garden, aber es ist ziemlich sauber.

Eine weitere Klarstellung:

Das Rendering der Seiten wird von der View-Engine übernommen. Sie können die Standard-View-Engine oder vorhandene Engines wie nVelocity oder Brail verwenden, genau wie bei Monorail. http://www.chadmyers.com/Blog/archive/2007/11/28/testing-scottgu-alternate-view-engines-with-asp.net-mvc-nvelocity.aspx

Da die View-Engine für die Erstellung von HTML zuständig ist, hängt es von Ihrer Wahl ab, was dabei herauskommt. Aber die meisten View Engines sind in dieser Hinsicht besser als Vanilla ASP.Net

1voto

Geoff Punkte 9320

@Wrestlevania sagte:

irgendwelche Empfehlungen für .NET-Codierung Praktiken, Bibliotheken, usw., die wäre wirklich hilfreich.

Ich versuche, beim Programmieren in ASP.Net ein hohes Maß an Trennung beizubehalten. Ich finde, wenn ich die asp-Steuerelemente vermeide und mich so weit wie möglich an die grundlegenden HTML-Elemente halte, kann ich jede Situation vermeiden, in der ASP.Net dazu neigen würde, zusätzliches CSS oder JS in meine Seite einzufügen. Beispiel: Verwendung von span anstelle von asp:literal, button anstelle von asp:button, usw.

Das einzige ASP-Steuerelement, das ich verwende, ist der Repeater, der zum Erstellen einer Tabelle verwendet wird. Jede Funktionalität, die ich brauche, die ähnlich wie ein Asp-Steuerelement wäre, implementiere ich entweder selbst in Javascript, oder verwenden Sie einen Rahmen wie Jquery.

0voto

loudej Punkte 1871

Asp.Net MVC wird Ihnen helfen, html/css/js getrennt zu halten, da es weniger Funktionen bietet, die Sie daran hindern würden, sie getrennt zu halten.

Zum Beispiel geben Html-Helfer normalerweise genau das zurück: Html. Von diesem Punkt an können Sie sich entscheiden, alle Stilinformationen nur durch Klassenattribute zu verknüpfen.

Überlegen Sie sich auch, wie Sie mit einer Bibliothek wie jQuery umgehen. Es ist ein hervorragendes Beispiel dafür, wie man die geskriptete Funktionalität vollständig in der JavaScript- und nicht in der HTML-Umgebung halten kann, indem man das Verhalten der Ereignisbehandlung auf die Elemente beim Laden der Seite anwendet, basierend auf Dingen wie Elementtyp, Klasse und ID.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X