Gerar e configurar seu aplicativo de modelos

Você pode gerar ou configurar as partes do seu aplicativo a partir de um modelo. O modelo pode estar em uma DSL ou de UML.

O modelo representa os requisitos mais diretamente do que o código. Derivando o comportamento do aplicativo diretamente a partir do modelo, você pode responder a requisitos alterados atualização muito mais rápida e confiável, o código. Embora algum trabalho inicial é necessária para configurar a derivação, esse investimento é retornado se você espera que as alterações nos requisitos, ou se você planeja fazer diversas variantes do produto.

Gerando o código do seu aplicativo a partir de um modelo

A maneira mais fácil de gerar o código está usando os modelos de texto. Você pode gerar o código na mesma Visual Studio solução na qual você manter o modelo. Para obter mais informações, consulte:

Esse método é fácil de aplicar incrementalmente. Iniciar com um aplicativo que funciona somente em um caso específico e escolha algumas partes dele que você deseja variar a partir do modelo. Renomeie os arquivos de origem dessas peças para que eles se tornem arquivos de modelo (.tt) do texto. Neste ponto, os arquivos de origem. cs serão gerados automaticamente dos arquivos de modelo, para que o aplicativo funcionará como fazia antes.

Em seguida, você pode levar a uma parte do código e substituí-lo com uma expressão de modelo de texto, que lê o modelo e gera a essa parte do arquivo de origem. Pelo menos um valor do modelo deve gerar a fonte original para que, novamente, você pode executar o aplicativo e ele funcionará como antes. Depois de testar os valores de modelo diferente, você pode mover para inserir expressões de modelo em outra parte do código.

Esse método incremental significa que a geração de código geralmente é uma abordagem de baixo risco. Os aplicativos resultantes geralmente executam quase como uma versão de escrita à mão.

No entanto, se você iniciar com um aplicativo existente, você pode achar que muita refatoração é necessária para separar os diferentes comportamentos que são governados pelo modelo para que eles podem ser variados independentemente. Recomendamos que você avalie a esse aspecto do aplicativo ao calcular o custo do projeto.

Configurar seu aplicativo a partir de um modelo

Se você deseja variar o comportamento do aplicativo em tempo de execução, é possível usar a geração de código que gera o código-fonte antes que o aplicativo é compilado. Em vez disso, você pode criar seu aplicativo para ler o modelo UML ou DSL e variar o seu comportamento adequadamente. Para obter mais informações, consulte:

Esse método também pode ser aplicado incrementalmente, mas não há mais trabalho no início. Você precisa escrever o código que lerá o modelo e configurar uma estrutura que permite a seus valores de estar acessível para as partes de variáveis. Fazer com que as partes a variáveis genérica é mais cara do que a geração de código.

Normalmente, um aplicativo genérico executa menos bem suas contrapartes específico. Se o desempenho é crucial, seu plano de projeto deve incluir uma avaliação desse risco.

Desenvolvendo um aplicativo derivado

As seguintes diretrizes gerais pode ser útil.

  • Iniciar específico e, em seguida, generalize. Primeiro, grave uma versão específica do seu aplicativo. Esta versão deve funcionar em um conjunto de condições. Quando estiver satisfeito que ele está funcionando corretamente, você pode fazer algumas delas derivam de um modelo. Estenda as partes derivadas gradualmente.

    Por exemplo, um site que possui um conjunto específico de páginas da Web antes de criar um aplicativo Web que apresenta páginas que são definidas em um modelo de design.

  • Modele os aspectos de variant. Identifica os aspectos que irá variar, ou entre uma implantação e o outro, ou ao longo do tempo como requisitos alterar. Esses são os aspectos que devem ser derivados de um modelo.

    Por exemplo, se o conjunto de Web, páginas e links entre eles muda, mas o estilo e o formato das páginas é sempre o mesmo, em seguida, o modelo deve descrever os links, mas não tem que descrevem o formato das páginas.

  • Preocupações separadas. Se os aspectos de variáveis podem ser divididos em áreas independentes, use modelos separados para cada área. Usando o ModelBus, você pode definir as operações que afetam os modelos e as restrições entre eles.

    Por exemplo, use um modelo para definir a navegação entre as páginas da Web e um modelo diferente para definir o layout das páginas. Para obter mais informações, consulte Como: Integrar modelos UML com outras ferramentas e modelos.

  • O requisito, não é a solução de modelo. O DSL de design ou adaptar UML para que ele descreve os requisitos do usuário. Por outro lado, não crie a notação de acordo com as variáveis aspectos da implementação.

    Por exemplo, o modelo de navegação da Web deve representar páginas da Web e hiperlinks entre elas. O modelo de navegação da Web não deve representar fragmentos de HTML ou classes em seu aplicativo.

  • Gerar ou interpretar? Se os requisitos para uma determinada implantação raramente serão alterada, gere o código de programa do modelo. Se os requisitos podem mudar com freqüência, ou podem coexistir em mais de uma variante da mesma implantação, escreva o aplicativo para que ele possa ler e interpretar um modelo.

    Por exemplo, se você usar o modelo do seu site da Web para desenvolver uma série de sites diferentes e instalados separadamente, você deve gerar o código do site do modelo. Mas ele usar seu modelo para controlar um site que muda diariamente, então é melhor escrever um servidor Web que lê o modelo e apresenta o site de acordo.

  • UML ou DSL? Considere a criação a notação de modelagem usando estereótipos para estender a UML. Se não houver nenhum diagrama UML que se adapta ao objetivo, defina uma DSL. Mas evite quebrar a semântica padrão UML.

    Por exemplo, um diagrama de classe UML é uma coleção de caixas e setas; com essa notação pode teoricamente definir qualquer coisa. Mas, não recomendamos que você use o diagrama de classes, exceto onde você está descrevendo na verdade um conjunto de tipos. Por exemplo, você pode adaptar os diagramas de classe para descrever diferentes tipos de páginas da Web.

Consulte também

Conceitos

Como: Gerar arquivos a partir de um modelo UML

Como: Um modelo UML no código do programa de leitura.

Geração de código de tempo de design usando modelos de texto T4

Outros recursos

Using Text Templates in Domain-Specific Language Solutions

How to Open a Model in Program Code