:: Topo :: doCoding :: Projectos Tutoriais ::
Tutorial TDD-WinFormApp
Introdução
Decidir aprender um pouco de C#, através de um tutorial do Cory Foy que aplica TDD ao desenvolvimento de uma mini-aplicação:
My father-in-law runs a small business doing appliance repair and needed a way to track the calls he goes on. The app is pretty straightforward:
- A customer entry piece for entering the name, address and phone number of customers he visits (and a way to search for a customer)
- An invoice piece to enter the work he does for a customer
- A basic reporting piece to show a list of the customers that haven't paid yet
Oftentimes in the course of showing Test Driven Development, we resort to things like the bowling game to show the basic concepts. I thought it would be fun to document the building of the application using TDD since it uses two things that are commonly cited as being very difficult to TDD - WinForms and Databases.
Objectivo
Principal
Obter mais experiência de codificação em C#.
Secundários
- Obter mais experiência de codificação no IDE SharpDevelop.
- Obter mais experiência de codificação aplicando a metodologia TDD.
- Demonstrar que TDD pode-se aplicar no desenvolvimento de aplicação com UI - UserInterface - e com bases de dados.
Pressupostos
- É preciso uma máquina a correr Windows 2000 ou superior.
- .NET Framework 2.0, com FxCop.
- SharpDevelop v2.2.1 build 2648. Este IDE já tem integrado o NUnit e o NCover.
- Subversion v1.4.6.
- TortoiseSVN v1.4.7.
- Apache v2.0.61, para permitir o acesso ao repositório via WebDAV.
Iterações
Conclusões
Pros
Gostei muito de seguir este Tutorial.
Aprendi mais do que estava à espera, e já estava à espera de bastante: C#, TDD, NUnit, MVP, diferenças entre .NET Framework e Mono no #Developer, etc.
Além de ter começado a conhecer a linguagem C# também conheci o #Developer, e o seu “irmão” MonoDevelop. São bons IDEs, integrados com o Subversion - a big plus - e consegui percorrer o Tutorial sem ser necessário usar o Visual Studio (Express Edition, claro).
Cons
Teria sido melhor, por cada iteração, gravar o passo red logo seguido do passo green e eventual passo de refactoring.
Os artigos ficariam mais beneficiados com um Syntax Highlighter para formatar o código, bem como de um pouco mais de atenção ao copy&paste entre o IDE e o Windows Live Writer que o Cory diz ter usado. Houve problemas de vírgulas, muito frequentes. E no meu caso, tive que alterar as ocorrências de Count() para Length.