XAML é essencialmente um subconjunto de XML. Um dos principais benefícios de basear o XAML no XML é que ele pode ser analisado com as ferramentas existentes. E pode, em grande medida, embora os valores de atributo (sintaticamente não triviais) permaneçam na forma de texto e exijam uma análise adicional.
Existem duas alternativas principais para descrever uma GUI em uma linguagem derivada de XML. Uma é fazer o que o WinForms fez e descrevê-lo em código real. Existem inúmeros problemas com isso, embora não seja totalmente sem vantagens (uma questão para comparar o XAML com essa abordagem ). A outra alternativa importante é projetar uma sintaxe completamente nova, especificamente projetada para a tarefa em questão. Isso geralmente é conhecido como um idioma específico do domínio .
Então, em retrospectiva, e como uma lição para as gerações futuras, foi uma boa idéia basear o XAML em XML ou teria sido melhor como uma linguagem específica de domínio projetada sob medida? Se projetássemos uma estrutura de interface do usuário ainda melhor, devemos escolher XML ou uma DSL personalizada?
Como é muito mais fácil pensar positivamente sobre o status quo, especialmente um que é bastante apreciado pela comunidade, darei alguns exemplos de razões pelas quais a criação no XML pode ser considerada um erro.
Basear uma linguagem no XML tem uma coisa a oferecer: é muito mais fácil analisar (o analisador principal já está disponível), requer muito, muito menos trabalho de design, e analisadores alternativos também são muito mais fáceis de escrever para desenvolvedores de terceiros.
Mas a linguagem resultante pode ser insatisfatória de várias maneiras. É bastante detalhado. Se você alterar o tipo de algo, precisará alterá-lo na tag de fechamento. Tem muito pouco apoio para comentários; é impossível comentar um atributo. Existem limitações colocadas no conteúdo dos atributos pelo XML. As extensões de marcação precisam ser construídas "em cima" da sintaxe XML, não integradas de maneira profunda e agradável a ela. E, meu favorito pessoal, se você definir algo por meio de um atributo, use uma sintaxe completamente diferente do que definir exatamente a mesma coisa que uma propriedade de conteúdo.
Também se diz que, como todo mundo conhece XML, o XAML requer menos aprendizado. A rigor, isso é verdade, mas aprender a sintaxe é uma pequena fração do tempo gasto aprendendo uma nova estrutura de interface do usuário; são os conceitos da estrutura que tornam a curva íngreme. Além disso, as idiossincrasias de uma linguagem baseada em XML podem realmente aumentar a cesta de "necessidades de aprendizado".
Essas desvantagens são superadas pela facilidade de analisar? A próxima estrutura legal deve continuar a tradição ou investir tempo para projetar uma DSL impressionante que não possa ser analisada pelas ferramentas existentes e cuja sintaxe precisa ser aprendida por todos?
PS Nem todo mundo confunde XAML e WPF , mas alguns o fazem. XAML é uma coisa parecida com XML. O WPF é a estrutura com suporte para ligações, temas, aceleração de hardware e muitas outras coisas interessantes.
fonte
Respostas:
O único motivo convincente para usar XML é estabelecer um padrão de dados aberto. XAML é o mesmo idioma de exibição usado no Silverlight e no WPF; qualquer fornecedor pode usar o mesmo padrão de marcação para criar uma definição de exibição para sua própria plataforma e pode ser reutilizada no Silverlight ou no WPF.
Na indústria aeroespacial, temos salas de controle que, graças aos avanços da tecnologia de computadores, agora são razoavelmente flexíveis. No passado, todo o hardware era personalizado, único e muito caro; hoje, tudo é executado com PCs baratos, comumente disponíveis e disponíveis no mercado. Isso reduz bastante o bloqueio do fornecedor. No entanto, os widgets de exibição ainda são gravados usando o ActiveX, porque é assim que sempre é feito.
O ActiveX requer acesso às ferramentas da Microsoft que são obsoletas. Portanto, a Força Aérea e o Grupo de Instrumentação Inter-Range estão criando uma Linguagem de Marcação de Exibição de Dados, que é baseada em XML. Isso permitirá que os profissionais projetem displays usando a marcação XML, no editor de sua escolha. Soa familiar?
Ninguém argumenta que o XML não está isento de falhas. Mas é a melhor coisa disponível para o que foi projetado para fazer, até que algo melhor apareça.
Veja também
Por que o XML não suga
fonte
Suas objeções ao XML não têm nada a ver com usá-lo como uma linguagem de descrição da GUI; são todas reclamações sobre o trabalho com sintaxe XML que se aplicam igualmente a qualquer forma de XML.
Parece que você simplesmente não gosta de XML.
Você está certo, pode não ser a escolha ideal para editar manualmente, mas para uma linguagem de descrição da GUI eu faria alguns contra-argumentos:
As GUIs são gráficas e devem ser apresentadas graficamente. O formato do arquivo não é realmente tão importante, porque você realmente não deve editá-lo manualmente. (Baseado em texto é bom para o controle do código-fonte, mas a verbosidade não é um problema.)
Além de o analisador estar disponível, o XML também é fácil de validar: você pode escrever um esquema DTD ou XML e, em seguida, usar ferramentas genéricas para informar se seu arquivo é legal. Isso será muito útil para uma linguagem de descrição da GUI. Fazer o mesmo em JSON ou YAML não é tão simples.
Se você está realmente insatisfeito com a gravação direta de XAML, não há nada que o impeça de desenvolver um novo formato e compilá-lo no XAML. Por exemplo, você pode criar um mapeamento direto do JSON para o XAML, para ter a sintaxe mais leve do JSON (e a capacidade de comentar os atributos) e gerar o XAML ao criar seu aplicativo. As pessoas raramente escrevem HTML diretamente, mas o HTML ainda é um ótimo formato.
fonte
Como essa pergunta é subjetiva, acho que é justo postar uma resposta baseada na minha preferência pessoal.
XML é difícil de ler. Por exemplo, abra este link e clique em "Amostra" para comparar XML e YAML lado a lado. Este último é claramente muito mais legível por humanos.
Se você deseja usar o XML para descrever uma GUI, é melhor garantir que você forneça ferramentas suficientes para que os humanos não precisem examinar o XML.
Claramente, o XPF falhou nesse sentido.
fonte