Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RSS iMasters

[Resolvido] Desenvolvendo software com qualidade usando o Visual Studi

Recommended Posts

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.

 

VisualStudio2010Ultimate_thumb2.png

 

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:

 

fig2.png

 

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

fig3.png

 

 

Validação de dados

fig4.png

 

 

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. 

 

fig5.png

 

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:

 

fig6.png

 

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:

 

fig7.png

 

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:

 

fig8.png

 

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:

 

fig9.png

 

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:

 

fig10.png

 

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

 

fig11.png

 

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.

 

fig12.png

 

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:

 

fig13.png

 

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:

 

fig14.png

 

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:

 

fig15.png

 

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:

 

fig16.png

 

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:

 

fig17.png

 

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.

http://imasters.com.br/artigo/18021/visual_studio/desenvolvendo-software-com-qualidade-usando-o-visual-studio-2010

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.