Skip to content

Conjunto de componentes para permitir trabalhar em sistemas legados utilizando o modelo MVVM de desenvolvimento, fazendo com que todos os componentes da página sejam configurados como um simples ValueObject.

Notifications You must be signed in to change notification settings

glaysons/WebForms.MVVM

Repository files navigation

WebForms.MVVM

WebForms.MVVM é um conjunto de ferramentas que permite tratar os componentes do WebForms de aplicações legadas como ValueObjects.

Porque WebForms.MVVM?

  • Cada propriedade do VO pode ser relacionada com um componente WebControl, HtmlControl, TemplateControl, QualquerCoisaControl
  • Os Testes Automatizados passam a testar ValueObjects e não mais componentes System.Web.UI
  • Conversão e atualização de DataGrid como um IList
  • Nome do atributo de vinculo ASPX <-> ValueObject personalizável
  • Você pode preencher uma tela a partir de DataRow/DataTable
  • Permite o acesso às propriedades de layout de forma a permitir Testes Automatizados

Como Utilizar

Instalar

Disponível via nuget.

  PM> Install-Package WebForms.MVVM

Definir os Objetos

Todas as telas devem ser representadas como um simples ValueObject.

Cada componente do ASPX deve ser relacionado com uma propriedade do ValueObject.

  public class ObjetoDaTela
  {

    [Componente()]
    public string Nome { get; set; }

    [Componente()]
    public int? Idade { get; set; }

    [Componente()]
    public string Endereco { get; set; }

    [Componente()]
    public int CodigoCidade { get; set; }

    [Componente()]
    public RegistroCivil EstadoCivil { get; set; }

    [Componente(PropriedadeDePesquisa = "CodigoCidade")]
    public string NomeCidade { get; set; }

  }

  public enum RegistroCivil
  {

    [DefaultValue("S")]
    Solteiro,

    [DefaultValue("C")]
    Casado

  }

Vinculo no ASPX

  <asp:TextBox ID="txtNome" campo-q-eu-quiser="Nome" runat="server"></asp:TextBox>
  <asp:TextBox ID="txtIdade" campo-q-eu-quiser="Idade" runat="server"></asp:TextBox>
  <asp:TextBox ID="txtEndereco" campo-q-eu-quiser="Endereco" runat="server"></asp:TextBox>
  <asp:RadioButtonList ID="radEstadoCivil" campo-q-eu-quiser="EstadoCivil" runat="server"></asp:RadioButtonList>
  <asp:DropDownList ID="txtCidade" campo-q-eu-quiser="CodigoCidade" runat="server"></asp:DropDownList>

Leitura da Tela

  var dicionario = new DicionarioTela(MeuWebForm, "campo-q-eu-quiser");
  var tela = new LeitorTela(dicionario).Ler<ObjetoDaTela>();

Atualização da Tela

  var dicionario = new DicionarioTela(MeuWebForm, "campo-q-eu-quiser");
  var atualizador = new AtualizadorTela(dicionario);

  var conteudo = new ObjetoDaTela()
  {
    Nome = "Abc Da Silva",
    Idade = 15,
    Endereco = "Rua das Flores",
    EstadoCivil = RegistroCivil.Solteiro,
    CodigoCidade = 123
  };

  atualizador.Atualizar(conteudo);

Acesso aos Componentes da Tela

  var dicionario = new DicionarioTela(MeuWebForm, "campo-q-eu-quiser");
  var layout = new LayoutTela<ObjetoDaTela>(dicionario);

  layout.Componente(c => c.Nome).Editavel = false;
  layout.Componente(c => c.Idade).CssClass = "classe-css";

About

Conjunto de componentes para permitir trabalhar em sistemas legados utilizando o modelo MVVM de desenvolvimento, fazendo com que todos os componentes da página sejam configurados como um simples ValueObject.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages