HTML yerine xsl ile xml ne zaman kullanılır?

4 Cevap

I like .NET webcontrols and you manipulate things, that's common consensus, but XML and XSL is so great, because you have UI logic that is platform & language-independent, so one day I change the app to php, java or whatever and i can reuse all the presentation logic. Moreover, XSL has the possibility to call .NET (or whatever) methods before rendering.

Zaman normal XML / XSL kullanabilirim? neden yok daha sık kullanılır?

4 Cevap

HTML yerine?

Eğer alamadım 2.0 V ve C için endişeleri ayrılığı tanıyor beri asp.net kontrolleri yerine sürekli kullanmak. Kutudan NET 2.0.

Açıkçası asp.net kontrolleri ilgisiz bir milyon diğer anlamları var.


Düzenleme: bir uygulama bir kroki

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);
    }
}

HTML olarak bilgi sunmak için gerektiğinde bir ilk yaklaşım, ben XSLT kullanabilirsiniz. I'' ve hemen her zaman onu pişman oldum son yedi yıl içinde bu sapmıştır. Python HTML nesil ile benim kısa deneyim muhtemelen değiştirmek mümkün olabilir, henüz karşılaştığınız tek şeydir.

Böylece ASP.NET şeyler çok, fakat bundan önce (VB6 ile) değil ben html xml dönüştürmek için (sunucuda) neredeyse sadece bunu kullanmak için kullanılır. Ben her zaman inanılmaz derecede çok yönlü buldum. Ben de kod jeneratör motoru olarak benim "protocol buffers" projesinde kullanmak: ana çerçevesi xml üretir, ve sonra bir xsl C # tükürmek dönüşümü kullanın. Ben insanlar sezgisel xsl bulmuyorum söylemek duydum, ama ben gerçekten seviyorum, ve xml işlerken benim varsayılan ttool olduğunu.

Bazı açılardan, çok <%=foo.Name%> arasında olmamasına rağmen ve {[(1)] - Hemen şimdi, ben mutlaka çok XSL için elverişli değildir ASP.NET MVC, en çok arıyorum }.

XML / XSL kullanarak üzerinde büyük bir yük vardır ve birçok dezavantajları vardır.

  1. Sen XSL sadece bir mantık motoru olarak kullanılmasını sağlamak için tam bir XML veri kümesi gerekir.
  2. İkincisi, XSL mantık kontrolü zayıf ve sürümleri arasında tutarsız.
  3. Üçüncü olarak, kombinasyon büyük siteler için uygun olmayan oldukça ağır bir süreçtir.

Eğer mantık ayrılık konusunda endişeleriniz varsa, bazı çiftleşmiş dili (XSL değil) kullanın.