ASP.NET MVC sem utilizar o Entity Framework

Para quem geralmente está procurando sobre asp.net mvc, quer começar a estudar, etc. sempre acaba caindo em tutoriais que utilizam o Entity Framework. A primeira vista, pode ser besteira pensar em não utilizar o entity framework, porém eu acredito que ele acaba complicando um pouco o inicio dos estudos para quem nunca viu nada a respeito. Existe também quem quer trabalhar com algum banco de dados que não possui um suporte legal com o EF e/ou simplesmente prefere utilizar outra solução, como o nhibernate, etc. Para essas pessoas que estão começando com o asp.net mvc e querem ver como ele funciona sem o EF, aqui segue um exemplo simples 😉

Caso você não tenha o asp.net mvc instalado, você precisará instalar. É bem simples, basta entrar no site http://www.asp.net/mvc e baixar a versão desejada.

Para criar um novo projeto, basta ir em: File -> New Project -> ASP.NET MVC 3 Web Application

projeto mvc

Escolha: Internet Application

internet app

E pronto, seu projeto está criado! Olhe como ficou a estrutura do projeto:

estrutura do projeto asp.net mvc
estrutura do projeto asp.net mvc

Bom, não vou ficar explicando o que é o pattern MVC, prós e contras, etc. Então se você ainda não sabe muito bem o que é MVC, eu recomendo você procurar uma leitura complementar antes de seguir.

Note como o fica a estrutura do projeto. Temos uma pasta para cada letra:
Models – Views – Controllers
Que aliás, é o principal da sua aplicação até este ponto.

primeira pagina

Mas quando entramos nesta página, o que está acontecendo? Quando você cria um Internet Application, o seu projeto conta com algumas coisas prontas. O que acontece é que a action Index do controller Home está sendo chamada, que por sua vez devolve a View Index, que se encontra em Views -> Home -> Index.cshtml

Mas e agora, tenho minha aplicação mvc criada, como realizar a persistência de dados sem utilizar o EF? Simples, da mesma maneira que fez em toda a sua vida. Escolha a maneira que você quer acessar os dados e pronto. Neste exemplo eu nem implementarei um acesso real ao banco. Vamos criar um model chamado Pessoa dentro da pasta Models.

namespace MvcApplication1.Models
{
    public class Pessoa
    {
        public string Nome { get; set; }
        public string SobreNome { get; set; }
        public string Sexo { get; set; }
    }
}

Agora, vamos criar uma pasta chamada Dao e criar um Dao para nosso model Pessoa.

namespace MvcApplication1.Dao
{
    public class PessoaDao
    {
        public List Listar()
        {
            return new List {
                new Pessoa { Nome = "Rafael", SobreNome = "Marques", Sexo = "Masculino" },
                new Pessoa { Nome = "João", SobreNome = "da Silva", Sexo = "Masculino" },
                new Pessoa { Nome = "Maria", SobreNome = "das Dores", Sexo = "Feminino" }
            };
        }
    }
}

Vamos supor agora que queremos listar todas as pessoas em nossa Index, como faríamos? Basta chamar nosso PessoaDao e pronto, temos nossa lista de pessoas. Na action Index do controller Home, adicionamos a chamada para o Dao, ficando assim:

public ActionResult Index()
{
    ViewBag.Message = "Pessoas";
    var pessoas = new PessoaDao().Listar();
    return View(pessoas);
}

E na nossa view, fazemos o seguinte:

@{
    ViewBag.Title = "Home Page";
}</pre>
<h2>@ViewBag.Message</h2>
@foreach (var pessoa in Model) { }
<table>
<thead>
<tr>
<th>Nome</th>
<th>Sobrenome</th>
<th>Sexo</th>
</tr>
</thead>
<tbody>
<tr>
<td><label>@pessoa.Nome</label></td>
<td><label>@pessoa.SobreNome</label></td>
<td><label>@pessoa.Sexo</label></td>
</tr>
</tbody>
</table>
<pre>

E temos nossa aplicação sem utilizar nada do Entity Framework. Mas ai você me pergunta, poxa vida Rafael, e aquele Dao safado que você criou e só retorna uma lista hard code? Onde fica a conexão com o banco, etc? É ali mesmo, no lugar de ter uma simples lista, você faria algo do tipo:

public List Listar()
{
    SqlConnection connection = new SqlConnection("sua connection string");
    connection.Open();
    SqlCommand command = new SqlCommand();
    command.Connection = connection;
     ...
}

Ou qualquer outra maneira que você ache melhor acessar o banco 😉

Bom, por hoje é só 😉 Qualquer dúvida é só falar.

Anúncios

2 comentários sobre “ASP.NET MVC sem utilizar o Entity Framework

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s