2009-09-14 5 views
26

Per quanto ne so, tutto ciò che è stato fatto in XAML può essere fatto in C#.Perché XAML è compilato in BAML e non in C#

Perché XAML è compilato in BAML e non in C#? Non sarebbe più efficiente analizzare la XAML in fase di compilazione e creare il codice C# corrispondente?

risposta

12

Xaml è separato dal codice C# perché consente a questi elementi di essere "codificati in modo soft". Se si compila il codice da Xaml a C#, si sconfigge questa caratteristica, perché ora gli elementi dell'interfaccia utente, l'associazione dei dati, l'eventing, ecc. Sono ora codificati nel programma, ed è necessario ricompilare l'intero programma per apportare una piccola modifica al l'interfaccia utente.

Il post del blog che petr k. riferimenti dice che Xaml in realtà è stato compilato a IL in una sola volta, ma BAML è ora utilizzato perché:

  1. È più sicuro (che non può essere eseguito direttamente), e
  2. BAML può essere localizzato (diverse lingue) senza richiedere la ricompilazione.
0

In teoria, tutti i XAML può essere compilato per l'equivalente C# (anche se BAML viene utilizzato nella pratica).

Controllare il codice XAML dietro generatore a http://xamlgenerator.codeplex.com/.

È un plug-in per Visual Studio 2010 che consente di compilare XAML nell'equivalente C#, è davvero interessante per capire come XAML viene compilato in C#.

+1

Non sembra la risposta alla domanda. –