Olá, internautas! Gostaria de falar um pouco hoje sobre a importância da qualidade no momento de desenvolver o código. Com o passar do tempo, em minha carreira como desenvolvedor, adquiri bastante experiência, e também através de pesquisas, percebi que para se desenvolver um software que apresente qualidade no código é preciso que uma série de coisas sejam integradas, e muitas ferramentas possibilitam isso, como o Team Foundation Server, para guardar as versões de código e documentação, e o Visual Studio, que possui muitos atributos de comunicação e de integração com outros componentes e softwares.
O Visual Studio 2010 é uma versão aprimorada da ferramenta, com novas funcionalidades. Veremos aqui alguns benefícios de se trabalhar com o Visual Studio 2010, além de alguns exemplos durante o artigo.
![]()
Figura 1
Pontos importantes
A parte de desenvolvimento “web” da ferramenta está mais aprimorada, desde as teclas de atalho até os novos componentes e as tecnologias implantadas. Realmente é mais fácil desenvolver software com Visual Studio 2010 do que com outras ferramentas de software.
O projeto está mais limpo, o arquivo de configuração está mais “clean”, os projetos podem vir com templates específicos ou em branco; ela consome menos memória em sua máquina e existe muito código personalizado e otimizado para uso, o que provê mais assistência no requisito layout, estilo e CSS na edição; quem utiliza o “ViewState” no Visual Studio 2008 vai perceber que houve uma grande limpeza.
A ferramenta também possui URL semântica/routing para aprimorar as páginas nos sistemas de pesquisa como Bing, Google e Yahoo!, ou seja, fica muito mais fácil com a URL semântica/routing para achar o seu site/sistema nas primeiras colocações utilizando essa tecnologia do VS 2010.
Novos modelos de validação de dados foram colocados – para quem trabalha com a ferramenta em versão antiga como eu, desde o primeiro, você deve lembrar que a versão 2008 já começou a separar e a organizar bem melhor os modelos de validação de dados automatizado.
Foram colocados mais controles (ou manipuladores) de dados na ferramenta, com o objetivo de ajudar e abstrair códigos da melhor forma para o desenvolvedor. O controle QueryExtender é um exemplo para quem quer trabalhar com EntityDataSource e LinqDataSource.
A GridView, um componente muito utilizado, foi aprimorada para aceitar dados dos tipos dinâmicos. Agora o JavaScript tem intellisense, performance na ferramenta e integração com jQuery e Ajax. A parte de publicação e deployment foi aprimorada com mais opção e rapidez.
A instalação está bem mais rápida, com apenas 20 minutos, mantendo todas as ferramentas citadas acima e ainda as não citadas.
Codificação
Na minha opinião, as opções abaixo devem ser destacadas como inovações da ferramenta em nível de codificação e qualidade. Lembrando que em um único artigo não dá para falar de todas as inovações da ferramenta Visual Studio 2010, estou destacando as partes importantes e relevantes para mim.
Para um desenvolvimento de qualidade, é necessário seguir alguns padrões específicos e de código aberto criados pela Microsoft, senão o código pode virar uma bagunça, de difícil entendimento e manutenção. Uma inovação da ferramenta VS 2010 foi o MVC para a parte de layout.
Antigamente era tudo misturado e, sem organização para colocar a parte de layout, os desenvolvedores mais experientes sabiam organizar, os novos, não. Agora cada pasta tem o seu código, tem o seu controle, seu modelo e seu conteúdo:

Note que para criar um projeto do tipo MVC, o template já vem organizado com seus respectivos arquivos, veja o código abaixo:
Formulário simples utilizando MVC
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Contato</h2>
<% using (Html.BeginForm())
{ %>
<%: Html.ValidationSummary(true, "A mensagem falou a ser enviada! Tente novamente!") %>
<fieldset>
<legend>Entre em contato</legend>
<div>
<%: Html.Label("Nome: ") %>
</div>
<div>
<%: Html.TextBox("txtNome", null, new { @class="campo_form" }) %>
</div>
<div><%: Html.Label("Email: ") %></div>
<div>
<%: Html.TextBox("txtEmail", null) %>
</div>
<div><%: Html.Label("Descrição: ") %></div>
<div>
<%: Html.TextArea("txtDescricao") %>
</div>
<input type="submit" value="Enviar" />
</fieldset>
<% } %>
</asp:Content>Resultado do código

Validação de dados

Melhoria Web.Config
Outra inovação importante na ferramenta Visual Studio foi dividir o arquivo de configuração da aplicação em dois tipos, debug e release. Assim, no momento em que for publicar o software para homologar, basta utilizar o debug. Quando for a vez de produção, basta marcar como release.
Marcando essas configurações, o sistema já sabe qual arquivo de configuração pegar. Isso é muito importante. Veja o código a seguir.
Coloquei um vídeo na comunidade aspneti.com explicando como desenvolver e mexer com o arquivo de configuração referente aos tipos de ambientes.

