ASP .NET MVC 3 - Apresentando os recursos básicos (para iniciantes)


Este artigo é essencialmente prático e mostra como criar uma aplicação ASP .NET MVC3 usando a ferramenta gratuita Visual Web Developer 2010 Express Edition.

Abra o Visual Web Developer 2010 Express Editon e no menu File -> New Project selecione o template ASP .NET MVC 3 Web Application informando o nome Convites;

Obs: Observe que a instalação do ASP .NET MVC3 não remove o template do ASP .NET MVC 2.

Na próxima janela você verá 3 tipos diferentes de modelos de projetos para aplicações MVC :

O Active Directory é uma implementação de serviço de diretório no protocolo LDAP que armazena informações sobre objetos em rede de computadores e disponibiliza essas informações a usuários e administradores desta rede. É um software da Microsoft utilizado em ambientes Windows.

Selecione a opção Empty e deixe desmarcada a opção - Use HTML5 semantic markup;

Na caixa de combinação View Engine podemos selecionar o engine usado
na aplicação;

Temos a opção entre usar o tradicional engine ASPX ou o novo engine Razor;

Selecione o engine Razor;

Após clicar no botão OK você verá na janela Solution Explorer a estrutura do projeto contendo os arquivos e pastas que representa a estrutura padrão para um projeto ASP .NET MVC 3;

Se você tentar rodar a aplicação pressionando F5 ou clicando no menu Debug -> Start Debugging iremos obter um erro conforme mostra a figura abaixo pois nosso projeto esta vazio;

Na arquitetura MVC, os pedidos recebidos são tratados pelos controladores (Controllers). No ASP.NET MVC, os controladores são apenas simples classes C# (geralmente herdando de System.Web.Mvc.Controller).

Cada método público em um controlador é conhecido como um método de ação (Action) , o que significa que podemos invocá-lo a partir da Web através de alguma URL para executar uma ação. A convenção MVC é colocar controladores em uma pasta chamada Controllers, que o Visual Studio criou para nós quando ele criou o projeto.

Você não precisa seguir este ou a maioria das outras convenções MVC, mas nós recomendamos que você, pelo menos no início, siga esta recomendação.

Para incluir um novo controlador basta clicar com o botão direito do mouse sobre a pasta Controller na janela Solution Explorer e selecionar a opção Add -> Controller;

Na janela Add Controller irá surgir a janela abaixo com a sugestão de nome Default1Controller;

Altere o nome para HomeController e clique no botão Add;

Será criado um novo arquivo de código C# na pasta controller chamado HomeController.cs e Observe que a classe é derivada de System.Web.Mvc.Controller;

Altere o código conforme mostra a figura abaixo:

Não criamos nada de emocionante, mas esta é uma boa maneira de começar com MVC. Nós crimos um método chamado Index, que retorna a string "www.macoratti.net".
Executando o projeto novamente o navegador irá exibir o resultado do método Index e iremos obter o seguinte:

A saída do exemplo anterior não era HTML, era apenas a string. Para produzir uma resposta HTML a uma solicitação do navegador, precisamos criar uma View.

Vamos modificar o método Index() conforme mostrado abaixo:

using System.Web.Mvc;

namespace Convites.Controllers
{
    public class HomeController : Controller
    {
        //
        // GET: /Home/
        public ViewResult Index()
        {
            return View();
        }
    }
}

Alteramos o código para quando retornar um objeto ViewResult a partir de método action estamos instruindo MVC para renderizar uma view.

Criamos o ViewResult chamando o método View sem parâmetros. Isto diz ao MVC para renderizar a visualização padrão para a ação. Se você executar o aplicativo, neste ponto, você pode ver o Framework MVC tentando encontrar um modo de exibição padrão para usar, como mostrado na mensagem de erro abaixo:

A mensagem de erro indica que a aplicação MVC não conseguir encontrar a view para o nosso método Action e mostra também onde ela tentou procurá-la.

No MVC temos que as views são associadas com os métodos action por uma convenção de nomenclatura: O método action é chamado Index, e a aplicação tenta procurar por arquivos na pasta Views que possuam o mesmo nome que o método (Index); como não encontra apresenta a mensagem de erro.

Temos então que criar uma view, e, para isso clique com o botão direito do mouse no método HomeController.cs (no interior do método ou no nome do mesmo) e selecione a opção Add View. Esta ação abre a janela Add View abaixo:

A extensão .CSHTML indica uma view que será processada pelo engine Razor.

Clique no botão Add e Visual Web Developer irá criar um novo arquivo View chamado Index.cshtml, na pasta Views/Home. Se você olhar a mensagem de erro anterior verá que o arquivo que acabamos de criar corresponde a um dos locais que a aplicação realizou a pesquisa procurando pela view.

O conteúdo do arquivo Index.cshtml na sua parte é HTML
exceto pelo código
:

@{
    Layout = null;
}

Este código será interpretado pelo engine Razor.

O código indica que não vamos usar uma master page.

Vamos incluir entre as tags div da seção body o código abaixo:

<div>
     Macoratti .net ( view)
</div>

Executando o projeto novamente iremos obter:

Quando criamos o primeiro método Action Index, ele retorna uma string e isto significa que o MVC apenas retransmite a string para o navegador.

No segundo exemplo o método Index retorna um ViewResult que instrui o MVC para renderizar a view e retornar o HTML. Não informamos para o MVC qual view seria usada, e dessa forma por convenção o MVC tentou encontrar a view automaticamente. A convenção é que a view tem o mesmo nome que o método action e esta contida em uma pasta ~/Views/Home/Index.cshtml.

Podemos retornar outros resultados a partir de métodos action, além de strings e objetos ViewResult. Por exemplo, se retornamos um RedirectResult, fazemos com que o navegador seja redirecionado para outra URL; se retornarmos um HttpUnauthorizedResult, forçamos o usuário a fazer o login.

Estes objetos são conhecidos coletivamente como action results (resultados de ação), e eles são todos derivados da classe ActionResult. O sistema de action result nos permite encapsular e reutilizar respostas comuns em ações (actions)

Usando saída dinâmica

A principal função de uma aplicação web é construir e exibir saida dinâmica; no MVC, é uma tarefa do Controller construir dados e um trabalho da view renderizar e exibir HTML de forma que os dados são passados do controller para view.

Uma forma de passar dados do controller para a view é usar o objeto ViewBag. Ele é um membro da classe base Controller. O ViewBag é um objeto dinâmico para o qual você pode atribuir propriedades arbitrárias, tornando esses valores disponíveis em qualquer view que for posteriormente processado.

Vejamos um exemplo:

Vamos alterar o código do Controller HomeController.cs conforme o código abaixo :

Para exibir a informação vamos alterar o código da View Index.cshtml conforme abaixo:

Este é um bloco de código Razor que exibe a informação contida em ViewBag;

Estamos usando a propriedade Saudacao mas poderiamos ter usado qualquer outro nome;

O código Razor inicia com um caractere @ e não usa caractere para indicar o fim do bloco;

Executando o projeto novamente iremos obter:

Nesta primeira parte vimos conceitos básicos de uma aplicação MVC e na segunda parte irei mostrar criar uma pequena aplicação para entrada de dados.

Veja a continuação em : ASP .NET MVC 3 - Criando um novo projeto ASP .NET MVC 3 (para iniciantes)

Pegue o projeto completo aqui: Convites.zip

João 5:24 Em verdade, em verdade vos digo que quem ouve a minha palavra, e crê naquele que me enviou, tem a vida eterna e não entra em juízo, mas já passou da morte para a vida.

Referências:


José Carlos Macoratti