Do que trata o artigo

Este artigo irá lhe mostrar o universo de possibilidades que o .NET nos oferece para a construção de aplicações. Você verá que a plataforma cresceu muito desde o seu nascimento em 2001 e continua crescendo. A quantidade de opções que temos na plataforma é enorme, e é preciso saber como escolher corretamente.


Para que serve

O objetivo deste artigo é expor as principais possibilidades que temos no .NET para a construção de uma aplicação. Entre essas possibilidades temos: arquiteturas, padrões, bancos de dados, interface de usuário, tecnologias de acesso e persistência de dados, ferramentas, frameworks e componentes de terceiros, entre diversos outros detalhes que compõem uma aplicação .NET.

Em que situação o tema é útil

Desenvolvedores iniciantes em .NET ou equipes que pretendem migrar suas aplicações para .NET hoje têm a dificuldade de definir que conjunto de ferramentas e tecnologias usar na plataforma. Esse artigo é útil para essas pessoas, e para desenvolvedores .NET que desejam ter uma noção ampla de todas essas possibilidades.

Resumo do DevMan

Hoje em dia, a quantidade de ferramentas e possibilidades que temos na plataforma .NET é impressionante. Isso nos dá um poder de liberdade e escolha muito grande na hora de definir qual a arquitetura da aplicação que iremos desenvolver.

Em contra partida, escolher o conjunto de ferramentas e tecnologias corretas, pode ser uma tarefa complexa e frustrante. Como saber se estamos escolhendo direito? Neste artigo veremos quais são as principais decisões que devemos tomar antes de entrar de cabeça no desenvolvimento de uma aplicação .NET.

“Foi oferecido a um grupo de consumidores seis sabores diferentes de geléia para degustação. 30% das pessoas que experimentou, comprou ao menos um pote de geléia. A mesma campanha foi realizada novamente, só que agora 24 sabores diferentes de geléia foram oferecidos. Somente 3% das pessoas compraram geléia dessa vez.”

Essa história está no livro O Paradoxo da Escolha, de Barry Schwartz. Neste livro de pscicologia, Schwartz nos mostra como o universo de possibilidades que temos hoje em dia é assustadoramente grande. E isso em todos os aspectos possíveis: educação, carreira, amizade, sexo, relações amorosas, criação dos filhos, práticas religiosas e o consumo em geral.

Apesar da liberdade que ganhamos quando temos um número tão grande de opções, também sofremos com a pressão por fazer a escolha certa. E como saber se estamos fazendo a escolha certa em um universo tão grande de possibilidades?

É sobre isso que trata esse artigo. Assim como em todas as áreas da nossa vida, na plataforma .NET também temos um universo absurdo de possibilidades. Seguindo essa linha de raciocínio, esse vídeo no YouTube levanta essa mesma questão: http://www.youtube.com/watch?v=8nh-2lvrwB4.

Não é a primeira vez que a história da geléia foi usada para exemplificar o universo de possibilidades que temos na plataforma .NET. Em uma entrevista realizada com Michelle Bustamante pelo .NET Rocks, Carl Franklin e Richard Campbel também levantam essa questão. Você pode ouvir este podcast através do link que está no fim deste artigo, na seção de links.

Mas o interessante do vídeo citado acima é a imagem que nos dá uma ideia das escolhas que temos que fazer na plataforma .NET, confira aqui na Figura 1.

Figura 1. São tantos sabores...

E olha que ainda ficou muita coisa de fora dessa imagem. Em contrapartida, nem todas as opções que estão aí se referem exclusivamente ao universo da plataforma .NET. Como por exemplo, quando falamos de DDD, testes, agile, são questões que também estão relacionadas a outras plataformas de desenvolvimento. Mesmo assim, essas são questões que uma hora ou outra teremos que lidar.

Mas o ponto principal é: Já foi a época em que precisávamos apenas decidir qual linguagem usar para construir uma aplicação. Aliás, já foi há tempos! Hoje, a linguagem é só um detalhe. Além dela, precisamos decidir: Banco de Dados, versão da platafoma, versão e edição do Visual Studio, interface de usuário (Windows, Web, Mobile), ferramentas de ORM / acesso a dados, arquitetura (estilos, camadas, padrões), padrões da orientação a objetos, tecnologia para camadas de serviço, ferramentas de relatórios e integração, componentes de terceiros, técnicas e ferramentas de testes, ferramenta de controle de versão e metodologias de gerenciamento.

Dê uma olhada na Tabela 1 para ver as principais opções que temos dentro de cada um destes tópicos que foram citados. Tenho certeza de que em todo esse conjunto de opções ainda está faltando muita coisa, por isso que na maioria das listas temos a opção (outras) identificada.

Tópico

Principais Opções

Nro

Opções

Linguagem

C#, vb.net, (outras)

3

Banco de Dados

SQLServer, Oracle, Postgre, Firebird, MySQL, Db4Objects, (outros)

7

Versão da Plataforma

.net 2.0, .net 3.0, .net 3.5, .net 4.0 (beta2)

4

Versão do Visual Studio

2005, 2008, 2010

3

Edição do Visual Studio

Express, Professional, Team System/Ultimate

3

Interface de Usuário (Windows)

Prompt de Comando, Windows Forms, WPF

3

Interface de Usuário (Web)

ASP.NET WebForms, ASP.NET MVC, ASP.NET Dynamic Data, ASP.NET AJAX4, Silverlight

5

Interface de Usuário (Mobile)

Windows Mobile, IPhone (Mono Touch)

2

Ferramenta de ORM/Acesso a Dados

ADO.NET Puro, DataSet tipado, LINQ to SQL, ADO.NET Entity Framework, NHibernate (outros)

6

Arquitetura (Estilos)

Data Centric Design, Domain Driven Design (DDD)

2

Arquitetura (Camadas)

2(Aplicação, Database), 3(Aplicação, Lógica, Database), 4(Aplicação, Modelo, ORM, Database), 5(Aplicação, Serviço, Modelo, ORM, Database), (outras)

6

Arquitetura (Padrões)

Nenhum, MVC, MVP, MVVM, (outros)

5

Padrões da Orientação a Objetos

Nenhum, Interfaces, Injeção de Dependência, Inverção de Controle, Generics, (outros)

6

Tecnologia para Camada de Serviço

Nenhuma, WebService, WCF, RIA Services, ADO.NET Data Services (REST), (outros)

6

Ferramentas para Relatórios e Integração

Nenhuma, Reporting Services, Integration Services, SharePoint, VSTO (Office), Biztalk, (outros)

7

Componentes de Terceiros

Nenhum, Crystal Reports, Dundas, DevExpress, Telerik, Ajax Control Toolkit, Coolite, (outros)

8

Técnias e Ferramentas de Testes

...
Quer ler esse conteúdo completo? Tenha acesso completo