pontoNETpt
A comunidade PontoNetPT está direccionada a todos os programadores que trabalhem com a plataforma .NET.
Microsoft .NET Pet Shop

Um pouco mais folgado, tenho dedicado algum tempo a alimentar o cérebro lendo alguns design patterns que a microsoft publica.

Hoje resolvi fazer o download da pet shop, versão 3. Achei interessante. Na verdade não tenho tido muitas oportunidades de ver outras formas (interessantes) de resolver aqueles pequenos problemas que enfrento no dia a dia quando programo em asp.net.

Comecei pelo OrderBilling.aspx; Tal como eu considero correcto, o código não depende do conceito sessão. Este acesso está encapsulado em objectos (CartController, por exemplo). Um erro que eu considero muito comum em aplicações é torná-las dependente do conceito sessão, comprometendo a possibilidade de portar facilmente a aplicação. Fica ainda muito fácil manter o código na medida em que não temos um número elevado de aspx's a inserir objectos em sessão.

Detectei ainda na classe CartController um método, claramente documentado, que quando evocado pode redireccionar para outra página. Embora discutível, eu considero que esta decisão deveria ser atribuída a classes que derivem de Page, quebra menos o fluxo de leitura do código e promove a reutilização de código em situações em que o paradigma não seja a web (windows forms, por exemplo).

Algo que considero preocupante é o facto de a aplicação tratar muito mal as excepções. Em muitos lados elas não são caçadas e, quando caçadas, não é usado qualquer sistema de logs. Os logs assumem papel importante na detecção de problemas em produção.

Alguns páginas incluem fields inicializados com strings que correspondem a mensagens para mostrar ao utilizador. Seria uma melhor prática recorrer a uma resource table. Desta forma, não só possibilitaríamos a evolução para a internacionalização, como a correcção de eventuais erros ortográficos não implicaria um novo deploy.

Não me alongado mais, a minha primeira impressão foi agradável. O código parece simples, claro e bastante estruturado facilitando o seu estudo. Contudo, achei a solução um pouco pobre para quem pretende usá-la como demonstração dos design patterns recomendados para aplicações .NET (mesmo tendo em conta a antiguidade da última revisão); creio que a Microsoft poderia ter feito muito melhor.


Posted 30-12-2004 20:29 por Paulo Abreu

Add a Comment

(requerido)  
(opcional)
(requerido)  
Remember Me?
If you can't read this number refresh your screen
Enter the numbers above:  
Powered by Community Server (Commercial Edition), by Telligent Systems