.Net Magazine edição 59 Acaba de sair a .Net Magazine número 58. Esta edição sai com um artigo meu na capa, mostrando como montar uma aplicação completa, de ponta a ponta, utilizando ASP.Net MVC, Entity Framework, e baseada em Domain Driven Design (DDD). A aplicação conta com toda a lógica de domínio, além de contato com o banco de dados, ASP.Net Membership (com ASP.net MVC), tratamento de erros e testes unitários. O artigo começa com uma apresentação dos casos de uso e do protótipo, e segue mostrando como resolver cada requerimento apresentado. Como o código ficaria muito extenso, boa parte ficou para download posterior, apresentei somente o essencial para que a mensagem fosse transmitida. E ainda assim o artigo segue com mais de 20 páginas impressas. Há ainda exemplos de aplicação de alguns padrões de arquitetura, como o Registry, e inversão de controle.

O artigo vai ficar como um bom exemplo de como construir uma aplicação baseada em padrões, escalável e de fácil manutenção. Obviamente melhorias seriam bem vindas, mas apresentar toda uma aplicação em uma única edição me obrigou a ser sucinto (o máximo que eu consegui). Eu deixo a diga no artigo, mas uma melhoria que ficaria muito boa seria a utilização de um conteiner de injeção de dependência. A troca do Entity Framework por NHibernate também seria interessante, porque a aplicação possui código de mapeamento entre POCOs e entidades do EF, o que em pouco tempo se transformaria em um inferno para dar manutenção e testar.

Para quem gostou do meu artigo sobre DDD da .Net Magazine 57, acho que este será um bom exemplo prático. Aproveite também para ver o vídeo com a minha apresentação no .Net Architects.

Como sempre, feedbacks são bem vindos. Gostou? Não gostou? Tem uma opinião? Comente!


Postado na(s) categoria(s) Artigos técnicos pelo giovanni bassi em 31 de dezembro de 2008 às 13:21 | Tags: , , , , ,

Comentários


Brazil Marcos Almeida
janeiro 2. 2009 10:47
Marcos Almeida
Giovanni,

Parabéns pelo blog e pelo trabalho feito na revista .NET Magazine. Ainda não tive acesso a revista, mas já fiz o download do código no site deles. Não achei no projeto o DB SQL Server. Como posso ter acesso a ele?

Valeu


no site


janeiro 4. 2009 14:15
Giovanni Bassi
Olá Marcos,
Acabei não fazendo um projeto de DB, e acho que não coloquei os scripts por lá. Mas dá para inferir o banco a partir dos diagramas do Entity Framework, não dá?

http://unplugged.giggio.net/http://unplugged.giggio.net/


Brazil Bruno Feliciano
janeiro 6. 2009 15:18
Bruno Feliciano
Nossa, fico muito feliz que a .NET Magazine está dando ênfase a artigos como esses seus...

Espero que os tempos de "Dataset vs Data reader" tenham realmente ficado para trás.

Só não achei ainda esta edição nas bancas (São Paulo capital).

no site


janeiro 9. 2009 00:40
Fabio Souza
Opa! tambem to percebendo que a revista esta ficando muito mais profissional e dividida.
Espero que as videos aulas tambem tomen esse rumo.
Abração Giovanni! Co

te +

http://www.fabiosouza.com/http://www.fabiosouza.com/


Brazil Alessandro
janeiro 10. 2009 15:03
Alessandro
Oi... tudo bem?
Valeu por mais um artigo espetacular para nós programadores (se é que podemos nos denominar assim diante de conhecimentos como os seus).
Obrigado mesmo....

Tenho apenas duas dúvidas:

1) Algumas interfaces do projeto eu achei desnecessárias como por exemplo a IVeiculacao, visto que em nenhum momento foi necessário usá-la de maneira abstrata, ou em um registry, factory etc.... Você usou para padronização de projeto ou de fato tem outro objetivo o uso de interfaces em todas as classes do model (modelo) ???

2) Se fosse um projeto real (digo para algum cliente seu), você pessoalmente optaria pelo Entity Framework ou pelo NHibernate?


Muito grato pela atenção.

braços
t+

no site


janeiro 10. 2009 20:49
Giovanni Bassi
Alessandro,
Respondendo:
1) Muitas vezes não é necessário ter interface de entidades. Eu escolhi esse padrão e segui. É muito útil quando você quer testar um código de um serviço, por exemplo, porque não precisaria criar uma veiculação de verdade. O único motivo para esse tipo padrão é testabilidade. Até poderia dizer que devemos sempre lidar com abstração, mas se fosse só isso seria exagero.
2) Em um projeto como esse eu escolheria NHibernate, porque ele funcionaria melhor com POCOs. Adotei EF porque é mais conhecido da maioria. A próxima versão do EF já deve atender este requisito também, vamos ver...