Cliquei na seta ao lado esquerdo do Web.config, abriram o Web.Debug.config e o Web.Release.config. A conexão com o banco de dados em ambientes separados (é o certo de se fazer) pode ser separado dentro de cada arquivo dessa configuração.
<connectionStrings>
<add name="MyDB"
connectionString="Data Source=DESENVOLVIMENTO;Initial Catalog=MyReleaseDB;Integrated Security=True"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings> Debug
Agora, o ambiente de produção deve conter outra string de conexão apontando para a produção. (Code 3) (release)
<connectionStrings>
<add name="MyDB"
connectionString="Data Source=PRODUCAO;Initial Catalog=MyReleaseDB;Integrated Security=True"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings> Release
O próximo passo foi colocar a mesma tag junto ao arquivo principal (Web.Config) para que seja copiado no momento da publicação. (Code 4)
<connectionStrings>
<add name="MyDB"
connectionString=""/>
</connectionStrings> Depois de colocar e configurar os dois ambientes com o arquivo principal, basta escolher na ferramenta VS 2010 o tipo de publicação que deseja. Veja abaixo:

Ao mesmo tempo, a ferramenta coloca no arquivo principal a string de conexão escolhida de forma dinâmica e simples. A produtividade aumenta consideravelmente.
Auto Complete
O auto complete no HTML com as tags do framework .NET foi outra inovação surpreendente. A Microsoft se preocupa muito com a produtividade e com a qualidade do software que será construído, e com o VS 2010 basta digitar o nome da tag e clicar duas vezes na tecla TAB para auto:

Dentro da página .ASPX, digitei a palavra List, e o Visual Studio 2010 já lista as possibilidades. Ao clicar a tecla TAB duas vezes, aparece o seguinte:

O auto complete funciona para qualquer tag dentro da página, na parte de layout, principalmente com as tags do framework .NET. Funciona também dentro do C#.NET, no código propriamente dito. Na versão 2008 do Visual Studio, já havia a parte de “tab tab e complete” de código C#, não na parte de layout. No código, a funcionalidade foi melhorada. Resolvi falar isso, pois geralmente os desenvolvedores não sabem que podem utilizar essa facilidade e qualidade de código.
protected void Page_Load(object sender, EventArgs e)
{
if (true)
{
}
} Teste Unificado
Com o Visual Studio 2010, o teste do seu software é mais poderoso e simples de fazer. Além da possibilidade de criar um aplicativo que emula todo o teste, existe um menu na barra de menus específicos para teste e emulação do aplicativo construído:

Imagina emular o aplicativo construído colocando quantos usuários forem necessários, teste de caixa branca, caixa preta e outros mais. A ferramenta 2008 já possuía esse recurso, na versão 2010 está muito mais fácil e rápido de fazer.
Documentação e Arquitetura
A documentação continua a mesma das versões anteriores. Clicando /// em cima de um método, aparece imediatamente o espaço para comentar e futuramente gerar uma documentação especial como chm, doc, html e outros:
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (true)
{
}
} A ferramenta veio com um menu novo, especialmente na arquitetura e análise de sistema. Com ele, um diagrama pode ser criado, mesmo que todo o código já tenha sido feito, UML e camadas:

Note que no menu pode ser criado um novo diagrama, gerar dependências gráficas e outras telas específicas.

Na figura 11, ao escolher o menu de dependência, as classes podem ser geradas com uma dependência para o gráfico, ou seja, tudo que for gerado no gráfico é automaticamente incluído na classe, no código, no namespace, no assembly ou em alguma customização.

Passando para a figura acima (menu Windows), podem ser criados um gráfico UML Model Explorer, a arquitetura do projeto e as camadas. Mesmo que o projeto já tenha sido feito e criado, a ferramenta gera utilizando engenharia reversa.
Desenvolvimento em camadas
Como falado anteriormente, o Visual Studio 2010 oferece a opção de utilizar MVC na parte de layout com melhor qualidade e organização de arquivos, url routing e tudo mais. Para a camada de dados e de negócios, geralmente eu crio um outro projeto com essa finalidade, ou seja, trata-se de negócio e de dados.
É lógico que em poucas linhas seria muito difícil explicar tudo, mas vou tentar resumir o máximo. Por exemplo: tenho um projeto do tipo web que precisa acessar dados e regras de negócio, para isso eu gero um outro projeto e separo as classes:

