O que é um exemplo de uma IU baseada em tarefas?
A minha equipa foi "encarregada" de criar uma aplicação que siga o UI (não necessariamente com o CQRS) baseado em tarefas. Eu realmente gosto de uma INTERFACE que ajuda o usuário a realizar tarefas comuns facilmente, mas muitas peças deste aplicativo realmente "sentir" (para mim) como um trabalho para um típico CRUD interface (ex: todos os detalhes de um produto em um catálogo).
Neste momento, precisamos de exemplos de bons UIs baseados em tarefas para nos ajudar a ver o que é possível. O que você viu no interwebs?4 answers
A maneira mais fácil de gerar uma IU baseada em tarefas é proteger todos os atributos / propriedades dos seus modelos. isto é, remover todos os setters.
A partir deste (pseudo-código):
public class TodoTask
{
public Date getDateAssigned();
public void setDateAssigned(Date);
public string getAssignedTo();
public void setAssignedTo(string);
}
Para isto:
public class TodoTask
{
public Date getDateAssigned();
public string getAssignedTo();
public void AssignTo(string userId);
}
Já não se pode criar uma aplicação básica. Você tem que executar uma tarefa (Assign()
) para atualizar o modelo.
Comece por remover todos os setters e, em seguida, analisar que tipo de ações (tarefa) você deve ser capaz de fazer em cada modelo.
Então está tudo pronto. [4] Eu blogei sobre isso: http://blog.gauffin.org/2012/06/protect-your-data / (deslocar-se para o fundo para ver cópias para o CRUD vs baseado em tarefas)O Microsoft Money 2000 foi um exemplo da Microsoft (embora lhe chamem Interface de utilizador indutivo . Aqui estão as Diretrizes subjacentes e algumas screenshots ao longo do caminho: Microsoft Inductive User Interface Guidelines
Eu acho que eu realmente não penso em UI ter uma aparência de ser baseado em tarefas ou CRUD-based (embora o exemplo de Dmitry é um que demonstra ser baseado em tarefas -- lotes de comandos). Eu vejo uma IU baseada em tarefas mais em termos de como ela interage com o domínio subjacente e modelo de dados. Se a sua interacção não for mais do que uma aplicação MVC normal fora da caixa com métodos de Acção para obter/List/inserir/actualizar/apagar, então está a construir uma aplicação CRUD básica. Mas se renuncie aos métodos de ação padrão e crie ações/comandos que são significativos para a aplicação (por exemplo, adicionar item ao carrinho de compras, desativar uma classe, etc.), then this gets more into the task-based UI world.
Acho que é uma linha cinzenta entre os dois. Por exemplo, sei que um site em que trabalho (braincredits.com) é a minha tentativa de uma IU baseada em tarefas. É definitivamente um trabalho em progresso e eu estou fazendo mudanças nele para constantemente melhorá - lo, mas o a implementação é baseada em comandos (por exemplo, post to transcript, add lesson, view transcript, etc.) e partes dele usam o padrão CQRS. Espero que isto ajude! Boa sorte!