sexta-feira, 5 de abril de 2013

MVC 4.0 - Como Utilizar


O MVC (Model-View-Controller ou Modelo-Visão-Controlador) nada mais é que separar o desenvolvimento em camadas.
São três:

  •  Model - Representa os dados;
  •  View - Representa a visualização dos dados;
  •  Controller - Manipula requisições dos usuários.


Para criar um projeto utilizando MVC é simples.
*Para os exemplos que seguem, vou utilizar o Visual Studio 2012. Disponível no link "Install Visual Studio Express 2012 for Web"

Abra o Visual Studio e clique em New Project


 A janela a seguir será exibida. Selecione o item ASP.NET MVC 4 Web Application, localizado dentro de Web. Vou dar o nome do projeto como ExemploMVC.


Após o Visual Studio criar o projeto, a estrutura será essa, como na imagem abaixo:

 Se você pressionar F5, o projeto compilará e exibirá a seguinte janela:
Essa página é um controller padrão criado como exemplo.

Para criar um novo Controller é simples, clique com o botão direito sobre a pasta Controllers e vá em “Add->Controller...”

Vou dar o nome do controle como sendo “Exemplo”, veja na imagem abaixo:


Essa é a estrutura padrão de um controle:





Eu vou modificar o retorno do método Index para facilitar a demonstração:
public class ExemploController : Controller
{

public string Index()
{
return "Exemplo MVC";
}

}

Ao pressionar F5 e chamar o controle na url, veja o resultado:

Eu posso criar outros métodos, veja o exemplo abaixo:
public string nome(string valor)
        {
            return "Nome:" + valor;
        }
Nesse exemplo o método nome irá imprimir na tela o valor passado pelo usuário. Veja o resultado





Para adicionar uma View a esse controle é muito simples, primeiro você deve dizer que seu método irá retornar uma view. Como abaixo:
public ActionResult ExemploView()
        {
            return View();
        }

Após criar o método, clique com o botão direito dentro do método e clique em Add View, como no exemplo abaixo:



A janela a seguir será exibida, é interessante utilizar o mesmo nome do método para a View, isso ajuda na manutenção.


Na guia “Solution Explorer” é possível visualizar o local onde a View foi criada. Veja na imagem abaixo:




O conteúdo padrão do arquivo ExemploView.cshtml é o abaixo:
@{
    ViewBag.Title = "ExemploView";
}

<h2>ExemploView</h2>

Ao executar e chamar o controle exemplo e o método ExemploView, veja o resultado. A propriedade ViewBag.Title é responsável pelo texto exibido na barra de títulos.


 Para passar um parâmetro digitado pelo usuário do controller para a view é muito simples, veja o exemplo:
public ActionResult ExemploView(string nome)
        {
ViewBag.texto = "Olá " + nome;           
return View();
        }
Você deve criar um método que receba esse valor, no exemplo acima é uma string, nome.

Existe um controle dinâmico da view que é construído com o nome que você quiser. Nesse exemplo eu criei uma propriedade com o nome texto e disse que ela tem o valor “Olá  “ concatenado com o valor digitado pelo usuário.

No arquivo ExemploView.cshtml eu tenho que dizer que essa informação será exibida.
@{
    ViewBag.Title = "ExemploView";
}

<h2>ExemploView</h2>

@ViewBag.texto

Pressione F5 para ver o resultado:

Para adicionar um Model e trabalhar com esse tipo de camada é mais simples ainda.  Clique com o botão direito sobre o item Models e depois vá em Add-> Class



Adicionei uma classe com o nome de produto e inclui os itens: id, nome, tipo e valor.
public class produto
    {
        public int ID { get; set; }
        public string nome { get; set; }
        public string tipo { get; set; }
        public decimal valor { get; set; }
    }

Para criar um controle utilizando essa classe será necessário criar um DbContext apontando para ela. Veja o exemplo:

    public class ProdutoContexto : DbContext
    {
        public DbSet<produto> produtos { get; set; }
    }

Agora é necessário criar um controle apontando para essa classe. Veja abaixo:



No exemplo acima eu criei o controle com o nome de produto e em template disse que ele terá leitura, escrita e uma camada view.
Apontei para o model produto que criamos anteriormente e o contexto que foi criado dentro desse model. 


Pressione F5 e chame o controle na URL.  Como no exemplo abaixo:

Ao clicar no link Create New a tela a seguir será exibida:



Preencha os campos, clique em gravar e veja o resultado.

Essas informações ficam gravadas na memória, pois o Model esta apontando para o um objeto e não para o banco de dados.

Em principio eu tive um pouco de trabalho para entender como funcionava o MVC,  agora tudo ficou mais fácil e ágil.

Estou trabalhando com MVC junto com LINQ, é sensacional. Vale a pena tentar.
Em breve vou postar um exemplo utilizando com LINQ.

Utilizei como referência a própria documentação do Visual Studio e também o site http://www.asp.net/mvc





5 comentários:

  1. Olá bom estou fzendo uma aplicação em C# usando o Modelo MVC mas estou com problemas com campo de auto-incremento esto usando banco access pois apenas é uma aplicação de teste
    Poderia me ajudar ?

    ResponderExcluir
  2. O que seria este erro?
    Could not load file or assembly 'Newtonsoft.Json' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

    ResponderExcluir
  3. Achei bem explicativo, e de fácil compreensão, estarei
    criando um exemplo de teste.

    ResponderExcluir