Fala ai Radizeiro e Radizeiras, tudo bem com vocês?

Finalmente chegamos no ponto que muitos queriam, então não vamos perder tempo e vamos logo colocar a mão no código e entender como deixar tudo que fizemos até agora disponível para a camada de visão do nosso sistema.

Na nossa camada de visão o que iremos ter é somente um DataSource, linkamos o nosso DbGrid a ele, e o DBNavigate também.

Vamos criar uma variável do tipo da interface iController.

    private
        { Private declarations }
        FController : iController;

Lembra que falei no post anterior que iremos ter somente o acesso ao controller? No create do nosso formulário iremos instanciar esse nosso controller.

procedure TForm2.FormCreate(Sender: TObject);
begin
    FController := TController.New;
end;

E agora eu posso usar esse controller para tudo, vamos criar o open.

procedure TForm2.Button1Click(Sender: TObject);
begin
    FController
        .Entidades
        .Master
        .DataSet(DataSource1)
    .Open;
end;

Para abrir os dados simplesmente nós chamamos o objeto que já foi instanciado na criação do formulário, acessamos as entidades, acessamos a entidade master, preenchemos o DataSource, ao chamá-lo dentro do DataSet, e damos um Open para abrir os dados.

Vamos compilar e ver se o que acabamos de criar irá funcionar.

 

Viu como é simples a visualização dos dados na view? Simplesmente para trazer esses dados para tela usamos um Dao genérico, agora vamos implementar alguns métodos que temos no ORMBr.

O método para salvar.

procedure TForm2.Button2Click(Sender: TObject);
begin
    FController
        .Entidades
        .Master
       .ApplyUpdate;
end;

Simplesmente chamamos o objeto de controller, em seguida acessamos nossas entidades, e a entidade master, e damos um ApplyUpdates, desta forma já salvamos os dados na nossa entidade.

E também podemos realizar a persistência dos dados utilizando um objeto diretamente.

procedure TForm2.Button3Click(Sender: TObject);
begin
    with FController.Entidades.Master._newThis do
    begin
        description := 'Série ORM com MVC';
    end;
    FController.Entidades.Master.Save;
end;

Você observou que utilizei o newThis? Se você acompanhou a nossa série aqui no blog irá lembrar dele logo no início.

Neste treinamento você vai aprender a aplicar técnicas que darão maior escalabilidade em seus softwares criando uma estrutura de forma prática e dinâmica, aplicando os padrões de boas práticas e clean code, além de compreender como aplicar os padrões de persistência de dados sem a necessidade de criar scripts de banco de dados.

CLIQUE AQUI E SAIBA MAIS SOBRE O TREINAMENTO COMO IMPLEMENTAR ORM EM ARQUITETURA MVC