Qual é a maneira correta de criar aplicativos Winform com várias "telas"

11

Qual é a maneira correta de criar um aplicativo Winform com várias 'telas'? Por exemplo, estou tentando escrever um pequeno programa de backup (principalmente para risadinhas) e tenho despejado controles e contêineres no formulário.

Estou usando painéis e caixas de grupo para separar as diferentes telas (por exemplo: estou usando um painel para armazenar todos os controles da janela "Configurações" e outro painel para mostrar todos os backups atuais que foram configurados ) Bem, meu arquivo form.cs se transformou em uma enorme quantidade de código e sinto que estou fazendo algo errado. Não consigo encontrar nada no arquivo e estou pronto para começar de novo. Este projeto foi apenas para expandir meus conhecimentos de C # e .NET, portanto, iniciar um novo projeto não é um grande problema.

CurtisHx
fonte

Respostas:

10

Existem várias maneiras de controlar a complexidade da interface do usuário.

  • Se você tiver muitos formulários, poderá escolher um padrão de design que gerencie transições: Application Controller, por exemplo, ou mais próximo do metal: State .
  • Você pode compor grupos de controles em controles únicos. Nos winforms, você usa controles de usuário .
  • Se a complexidade vier da quantidade de código em seu formulário, em oposição à quantidade de controles no formulário, você poderia simplesmente encapsular melhor o código em objetos usando técnicas de programação padrão orientadas a objetos. Compreender os princípios do SOLID é um bom ponto de partida.
  • Caso contrário, existem padrões para trabalhar com interfaces com o usuário. Entre outras coisas (destaque para a separação de preocupações), elas facilitam a organização do código. Alguns comuns são MVC , MVP , MVVM

Na sua descrição, eu usaria controles de usuário personalizados para substituir o que você está usando painéis no momento. Em seguida, basta colocar esses controles de usuário em seus formulários onde estavam seus painéis.

Steven Evers
fonte
4

No Winforms, cada formulário deve lidar com seu próprio trabalho. Você deve ter um formulário para configurações, outro para mostrar os backups atuais etc.

Se você quiser manter os vários grupos de formulário único, poderá criar controles de usuário , como disse o SnOrfus , para separar o código. Se você ainda tiver uma tonelada de código em algumas classes, poderá ter classes Parciais para separar códigos diferentes em arquivos diferentes.

Classes parciais podem parecer uma boa alternativa, mas eu só recomendo isso porque você está criando um projeto de hobby. Para um projeto maior ou mais complexo, você deve usar padrões para delegar o trabalho certo aos objetos certos, também pode mudar para uma nova tecnologia como o WPF, onde é mais fácil usar padrões como o MVVM .

Valter Costa
fonte