ASP.NET WebForms MVP: uma framework MVP aplicada a web forms


Trata-se da aplicação da separação de conceitos às ASP.NET Web forms de forma simples, rápida e com a aplicação das boas práticas com a framework Web Forms MVP.

É usado aqui um HelloWorld para prova de conceito básica.


Codificação da solução
Criar uma solução Web do tipo Web Forms, neste exemplo tem o nome ASPNET.WebForms.MVP.

Na Consola de Gestão de Pacotes NuGet procede-se à instalação da Framework WebFormsMVP, tendo este projecto como padrão
PM> Install-Package WebFormsMVP -Version 1.4.5

Adicionar à solução um projecto do tipo biblioteca que comporta a lógica com as pastas
  • Model
  • Presenter
  • View

Novamente na Consola de Gestão de Pacotes NuGet procede-se à instalação da Framework WebFormsMVP, tendo este projecto como padrão
PM> Install-Package WebFormsMVP -Version 1.4.5


Ao Model adiciona-se a classe HelloWorldModel.cs
public class HelloWorldModel
    {
        public string HelloWorld { get; set; }
    }

Ao Presenter adiciona-se a classe HelloWorldPresenter.cs

using WebFormsMvp;
[...]
public class HelloWorldPresenter : Presenter<IView<HelloWorldModel>>
    {
        public HelloWorldPresenter(IView<HelloWorldModel> view) : base(view)
        {

            View.Load += View_Load;
        }

        private void View_Load(object sender, EventArgs e)
        {
            View.Model.HelloWorld = "Olá Mundo :)";
        }

    }

A aplicação Web referencia a biblioteca core preparada anteriormente e faz uso dos seus elementos no code behind da página HelloWorld.aspx adicionada:

using WebFormsMvp;
using WebFormsMvp.Web;
using ASPNET.WebForms.MVP.Logic.Model;
using ASPNET.WebForms.MVP.Logic.Presenter;


HelloWorld.aspx

<br />
    <h3><%= Model.HelloWorld %></h3>
    <br />


HelloWorl.aspx.cs

[PresenterBinding(typeof(HelloWorldPresenter), ViewType = typeof(IView<HelloWorldModel>))]
    public partial class HelloWorld : MvpPage<HelloWorldModel>
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            
        }
    }

Framework Web Forms MVP em acção











Licença CC BY-SA 4.0 Silvia Pinhão Lopes, 22.9.17
Print Friendly and PDF

Sem comentários:

Com tecnologia do Blogger.