Frage

Als großer XSL-Fan, ich bin sehr glücklich, xsl wie der Blick in unserem eigenen MVC-Framework auf ASP.NET zu verwenden. Objekte im Modell sind unter der Haube mit .NET XML-Serializer serialisiert, und wir verwenden ganz Atom-xsl-Vorlagen zu erklären, wie jedes Objekt oder Eigenschaft sollte verwandeln.

Zum Beispiel:

  <xsl:template match="/Article">
    <html>
      <body>
        <div class="article">
          <xsl:apply-templates />
        </div>
      </body>
    </html>
  </xsl:template>

  <xsl:template match="Article/Title">
    <h1>
      <xsl:apply-templates />
    </h1>
  </xsl:template>

  <xsl:template match="@*|text()">
    <xsl:copy />
  </xsl:template>

Dieser Mechanismus ermöglicht es uns, schnell auf die Standard passende Vorlagen außer Kraft setzen, wie in einer Liste auf dem letzten Element ein Template-Matching mit, oder derjenige ausgewählt, etc. Auch xsl Erweiterung Objekte in .NET ermöglichen es uns, nur das bisschen mehr Grip das brauchen wir. Gemeinsame gemeinsame Vorlagen aufgeteilt werden können und enthalten.

Allerdings

Auch wenn ich die Ausführlichkeit Nachteil von xsl ignorieren kann (weil Visual Studio Schema intellisense + Snippets wirklich glatt ist, Lob an das VS-Team), die Kehrseite der Medaille nicht intellisense über strongtyped Objekte im Modell aufweist, ist wirklich etwas, das nervt ist ich.

Ich habe in Aktion Benutzersteuer ASP.NET MVC + gesehen und wirklich beginnen, es zu lieben, aber ich frage mich;

Gibt es eine Möglichkeit, eine Art intellisense über XML zu bekommen, die wir iterieren, oder wissen Sie von einer Sprache, die die Freiheit und declarativeness von XSL bietet aber hat die strongtype / intellisense Vorteile sagen webforms / usercontrols / asp.net.mvc-Ansicht?

(ich weiß wahrscheinlich die Antwort: „Nein“, und ich werde mich Phil Haack ganz kühl mvc mit finden SHIZZLE bald ...)

War es hilfreich?

Lösung

können Sie verwendet, um die serialisierten (xml) Form Ihrer Objekte und bearbeiten es mit dem XML-Editor von VS (ich benutze VS2008).

Dann ein XSD-Schema zu diesem XML-Dokument verknüpfen. Verwenden Sie das Schema, die XSD exe selbst erzeugt wird und dass es verwendet in der Serialisierung / Deserialisierung.

Sie werden sehen, dass Sie Intellisense kostenlos erhalten!

Außerdem, wenn Sie das Schema bearbeiten und hinzufügen

    <xs:annotation>
      <xs:documentation>
        Helpful Explanation.
      </xs:documentation>
    </xs:annotation>

wird der XML-Editor wird nicht nur aufgefordert, Sie die möglichen Elemente oder Attribute Namen und Werte, , aber es wird auch die „Hilfreiche Erläuterung“ pop-out für jeden von denen, die hat die Daten Anmerkung in das xML-Schema eingetragen.

Um zu erfahren, wie ein XML-Schema in ein XML-Dokument verknüpfen entweder Lookup den lokale VS2008 Hilfe oder finden sie auf MSDN Online , oder es hier .

Hoffe, dass dies geholfen hat.

Cheers,

Dimitre Novatchev

Andere Tipps

Dies ist eine Art Off-Topic, aber auf der Strecke mit xsl (t) und der Schmerz ein CMS zu schaffen gewesen, die verursacht würde ich asp.net Mvc aus anderen Gründen als intellisense empfehlen. Aber das ist schön.

ich ursprünglich xsl zu trennen, um die Ansicht aus den Daten verwendet, die es tut. Aber die Designer fanden es sehr schwer, gehen vor allem, weil sie alle wie html, um sie aussah. Mehr spitze Klammern usw. Und ich war ständig das Gespräch, „aber warum kann ich nicht habe ein Dokument mit alles in it“

Xsl war auch slooow und sehr Speicher hungrig. Aus Speicherfehler sind peinlich, und durch die Zeit, die Sie ihnen den Weg bekommen zu spät. Und natürlich Caching nur mehr Speicher verwendet.

Es hat wirklich nicht gewesen im Rückblick, da wir mit MVC gingen, gibt es auch die Möglichkeit, eigenen Ansicht Motor zu schaffen, wenn Sie wirklich abenteuerlich fühlen. So könnte man ein wenig von xsl hält dort, wo man das Bedürfnis verspürt.

In der Tat gibt es bereits ein Projekt auf, dass in den MVCContrib Bibliotheken.

Hope, das hilft, Ihre Entscheidung

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top