PROGRAMANDO EM ASP.NET

 Busca Online:

 
Seja bem vindo(a) Visitante, você não está logado deseja logar
no portal para participar de serviços e promoções ? clique aqui.


No caso de perder a senha, acesse aqui e receba por e-mail.
Deseja entrar em contato conosco, acesse aqui e mande-nos um e-mail.

Desenvolvendo software com qualidade

por Mauricio Junior em 1/1/2011 0

        Olá Internautas, gostaria de falar um pouco sobre a qualidade no momento de desenvolver software.



Na prática


O Visual Studio 2010 veio com força, aprimorou as partes que precisava com componentes de desenvolvimento e inovou colocando novas funcionalidades dentro da ferramenta de desenvolvimento.


Pontos importantes


A parte de desenvolvimento “web” da ferramenta está mais aprimorada, desde as teclas de atalho até os novos componentes e tecnologias implantadas. Realmente é mais fácil desenvolver software com Visual Studio .NET 2010 do que 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, consome menos memória em sua máquina, existe muito código personalizado e otimizado para uso, provê mais assistência no requisito layout, estilo e CSS na edição, para quem utiliza o “ViewState” no Visual Studio .NET 2008, pode perceber que houve uma grande limpeza. 


Possui URL semântica/routing para aprimorar as páginas nos sistemas de pesquisa como o Bing, Google  e Yahoo; isto é; 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ê pode notar que a versão 2008 já começou a separar e organizar bem melhor os modelos de validação de dados automatizado.


Foram colocados mais controles de dados ou manipuladores de dados na ferramenta, com o objetivo de ajudar e abstrair códigos da melhor forma para o desenvolvedor. O controle QueryExtender foi é um exemplo para quem quer trabalhar com EntityDataSource e LinqDataSource.


A GridView, um componente muito utilizado foi aprimorado 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ção da ferramenta a nível de codificação e qualidade. Lembrando que, em um artigo não dá para falar de todas as inovações da ferramenta Visual Studio .NET 2010, estou destacando as partes importantes e relevantes da minha opinião.

Para um desenvolvimento de qualidade é necessário seguir alguns padrões específicos e de código aberto criados pela Microsoft. Pelo contrário, o código pode virar uma bagunça, com 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 experiêntes sabiam organizar, os novos não. Agora cada pasta tem o seu código, tem o seu controle, seu modelo e conteúdo. (Figura 2)





Note que para criar um projeto do tipo MVC, o template já vem organizado com seus respectivos arquivos. (Code 1 – 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>


Code 1


Resultado do código (Figura 3)





Validação de dados. (Figura 4)





Melhoria Web.Config


Outra inovação importante na ferramenta Visual Studio foi dividir o arquivo de configuração da aplicação em 2 tipos, debug e release. Assim no momento que for publicar o software para homologar, basta utilizar o debug. Quando for a vez de produção basta marcar como release. 

Marcando estas configurações, o sistema já sabe qual arquivo de configuração pegar. Isso é muito importante. Veja o Code 2.

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, abriu 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 deste de configuração. 



    <connectionStrings>

      <add name="MyDB" 

        connectionString="Data Source=DESENVOLVIMENTO;Initial Catalog=MyReleaseDB;Integrated Security=True" 

        xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>

    </connectionStrings>


Code 2 (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>


Code 3 (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>


Code 4


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. (Figura 6)






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 qualidade do software que será construído, com a ferramenta VS 2010 basta digitar o nome da tag e clicar duas vezes a tecla TAB para auto. (Figura 7)






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






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 VS 2008 já havia a parte de “tab tab e complete” de código C#, não na parte de layout. No código foi melhorada a funcionalidade. Resolvi falar isso pois geralmente os desenvolvedores não sabem que podem utilizar esta facilidade e qualidade de código.


       

        protected void Page_Load(object sender, EventArgs e)

        {

            if (true)

            {

                

            }

        }


Code 5

Teste Unificado

Com o Visual Studio .NET 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 menu’s específico para teste e emulação do aplicativo construído. (Figura 9)






Imagina emular o aplicativo construído colocando quantos usuários necessários, teste de caixa branca, caixa preta e outros mais. Na ferramenta 2008 já possui 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 da versão anterior ou 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. (Code 6)



        /// <summary>

        /// 

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        protected void Page_Load(object sender, EventArgs e)

        {

            if (true)

            {

                

            }

        }


Code 6


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. (Figura 10)






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 12 (menu Windows), um gráfico UML Model Explorer pode ser criado, 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, a nova ferramenta vem com uma 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ócio, 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, pra isso eu gero um outro projeto e separo as classes. (Figura 13)






Note que tem um projeto chamado “Business” com as pastas BRL, DAO e DTO no início da figura 13. 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 porque? Devido a 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 .NET 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. (Figura 14)







Note que tem mais templates do tipo Windows, tem Cloud (criar o projeto utilizando as núvens), reporting, sharepoint, silverlight, projeto de teste, WCF, Workflow (fluxo de algum projeto), modelagens e outros que não saiu 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, surgiu novos componentes. 

Dentre alguns, vou destacar um específico e de fácil acesso. (Figura 15)






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






Veja que simples a linha de código. (Code 7)



        <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>


Code 7


Busca fácil


As buscas foram aprimoradas com a nova ferramenta Visual Studio .NET 2010. Basta selecionar um método ou variável que a busca é feita. As partes são destacadas!

Veja na figura 17.







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);

}

Code 8


Passando para a parte da página no page_load é necessário pegar o dado que está sendo executado na página real. (Code 9)


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);

}