http://unplugged.giggio.net/http://unplugged.giggio.net/


Brazil alessandro
janeiro 13. 2009 13:19
alessandro
Oi Giggio.. eu de novo.
Cara fiquei com uma dúvida.

Neste artigo da revista vc fez um projeto usando o EF como persistência.
Ai li outro comentário seu falando mau de um projeto feito exatamente da mesma forma só que ao invés de usar o EF usa o LINQ TO SQL na camada de persistência.
Você comentou que achava um override muito alto ter que manter os POCOs e as classes do LINQ, e sugeriu que o autor deveria usar apenas as ENTIDADES DO LINQ então....
Assim sendo neste seu projeto da revista tb não seria melhor usar no DOMAIN as próprias classes do EF????

Valeu pela atenção...
t+

no site


janeiro 13. 2009 14:12
Giovanni Bassi
Usei EF porque é mais conhecido que o NH, e um artigo com NH ficaria complexo demais.
O problema é que usar as classes do EF como classe de domínio dificultariam os testes, por isso mantive POCOs. No fim do artigo eu sugiro que o leitor faça a troca por NH e avalie.

http://unplugged.giggio.net/http://unplugged.giggio.net/


Brazil Leandro
janeiro 22. 2009 23:17
Leandro
Estou acompanhado o seu blog através de RSS já faz um tempo e só tenho a agradecer sobre os artigos publicados. Foi através do blog que tive conhecimento do artigo da revista e adquiri esta hoje a tarde.

Trabalho em uma empresa de software e vamos desenvolver alguns dos módulos de nosso aplicativo empresarial em asp.net, mas estou um pouco confuso por onde devo seguir.
A duvida é sobre qual modelo devo seguir o desenvolvimento, web form ou MVC ?
Em relação a manipulação de dados, o Entity Framework é o caminho correto ?




no site


janeiro 23. 2009 01:43
Giovanni Bassi
Leandro, para ver onde usar veja:
unplugged.giggio.net/.../...t-MVC-Quando-Usar.aspx
Entity Framework pode ou não ser o caminho correto. Vai depender da sua arquitetura. É muito difícil dizer sem ver os seus requerimentos.
O grupo .Net Architects tem discutido muito isso, joga a pergunta por lá.

http://unplugged.giggio.net/http://unplugged.giggio.net/


janeiro 23. 2009 23:06
Leandro
Obrigado pela atenção.
Após ler o artigo unplugged.giggio.net/.../...t-MVC-Quando-Usar.aspx creio que no momento o mais adequando é utilizar web form.

A nossa empresa desenvolve em cobol com arquivos padrão ISAM e por isso estamos acostumado a tratar os campos de uma tabela com se fosse uma variável comum, movendo e recuperando o valor. Vou pesquisar mais sobre o Entity Framework, mas o pouco que estudei sobre este percebi que as tabelas do bando de dados ficam disponíveis como se fosse objetos, facilitando assim a manipulação dos dados.
Pesquisei também sobre o subsonic, achei muito pratico a maneira que esta gera as classe e disponibiliza o acesso ao banco, funciona tudo de uma maneira transparente.

Vou começar a participar da comunidade .Net Architects e fico no aguardo do seus novos artigos.

http://www.jrsistemas.com.br/http://www.jrsistemas.com.br/


Brazil neuber
dezembro 31. 2009 16:15
neuber

no site

Comentar


(Vai mostrar seu Gravatar)

  Country flag

biuquote
  • Comentário
  • Pré-visualização
Loading



Quem é Giovanni Bassi

Giovanni Bassi Sou uma pessoa apaixonada por tecnologia e especificamente por .Net. Sou consultor independente especialista em .Net, focado em arquitetura e melhores práticas. Tenho dezenas de artigos publicados na .Net Magazine, revista da qual sou editor técnico. Ministro palestras e cursos de vez em quando, e quando dá tempo eu respiro um pouco. Mais detalhes nesta página.

Busca

Selos

Eu vou ao TechEd Brasil 2010, e você?

MVP

MCPD

MCSD

.Net Magazine

Abaixo ao if!

Calendário

«  julho 2010  »
seteququsedo
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678
Ver detalhamento de posts no calendário

Blogs interessantes

    OPMLDownload OPML file

    Postagens recentes

    Comentários recentes

    Disclaimer / Aviso
    As opiniões colocadas neste blog são minhas e pessoais e não expressam necessariamente as opiniões de meus empregadores, pareceiros e amigos. Da mesma forma, os comentários feitos por leitores do blog não expressam a minha opinião.

    © Copyright 2010 .Net Unplugged
    Log in