Visual Studio Express em Português. Gratuito!

Foi lançado na semana passada o VS Express e Pacote de Idiomas para Português que inclui suporte de linguagens completo (compilador, bibliotecas) e ambiente de desenvolvimento integrado.

Faça o download gratuito em: http://msdn.microsoft.com/pt-br/express/default.aspx
 
IMPORTANTE: Após a instalação do Pacote de Idiomas, execute o Visual Studio 2008 Express. A interface estará em inglês. Para ativar o Pacote de Idiomas, acione o menu Tools, então Options. Na janela de opções, selecione a caixa “Show all settings”. Então, sob a opção “Environment”, selecione “International Settings”. Na caixa “Language”, selecione “Português”, e clique “OK “. Saia do Visual Studio e entre novamente, para que o Pacote de Idiomas seja habilitado.

Abraços!

Anúncios

Introdução ao C# e ao Visual Studio 2005

Bem pessoal, para reforçar a aula da última quinta-feira, e também não deixar os que não puderam comparecer totalmente atrasados, irei escrever aqui um resumo/tutorial do que foi citado, explicado e ensinado na aula.

Para começar, a primeira informação que precisamos é o que é C#? C# é uma linguagem de programação recente, com menos de 10 anos de existência, desenvolvida pela Microsoft para o lançamento conjunto com o .NET Framework 1.0. A equipe de desenvolvimento da linguagem teve como líder Anders Hejlsberg (pronuncia-se “Rélsberg”), conhecido pela participação em projetos como o Delphi e Turbo Pascal na Borland, e do Visual J++, na Microsoft. Com toda a experiência de seus projetos anteriores, Hejlsberg conhecia as limitações das linguagens existentes até o momento, e também sabia quais características destas linguagens geralmente levavam os programadores a cometer erros. Estas limitações e excessos levaram a Microsoft à decisão de criar uma nova linguagem a ser lançada junto com seu Framework, e que fosse o mais parecida com a estrutura interna deste quanto fosse possível. Ao ser alocado como líder do desenvolvimento da nova linguagem, Hejlsberg e sua equipe decidiram que esta seria inspirada principalmente em C++, Java e Delphi, e herdaria as seguintes características destas e de outras linguagens já existentes:

  • Uso de uma sintaxe consolidada: A sintaxe utilizada em C, C++ e Java é muito difundida entre os programadores, o que torna o aprendizado da nova linguagem mais rápido e menos traumático, além do uso de “{ }” para delimitar trechos de código deixar o programa mais legível e menos suscetível a erros;
  • Orientação a Objetos: Paradigma amplamente difundido, que permite a modelagem de sistemas que refletem o mundo em que a aplicação está inserida;
  • Garbage Collecion: Tira das mãos do programador a necessidade de alocar e desalocar memória, fonte de muitos erros em programadores inexperientes, e de dores de cabeça proporcionais ao tamanho o sistema que está sendo desenvolvido;
  • Exceções: Desvia o fluxo de execução quando um erro ocorre, permitindo que este erro seja tratado de maneira elegante, e muitas vezes transparente ao usuário;
  • Tipos seguros: As atribuições devem ocorrer entre tipos compatíveis em tempo de compilação, e os casts são verificados em tempo de execução;
  • Limites dos arrays são verificados: Assim como Java, C# não permite que por exemplo, num de 5 posições, o programador tente acessar a posição 10. A não verificação dos limites de arrays é mais uma causa de frequentes erros em programadores C / C++.

Além destas características, C# também trouxe novidades, como:

  • Delegates: Funcionam como “ponteiros” de função, facilitando a implementação de eventos, e inclusive dando a possibilidade de multicast, quando um evento dispara mais de uma função;
  • Propriedades: Não é um conceito completamente novo, no entanto, a abordagem de acesso a propriedades no código-fonte não era difundida. As propriedades em C# servem por exemplo, para encapsular os atributos de uma classe, papel que seria desempenhado em Java por métodos get e set;
  • Namespace: Assim como as propriedades, a novidade não está no namespace em si, mas na maneira como são usados. Primeiramente, o namespace não está fisicamente ligado ao caminho do arquivo. Uma classe de namespace Ufpe.Cin.CinDotNet não precisa estar numa estrutura em pastas ..\Ufpe\Cin\CinDotNet. Outra diferença para o uso de namespaces, agora comparando com C++, é que os namespaces de C# não permitiriam o uso de maneira semelhante a “std::cout” (Código em C++ onde std é o namespace e cout é uma variável), pois um namespace pode conter apenas:
    • Outro namespace
    • Classes
    • Interfaces
    • Structs
    • Enums
    • Delegates
  • Partial Class: Em C#, você pode definir uma classe em mais de um arquivo. Apesar de no primeiro momento isto parecer uma regressão, onde você diminuiria a legibilidade do código por espalhar uma classe em vários arquivos, as partial classes usadas corretamente são de grande ajuda para a legibilidade. O uso de partial class ao criar páginas usando ASP.NET permite o uso de code behind de uma maneira elegante (antes da inclusão de partial class em C#, o code behind era implementado através de uma herança entre a classe que define a interface e a classe que contém a lógica. Com partial class, existe apenas uma classe, onde sua interface gráfica é definida em um arquivo e sua lógica em outro).

