Começando a Programar em .NET: Tutorial Completo

Veremos neste artigo breves introduções sobre o desenvolvimento de software, voltado para a plataforma .NET, de uma forma bastante teórica para memorizar conceitos básicos nesta área.

Como um pequeno manual para introduzir os principais conceitos e termos utilizados em desenvolvimento .NET, tentando ajudar a familiarizar e acelerar o conhecimento do leitor neste ambiente de desenvolvimento. Serve também como um “glossário”.

Saiba mais: Primeiros Passos com C#

O tema é útil para quem está iniciando no ambiente .NET, assim poderá ver os principais conceitos, janelas, menus e funcionalidades presentes no Visual Studio 2010, além de ter um embasamento teórico bastante abrangente da área .NET. É útil para aqueles que entram no universo .NET e se deparam com uma gama enorme de tecnologias, opções e termos. É preciso aprender o que são, para que servem e quando são aplicados.

Este artigo irá abordar os principais conceitos na área de desenvolvimento de software tentando encaixá-los nas tecnologias .NET, com o objetivo principal de familiarizar o leitor neste ambiente de programação. Serão explicadas as principais linguagens e ferramentas de programação utilizadas, entre elas VB.NET, C#, Delphi Prism e a nova F#. Além disso, será explicado detalhadamente como funciona um compilador e a compilação de um código fonte em .NET. Sempre tendo em vista apresentar o Visual Studio 2010, alguns detalhes de sua IDE, Templates, Assemblys, Namespaces e Class Library. Para finalizar, um modelo de formulário Windows e um modelo detalhado de um formulário Web, onde poderão ser utilizados os novos recursos de IntelliSense, também demonstrados no artigo.

Nos dias atuais, para quem trabalha no ramo de desenvolvimento de software, às vezes é difícil estar sempre atualizado nas novidades tecnológicas da área, ou então, realizar uma mudança drástica de tecnologia, como mudar de uma linguagem de programação para outra. Ou ainda, saber quais os caminhos a tomar, qual rumo seguir e quais ferramentas a utilizar.

Saiba mais: Cursos de .NET

Neste artigo, o leitor ficará familiarizado com as tecnologias .NET e poderá distinguir quais linguagens estão presentes, como funciona um compilador de maneira geral em .NET, além de ver detalhes que podem ajudar a utilizar e a iniciar a programar no Visual Studio, onde o leitor será capaz de escolher a linguagem de programação que mais se adapte a sua realidade. Vale lembrar que nem todos os conceitos, telas e nomenclaturas foram citadas, este artigo visa uma introdução dos principais temas da área visando habilitar o leitor ao fascinante mundo de .NET.

As principais linguagens de programação utilizadas em .NET são: C#, VB.NET, F# e Delphi Prism, onde cada uma delas possui características próprias em termos de sintaxe, mas todas com o mesmo objetivo de facilitar ao programador o desenvolvimento de softwares.

As linguagens de programação são de extrema importância para quem atua na área de desenvolvimento de software, pois facilitam, agilizam e estruturam de forma organizada as soluções em informática, de maneira em geral, também chamadas de programas de computador.

Primeiros Passos com C#

Linguagens fortemente tipadas são aquelas em que a declaração do tipo de variável de programação é obrigatório. Todas as variáveis possuem um tipo específico que tem que ser declarado.

A linguagem C# (lê-se C Sharp) é uma linguagem de programação orientada a objetos fortemente tipada desenvolvida pela Microsoft e faz parte da plataforma .NET. A sua sintaxe foi baseada na linguagem C++ e ainda inclui bases de outras linguagens de programação, como Object Pascal e Java.

Durante o desenvolvimento da plataforma .NET, as bibliotecas foram escritas primordialmente em uma linguagem chamada Simple Managed C (SMC), que possuía um compilador próprio. Em janeiro de 1999, uma equipe de desenvolvimento foi escolhida pela Microsoft para desenvolver uma linguagem. Então, foi assim que teve início a criação de uma linguagem chamada Cool. E no ano de 2000, o projeto .NET era apresentado ao público na Professional Developers Conference (PDC), e a linguagem Cool foi renomeada e apresentada como C#.

Visual Basic .NET é uma linguagem de programação, que também foi criada pela Microsoft, totalmente orientada a objetos. De uma forma simples, é a evolução natural do Visual Basic 6.0. Nela ocorreram inovações na linguagem como uma nova estrutura de gerenciamento de erros, adição de namespaces, heranças e multithreading (capacidade de executar mais de uma funcionalidade ou processo ao mesmo tempo sem um interferir no outro).

É a solução de desenvolvimento para quem utilizava a linguagem baseada na sintaxe do Delphi, sendo assim uma evolução e adaptação para a programação em .NET. Delphi Prism permite desenvolver aplicativos web e aplicativos Windows, além de ser multiplataforma, utiliza os recursos presentes em .NET 4.0 e no Visual Studio 2010 integrando completamente com as principais funcionalidades para desenvolvimento.