Code 9


Tenho muito mais coisa para falar, o problema é que 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 pelo site da comunidade aspneti.com ou o meu pessoal mauriciojunior.org.



voltar   comente  subir

Download Copy





 
Mauricio Junior Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; .
Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, ECODE10.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A. Blog: blog.mauriciojunior.org, Site pessoal www.mauriciojunior.org



Comentários:


Comente (dê sua opinião):

Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

SQL Dinâmico Compilado
User Control Windows executando no Internet Explorer (parte 2 de 2)
Trabalhando bem com o “using”
Acessando banco de dados com pocket pc
Vídeo do Visual SourceSafe - Parte I
Page.Header
Detectando Browser Mobile
Ler RSS usando o Visual Studio.NET 2005
Resources como padrão de mensagens
Usando Tooltip
HTC x LG x Samsung com Windows Phone 7
Convertendo String para Guid
Samsung em NYC
Usando public interface
Fazer Log, precisa ou não precisa?
Exemplo usando try e catch
Internet começa a ter ultra velocidade no Brasil
Abrir o programa apenas uma vez
Código fonte do livro DESENVOLVENDO WEBSERVICES
Sistema Calcula IMC e IGC no Celular
Search do Windows Live em Seu Site
Dll Ajax
Permitir Teste pelo Browser no WebService
Máscara valor que funciona
Adicionar uma coluna em um DataTable
Consultando CEP via WebService
Descobrindo e criando tecla de atalho com Windows Forms
Resources e Internacionalização usando Visual Studio.NET 2005 (Parte IV)
Virtual Earth - Segundo Passo
Abrindo Janela de Forma Modal
Montando Menu Dinâmico com Banco de Dados
Vídeo - Ler EventLog do Windows usando C#.NET
Trabalhando com GridView e BoundField escondido
GridView Parte I
Confirm Button com JavaScript




eCode10 Magazine 4 Edição

Baixe a sua sem pagar nada, basta apenas ter um cadastro na comunidade aspneti.com ou ser usuário do ecode10.com.



Edições anteriores
LAYERDEV

Notícias *

Notebook 3D ou 4K?

Notebook vem com tudo...

Visão do Futuro - Day of Glass 2

Futuro próximo pode chegar cedo?...

Lenovo de 14 polegadas IdeaPad

Veja o novo notebook Lenovo IdeaPad...

Windows 8 Store

Channel9 publica um vídeo da Windows Store...

Sony Vaio série Z

Novo Vaio Ultrabook? ou não Ultrabook?...

Samsung quer comprar RIM

Imagine se juntar as duas companhias...

Surface 2.0 mostrado

Novo Surface é mostrado de forma incrível...

Skype Tablet

Será que esse skype tablet pega mesmo?...

Lenovo e o seu novo Ultrabook

Ultrabook chega também pela Lenovo...




NETITC