Para maiores informações, exemplos de código, referências e leituras complementares sobre o que foi falado acima sobre C#, recomendo vocês darem uma olhada na apresentação usada na aula, disponível em (http://www.cin.ufpe.br/~abc/cindotnet/IntroducaoCSharpVisualStudio.pptx), na solução da prática do final da apresentação (http://www.cin.ufpe.br/~abc/cindotnet/ExemploCalculadora.zip) e no material do programa Desenvolvedor 5 Estrelas (http://www.msdn.com.br/cinco_estrelas).

Agora que você já tem uma noção do que C# oferece, vamos dar uma olhada no Visual Studio.

O Visual Studio (VS) é uma ferramenta integrada de desenvolvimento, no mercado desde 1997, atualmente na versão 2008. Com o VS, podemos desenvolver qualquer tipo de aplicação, desde um sistema baseado em Console, passando por aplicações desktop em janela, e indo até jogos 3D e websites. Iremos focar na versão 2005, pois *por enquanto* é a versão que está instalada nos laboratórios do CIn, mas esperamos ansiosamente que em breve pelo menos um grad esteja com o Visual 2008 instalado.

Através do Visual Studio.NET 2005, podemos realizar a maioria das atividades referentes ao desenvolvimento de uma aplicação em um só lugar. Além de editar, compilar e debugar o código em um só lugar, podemos também visualizar bancos de dados, informações sobre servidores na rede, visualizar o log de eventos das máquinas, entre diversas outras ações. Isto reduz o tempo de desenvolvimento, pois não precisamos alternar entre aplicações, boa parte do que é necessário já está disponível no Visual Studio.

A velocidade de desenvolvimento (produtividade do programador) é um dos principais focos do VS. Esta busca por produtividade trouxe para o Visual ferramentas que reduzem muito a quantidade de código que precisa ser digitada. Entre elas, é interessante citar as seguintes:

  • Intellisense: Um sistema de autocomplete que visa minimizar a quantidade de código digitado e a quantidade de itens que o programador necessita memorizar. Através do Intellisense, o programador também tem acesso à documentação dos métodos, o que praticamente elimina o tempo “perdido” em ir ler a API. Em alguns casos, a sugestão do autocomplete é sensivel ao histórico do que vinha sendo codificado.
  • Code Snippets: Templates de código que também reduzem a quantidade de código digitado. Ao usar um code snippet, o desenvolvedor obtém a parte “invariável” do template e apenas precisa preencher as partes mais relacionadas ao seu programa. Exemplo: ao escrever um switch, caso a variável seja algum enum, o Visual irá escrever uma cláusula case para cada valor no enum, automaticamente. Para usar, digite o começo do nome de algum code snippet (como “swi” para o caso do switch) e pressione TAB duas vezes.
  • Comentários em XML: Funciona de maneira similar a JavaDocs. Após implementar um método, ao digitar “///” (três barras) na linha anterior à assinatura do método, o Visual Studio irá criar uma estrutura dentro de um comentário, já no formato do XML de documentação. Resta ao programador apenas preencher as informações inerentes a cada método. Este comentário é usado pelo Intellisense para mostrar a documentação do método.
  • Visualizador de Propriedades: Através da interface gráfica, é possível setar as propriedades dos componentes, reduzindo novamente o número de código digitado.

Outro fato interessante sobre o Visual Studio é a possibilidade de utilizar diversas linguagens (são aproximadamente 40, de acordo com http://dotnetpowered.com/languages.aspx). Além disto, é possível fazer com que projetos escritos em uma linguagem interajam com um projeto escrito em outra, devido à compilação de qualquer uma das linguagens utilizáveis com o VS ser realizada para o código IL (também conhecido como MSIL ou CIL), do .NET Framework.

O último ponto importante do VS que será tratado neste artigo é “como se desenvolver usando o Visual Studio”. Apesar de estarmos acostumados com o termo “Projeto” para designar toda a aplicação que estamos desenvolvendo, a Microsoft utiliza no VS a terminologia de Solução. Uma solução é um conjunto lógico de projetos que se propõem a resolver um determinado problema. Você pode tanto desenvolver apenas um projeto em uma solução, como pode modularizar cada parte deste projeto em outros projetos, que irão se comunicar entre si, poderão ter configurações diferentes (e inclusive ser escritos em linguagens diferentes, como já foi citado), entre outras diversas vantagens.

Além de conhecer o C# e o Visual Studio, é bom saber que apesar de C# ser uma ótima linguagem, que permite o desenvolvimento de maneira rápida e “segura”, e do VS ser um ótimo ambiente de desenvolvimento, com diversas facilidades para o programador, boa parte do que é falado e creditado a C# ou ao Visual Studio é de responsabilidade do .NET Framework.

Resumidamente, podemos dizer que o .NET Framework possui um conjunto de bibliotecas que contém diversas funcionalidades previamente implementadas de maneira eficiente, para tirar do programador a responsabilidade por implementá-las, geralmente com um código muito menos eficiente do que a implementação já existente. É interessante notar que boa parte das Class Libraries (nome dado a cada biblioteca contida no Framework) do .NET Framework foi escrita em C#.

Já existem, padronizadas pela ISO e ECMA, Class Libraries responsáveis pela manipulação de listas, dicionários e hashtables, acesso a dados, entrada e saída, manipulação de texto, desenho e diagnóstico do programa, entre inúmeras outras. Além das Class Libraries padronizadas, o .NET Framework ainda disponibiliza várias outras, para manipulação de XML, interface gráfica por meio de janelas ou interface gráfica para desenvolvimente de websites.

Bem pessoal, resumidamente, este foi o conteúdo visto na aula. Espero que vocês usem este artigo e a apresentação como referência, enquanto dão seus primeiros passos nestas tecnologias.