Como exemplo de um compilador em .NET temos o compilador C#, representado pelo nome e para compilar um código fonte desenvolvido em uma linguagem de programação, no caso C#, basta indicar em uma linha de comando a instrução csc onde representa o código fonte ( Figura 2 ).

Após a análise semântica, o processo que entra em execução é a geração de código, este código é gerado em uma linguagem intermediária próxima a linguagem de máquina, em uma segunda etapa este código é transcodificado para a linguagem Assembly, desta forma o compilador reaproveita para trabalhar com diferentes instruções para diversos tipos de processadores. Em muitas situações antes dessa segunda etapa o código é analisado por um otimizador de código com o objetivo de reavaliar as instruções para tirar um melhor proveito.

A terceira etapa é realizada pela análise semântica, na qual são verificados, principalmente, os tipos de variáveis, verificações de fluxo de controle e verificações da existência única de declarações de variáveis, ou seja, se um mesmo nome de variável não foi declarado mais de uma vez. Como exemplo, o analisador semântico deve verificar se todas as variáveis foram declaradas, caso contrário será informado um erro, ou então, uma outra situação, seria a declaração de uma variável do tipo inteiro e atribuir valores não inteiros (com casas decimais), o analisador semântico também nos informará um erro.

A próxima etapa é composta pela análise sintática, onde a estrutura do código é analisada a partir dos tokens gerados pelo analisador léxico. Nesta etapa deve ser reconhecido como são formulados os comandos válidos na linguagem, dando sentido a uma linha de código informada. Por exemplo, em uma aplicação qualquer na linguagem de programação C#, a declaração do comando nome_variável string; geraria um erro sintático, pois a declaração está invertida, neste caso de propósito para demonstrar o erro, a regra sintática correta é a declaração do tipo variável nome_variável, ou seja, string nome_variável;.

Na etapa de compilação, a análise léxica é a primeira etapa a ser realizada em um código fonte, a análise léxica corresponde ao momento em que, a partir de um alfabeto ou dicionário de palavras, cada entrada de caracteres ou palavras é analisada lexicalmente (gramaticalmente) e convertida para símbolos léxicos também chamados de tokens. Um token tem o objetivo de facilitar a análise do código por um parser (leitor de saída do código). Caso alguma das palavras não seja reconhecida pelo analisador léxico, um erro é informado ao usuário, por exemplo, em uma aplicação Web ASP.NET na linguagem de programação C#, se for digitado o comando será gerado um erro léxico, pois o comando correto seria e a palavra Rediret não corresponde a nenhum token.

Um compilador é um programa capaz de traduzir um código fonte escrito em uma linguagem de programação em uma outra linguagem chamada de código objeto ou código que possa ser interpretado pela máquina. A linguagem de programação, também chamada de linguagem de programação de alto nível, que recebe este nome devido a ser uma linguagem mais direcionada a linguagem humana e distante da linguagem de máquina, sem que o programador se preocupe com as características relacionadas à arquitetura do computador, é transformada pelo compilador em uma linguagem de baixo nível a qual está diretamente relacionada à sua arquitetura, que entende de instruções de processador e registradores, como exemplo existe a linguagem Assembly.

Como última etapa entra em ação a máquina virtual do .NET que nada mais é que o processo responsável por interpretar o código IL e informar ao sistema operacional quais as tarefas que devem ser executadas. Nesta etapa entra em ação o CLR (Commom Language Runtime), também chamada de máquina virtual, nela que ocorre a chamada ao compilador JIT (Just In Time, ou tempo de execução) que é o responsável por traduzir ou codificar o código IL em um código nativo que o computador possa executar.

Ao planejar um aplicativo e digitar seu código fonte em uma determinada linguagem em .NET, como as descritas anteriormente, este arquivo pode ser compilado para gerar um arquivo executável na linguagem que o computador entenda. Ao iniciar o processo de compilação, o código fonte é verificado de acordo com os princípios básicos de um compilador (conforme foi explicado). Um dos passos é verificado pela CLS (Common Language Specification), ou seja, consiste na verificação de compatibilidade do código fonte com o modelo de desenvolvimento em .NET, além de sua estruturação de desenvolvimento. Outro passo é analisado pela CTS (Common Type System), onde é feita a verificação de tipos básicos da linguagem no código fonte.

As principais vantagens na sua utilização dizem respeito a maior facilidade na detecção e correção de erros, tendo em vista que um Framework atua de maneira pontual em uma aplicação, tornando mais eficiente a resolução de problemas. Suporta várias linguagens de programação, o gerenciamento de memória é realizado pelo sistema operacional e não pelo aplicativo, e seus aplicativos desenvolvidos em .NET são independentes do sistema operacional, visto que se baseia no conceito de Framework e precisa dele para ser executado.