Note que há um projeto chamado “Business” com as pastas BRL, DAO e DTO no início da figura acima. Logo em seguida, outro projeto do tipo web, referenciando o projeto Business, dentro da pasta References para uso interno.
Isso facilita o desacoplamento de dados, regras e muito mais, sabe por quê? Devido à possibilidade de criação de outros projetos que acoplam a mesma funcionalidade utilizando apenas outra plataforma.
Explicando cada pasta do projeto Business
Dentro da pasta DAO ou DAL (só a nomenclatura que muda) ficam todas as classes que fazem select, insert e update no banco de dados. Pode ser feito utilizando Stored Procedure e tudo mais. Lembrando que os métodos são internos, e não públicos. A única camada que deve acessar a DAO é a BRL.
Dentro da pasta BRL ficam todas as classes públicas que acessam as classes internas da DAO e executam alguma regra.
Dentro da pasta DTO, ficam todas as propriedades de cada dado que precisa ser trafegado. Pode ser indo ou voltando, ou seja, passando para o banco de dados ou voltando.
Passando agora para o projeto do tipo web, o formulário preenche as propriedades de um DTO (que tem get e set), depois passa para a BRL, que por sua vez executa alguma regra de negócio, se houver, e que por final passa para a DAO, que abre o banco de dados e executa o comando necessário. Essa é a mais básica organização para ser feita junto de um projeto, a ferramenta Visual Studio 2010 facilita muito este trabalho. Caso queira criar outro projeto do tipo Windows Form e utilizar as mesmas regras, basta criar um novo projeto e chamar o Business existente acoplando no novo projeto.
Novos Templates
Como mais uma inovação da ferramenta, a Microsoft colocou mais tipos de projetos com a possibilidade de criação e funcionamento:

Note que há mais templates do tipo Windows, há Cloud (criar o projeto utilizando as nuvens), reporting, sharepoint, silverlight, projeto de teste, WCF, Workflow (fluxo de algum projeto), modelagens e outros que não saíram na imagem.
A nova ferramenta foi modelada para aceitar vários outros tipos de projetos e templates com apenas desenvolvimento de plugins, ou seja, ficou totalmente acoplada e funcional.
Novos componentes
Além de tudo isso que falei acima, existem mais componentes integrados que não existiam nas versões anteriores. A Microsoft percebeu e ouviu alguns desenvolvedores e, com isso, surgiram novos componentes. Dentre alguns, vou destacar um específico e de fácil acesso:

O componente de gráfico pode ser colocado na sua aplicação web de forma simples e bela. O resultado está na figura acima. Para a alegria dos fascinados em 3D, o mesmo pode ser transformado com apenas duas linhas de código:

Veja que simples a linha de código:
<asp:Chart ID="chartWebcast" runat="server">
<Series>
<asp:Series Name="compeoes" YValueType="Int32">
<Points>
<asp:DataPoint AxisLabel="Mauricio" YValues="29" />
<asp:DataPoint AxisLabel="Ivan" YValues="20" />
<asp:DataPoint AxisLabel="Ramon" YValues="19" />
<asp:DataPoint AxisLabel="Roberto" YValues="39" />
<asp:DataPoint AxisLabel="Junior" YValues="9" />
</Points>
</asp:Series>
</Series>
<ChartAreas>
<asp:ChartArea Name="main">
<Area3DStyle Enable3D="true" Inclination="10" LightStyle="Realistic"
Perspective="15" IsRightAngleAxes="false" IsClustered="false" />
</asp:ChartArea>
</ChartAreas>
</asp:Chart> Busca fácil
No novo Visual Studio 2010 as buscas foram aprimoradas; basta selecionar um método ou variável que a busca é feita. As partes são destacadas! Veja:

Apertando “Ctrl” + “i”, a próxima variável será mostrada na tela.
URL Routing
A URL Routing ficou mais simples de desenvolver e com qualidade. Veja o Global.asax.cs.
public void RegisterRoutes(RouteCollection routes)
{
routes.MapPageRoute("product-browser", //nome amigável
Products/{category}", //URL que vai ficar
"~/Products.aspx"); //página de execução real
}
protected void Application_Start(object sender, EventArgs e)
{
RegisterRoutes(RouteTable.Routes);
} Passando para a parte da página no page_load, é necessário pegar o dado que está sendo executado na página real:
protected Page_Load(object sender, EventArgs e)
{
string category = Page.RouteData.Values["category"] as string;
//aqui chama o grid para preencher os dados com o parâmetro selecionado
preencherGrid(category);
} Há muito mais a falar sobre as novidades do Visual Studio 2010, mas aí este artigo ficaria muito longo e cansativo para ler. Espero que tenham gostado de algumas coisas que destaquei. Qualquer dúvida, pode entrar em contato!
Abraços.








