Ich befinde mich in einem frühen Stadium des Entwurfs eines Systems, das im Wesentlichen in zwei Teile geteilt wird. Ein Teil ist ein Dienst und der andere ist eine Schnittstelle mit dem Dienst, der Daten über OData oder XML bereitstellt. Die Anwendung basiert auf dem MVC-Architekturmuster. Für die Ansichten ziehen wir die Verwendung von XSLT oder Razor unter ASP.NET in Betracht.
XSLT oder Razor würden dazu beitragen, Bedenken zu trennen, bei denen das ursprüngliche XML oder die ursprüngliche Antwort Ihr Modell darstellt, während die XSLT- oder "Razor-Ansicht" Ihre Ansicht darstellt. Ich werde den Controller für dieses Beispiel weglassen. Der ursprüngliche Entwurfsvorschlag empfiehlt XSLT. Ich schlug jedoch die Verwendung von Razor als benutzerfreundlichere Ansichts-Engine vor.
Dies sind die Gründe, die ich für Razor (C #) vorgeschlagen habe:
- Einfachere Bearbeitung und Erstellung komplizierterer Seiten.
- Kann leicht Nicht-* ML-Ausgaben erzeugen, z. B. csv, txt, fdf
- Weniger ausführliche Vorlagen
- Das Ansichtsmodell ist stark typisiert, wobei XSLT sich auf Konventionen stützen müsste, z. B. Boolesche Werte oder Datumswerte
- Markup ist zugänglicher, z. B. nbsp, Newline-Normalisierung, Attibute-Value-Normalisierung, Whitespace-Regeln
- Der integrierte HTML-Helfer kann JS-Validierungscode basierend auf DTO-Attributen generieren
- Der integrierte HTML-Helfer kann Links zu Aktionen generieren
Und die Argumente für XSLT über Rasiermesser waren:
- XSLT ist ein Standard und wird noch viele Jahre in der Zukunft existieren.
- Es ist schwierig, versehentlich Logik in die Ansicht zu verschieben
- Easer für Nicht-Programmierer (dem ich nicht zustimme).
- Es war in einigen unserer vergangenen Projekte erfolgreich.
- Datenwerte sind standardmäßig HTML-codiert
- Immer gut geformt
Ich suche also nach Argumenten auf beiden Seiten, nach Empfehlungen oder nach Erfahrungen, die eine ähnliche Wahl treffen?