O Framework deve possuir algumas características básicas entre elas ser reusável ou reaproveitado, bem documentado e fácil de usar. Deve permitir uma complementação de suas funções, ou seja, abstração para que o programador possa estender as funcionalidades de acordo com a necessidade, e, além disso, ter um nível de segurança, por exemplo, não deve permitir a remoção/exclusão do framework.

Um framework é um repositório que contém funcionalidades específicas para solucionar determinados tipos de problemas. O .NET Framework, desenvolvido pela Microsoft, é um pacote de classes com soluções codificadas para problemas comuns de programação, suporta várias linguagens de programação no ambiente .NET e fornece uma gama de recursos relacionados à interface com o usuário, acesso a dados, conectividade a banco de dados relacionais, criptografia, comunicações de rede e ambiente de desenvolvimento web. O conjunto dessas classes deve ser bastante flexível podendo permitir o desenvolvimento de aplicativos especificando apenas os detalhes da aplicação, ou seja, o uso das classes e suas funcionalidades.

Visual Studio

O desenvolvimento de sistemas para as pessoas que utilizavam as ferramentas de desenvolvimento da Microsoft, até meados do ano de 2002 era a linguagem Visual Basic utilizando uma ferramenta de desenvolvimento chamada de Visual Studio. O Visual Studio é um ambiente de desenvolvimento integrado que permite a quem o utiliza desenvolver, principalmente, aplicativos Windows, web e para dispositivos móveis. De maneira simples, o Visual Studio é a ferramenta utilizada para o desenvolvimento de um código fonte, como se fosse um editor de textos com vários recursos voltados à programação, compilação e execução de um aplicativo. O IDE (Integrated Development Environment) do Visual Studio (Figura 3) consiste, basicamente, em um editor de código fonte, um compilador com recursos para realizar análises de código (Debug), elementos visuais para facilitar e agilizar o desenvolvimento e ferramentas para geração e aperfeiçoamento de aplicativos.

Foi neste mesmo ano que surgiu a versão 1.0 do .NET Framework, com recursos próprios para o desenvolvimento orientado a objetos e desenvolvimento de aplicações voltadas para a web juntamente com a versão do Visual Studio 2002.

IDE consiste em um ambiente com recursos de desenvolvimento integrado com o objetivo de facilitar o desenvolvimento de softwares.

Figura 3. IDE do Visual Studio 2010.

Em 2003, surge a versão 1.1 do .NET Framework juntamente com a versão 2003 do Visual Studio, amplamente utilizado, o que impulsionou o desenvolvimento em .NET. Uma das características marcantes é que desde o início era possível escolher mais de um tipo de linguagem para desenvolvimento de dentro do próprio Visual Studio, as linguagens disponíveis eram: VB.NET, C#, C++ e J# (uma versão da Microsoft para desenvolvimento voltado para a sintaxe da linguagem Java).

No ano de 2005 é apresentada a versão 2.0 do .NET Framework e a versão 2005 do Visual Studio, foi nesta versão, principalmente, que o desenvolvimento de aplicativos web foi impulsionado, pois o desenvolvimento ficou mais simples e muitas ferramentas surgiram para o acesso a dados e criação de interfaces (uma interface representa a forma como um ser humano pode interagir com a aplicação, seja um formulário web, um botão, um texto, um grid, entre outros).

Como era de se prever, em novembro de 2007 foi lançado a versão 3.5 do .NET Framework, juntamente com a versão 2008 do Visual Studio, nessa versão era possível ver melhorias na conversão de projetos desenvolvidos nas versões anteriores e a principal característica, a adição da linguagem LINQ (Language-Integrated Query).

LINQ corresponde a uma sintaxe unificada, inicialmente incorporada às linguagens C# e Visual Basic, para consultas em fontes de dados variadas. A sintaxe de consulta da LINQ foi inspirada na da Structured Query Language (SQL), que é uma linguagem padrão para comunicação com bancos de dados relacionais. Antes da versão 3.5 do .NET Framework, existiu a versão 3.0, mas sem a criação de uma nova versão do Visual Studio, esta versão 3.0 foi marcada pela inclusão das tecnologias: Windows Presentation Foundation, Windows Communication Foundation, Windows Workflow Foundation e Windows CardSpace. São tecnologias voltadas a padronizar um modelo de programação, serviços da web e sistemas distribuídos.

E por fim, surge o .NET Framework 4.0 e a versão atual do Visual Studio 2010. Vem voltado com melhorias visuais com o novo IDE redesenhado em WPF, capacidade de utilizar múltiplos monitores permitindo uma fácil visualização e utilização do código, recursos de programação paralela que estavam faltando devido à necessidade de programação para ambientes de processadores com mais de um núcleo e muito mais.

Leave a comment