Когда использовать XML с XSL вместо HTML? - PullRequest
3 голосов
/ 23 декабря 2008

Мне нравятся .NET webcontrols, и вы управляете вещами, это общее мнение, но XML и XSL так хороши, потому что у вас есть логика пользовательского интерфейса, которая не зависит от платформы и языка, поэтому однажды я изменю приложение на php, java или все, и я могу использовать всю логику представления. Более того, XSL имеет возможность вызывать .NET (или любые другие) методы перед рендерингом.

Когда вы обычно используете XML / XSL? почему бы не использовать его чаще?

Ответы [ 4 ]

2 голосов
/ 27 декабря 2008

В первом приближении я использую XSLT всякий раз, когда мне нужно представить информацию в виде HTML. Примерно каждый раз, когда я отклонялся от этого в последние семь лет, я сожалел об этом. Мой краткий опыт генерации HTML в Python - единственное, с чем я столкнулся, и, возможно, смогу заменить его.

2 голосов
/ 23 декабря 2008

вместо HTML?

Я постоянно использую его вместо элементов управления asp.net, поскольку он позволяет разделить проблемы для V и C в 2.0, которые вы не получаете в .NET 2.0 из коробки.

Очевидно, что существует миллион других применений, не связанных с элементами управления asp.net.


Редактировать: эскиз реализации

public class xsltmanager
{
    /* constructor (singleton) which defines a file watcher for *.xsl in the path of your choice */

    //just a mutex for thread safety
    private object Mutex = new object();

    //caching XslCompiledTransforms
    private Dictionary<string, XslCompiledTransform> cTransforms = new Dictionary<string, XslCompiledTransform>();

    public XslCompiledTransform fetch(string identifier)
    {       
        if (!this.cTransforms.ContainsKey(identifier))
        {
            lock (this.Mutex)
            {
                if (!this.cTransforms.ContainsKey(identifier))
                {
                    XslCompiledTransform xslDoc = new XslCompiledTransform();
                    xslDoc.Load(/* file path based on identifier */);

                    this.cTransforms.Add(identifier, xslDoc);
                }
            }
        }
        return this.cTransforms[identifier];
    }

    /* other util xslt methods - namespace wash, doc merge, whatever */
}

public class myPage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //get source data
        XPathDocument xPathDoc = myGetXMLMethod();

        //transform params
        XsltArgumentList oArgs = new XsltArgumentList();

        /* add params as required */

        //fetching and executing the transform directly to the Response here
        xsltmanager.instance.get(@"foo\bar\baz").Transform(xPathDoc, oArgs, Response.OutputStream);
    }
}
1 голос
/ 23 декабря 2008

Не так много в ASP.NET, но до этого (с VB6) я использовал его почти исключительно (на сервере) для преобразования xml в html. Я всегда находил это невероятно универсальным. Я также использую его в своем проекте " буферные протоколы " в качестве механизма генерации кода: основная структура создает xml, а затем я использую преобразование xsl для выделения C #. Я слышал, что люди говорят, что они не находят xsl интуитивно понятным, но мне действительно это нравится, и это мой ttool по умолчанию при обработке xml.

Сейчас я много смотрю на ASP.NET MVC, который не обязательно поддается xsl - хотя в некоторых отношениях между <%=foo.Name%> и <xsl:value-of select="Name"/>.

не так много.
0 голосов
/ 23 декабря 2008

Использование XML / XSL сопряжено с большими затратами и имеет много недостатков.

  1. Вам необходим полный набор данных XML, чтобы XSL использовался только в качестве логического механизма.
  2. Во-вторых, логический элемент управления XSL плох и несовместим между версиями.
  3. В-третьих, комбинация - довольно сложный процесс, непригодный для больших сайтов.

Если вас беспокоит логическое разделение, используйте язык шаблонов (это не XSL).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...