Convenção sobre a configuração em mvvmcross
O MVVMcross, uma estrutura MVVM de plataforma cruzada, utiliza o conceito de "Convenção sobre Configuração" para simplificar o processo de desenvolvimento, reduzindo a necessidade de configuração explícita. Essa abordagem permite que os desenvolvedores se concentrem em aspectos não convencionais de sua aplicação, alavancando convenções padrão para lidar com cenários típicos.
Princípios básicos
No MVVMCROSS, a Convenção sobre a configuração é aplicada principalmente em como as visualizações e os viewmodels estão vinculados. Por padrão, o MVVMCROSS usa uma convenção de nomenclatura para associar visualizações aos seus models de exibição correspondentes. Por exemplo, se você tiver um `tipView`, o MVVMcross procurará automaticamente um` tipViewModel` para emparelhar com ele. Esta convenção elimina a necessidade de configuração explícita, facilitando o gerenciamento da relação entre as visualizações e os modelos do ViewModels [11].
Implementação
1 Convenção de nomeação de viewmodel: MVVMCROSS segue uma convenção de nomeação específica, onde um viewmodel é normalmente nomeado anexando "modelo" ao nome da visualização. Por exemplo, `FirstView` está vinculado ao` FirstViewModel` por padrão [5] [11].
2. Linking automático: Ao usar esta convenção, o MVVMCROSS localiza e vincula automaticamente o viewModel apropriado à sua exibição. Isso é particularmente útil quando você não usa parâmetros genéricos para definir explicitamente esses relacionamentos [11].
3. Flexibilidade: Enquanto o MVVMcross depende de convenções para simplificar, isso também fornece flexibilidade. Os desenvolvedores podem substituir essas convenções quando necessário usando parâmetros genéricos ou configurações personalizadas. Isso permite mais controle sobre como as visualizações e os viewmodels estão associados, especialmente em aplicações complexas [11].
benefícios
- Configuração reduzida: Ao alavancar convenções, os desenvolvedores gastam menos tempo escrevendo código de configuração, concentrando -se na lógica do aplicativo.
- Legibilidade aprimorada: a base de código se torna mais legível à medida que as tarefas de configuração repetitivas são minimizadas.
- Manutenção simplificada: com menos configurações explícitas, a manutenção e a atualização dos aplicativos se torna mais fácil.
personalização
Enquanto o MVVMcross depende muito de convenções, ele também suporta a personalização. Os desenvolvedores podem substituir comportamentos padrão implementando a lógica personalizada em classes -chave como `app` e` setup`. Por exemplo, você pode personalizar o contêiner do IOC ou alterar como os modelos ViewModels são construídos e inicializados [9].
Em resumo, a implementação da Convenção do MVVMcross sobre a configuração otimiza o processo de desenvolvimento, automatizando tarefas típicas, permitindo que os desenvolvedores se concentrem em aspectos únicos de suas aplicações. Essa abordagem aprimora a produtividade e simplifica a manutenção de aplicativos, enquanto ainda fornece a flexibilidade necessária para cenários complexos.
Citações:[1] https://en.wikipedia.org/wiki/convention_over_configuration
[2] https://visualstudiomagazine.com/articles/2018/05/08/build-a-xamarin.forms-application.aspx
[3] https://leaware.com/creating-cross-platform-xamarin-applications-using-the-mvvmcross-framework/
[4] https://learn.microsoft.com/en-us/archive/msdn-magazine/2009/february/patterns-in-practice-convention-over-configuration
[5] https://www.codeproject.com/articles/863695/introduction-to-mvvmcross-platform
[6] https://github.com/mvvmcross/mvvmcross-samples
[7] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[8] https://books.sonatype.com/mvnref-book/reference/installation-sect-conventionConfiguration.html
[9] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[10] https://www.mvvmcross.com/documentation/getting-started/getting-started
[11] https://www.mvvmcross.com/documentation/tutorials/tipcalc/a-note-about-views-and-viewmodels
[12] https://www.mvvmcross.com/documentation/getting-started/mvvmcross-overview