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.


Guia do artigo:

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

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.[/lead]

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.

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.

Linguagens de programação

A forma como podemos interagir com uma máquina é descrita pela linguagem de programação. Uma linguagem de programação é composta por instruções padronizadas para expressar tarefas a um computador. Ela é caracterizada por comandos próximos à linguagem humana, possuindo determinadas características léxicas, sintáticas e semânticas capazes de serem interpretadas por um compilador e traduzidas para a linguagem de máquina. De uma maneira usual é a forma como uma pessoa pode indicar um conjunto de instruções a serem executadas pelo computador.

Confira também

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.

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.

C#

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

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.

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.

VB.NET

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

Um namespace é um recipiente que contém um conjunto de tipos com funcionalidades específicas que podem ser instanciadas ou adicionadas em um projeto de desenvolvimento, seu principal objetivo é criar uma estrutura hierárquica de elementos.

F#

F# é uma linguagem de programação que oferece suporte para programação funcional, além da programação orientada a objetos. Como um membro recente em .NET, a linguagem fornece segurança de tipos, desempenho e habilidade de trabalhar como uma linguagem de script. A programação funcional estimula o uso de uma grande variedade de formas, principalmente de funções matemáticas, que estimulam o uso de seus resultados como parâmetros para outras funções que podem ser consideradas parâmetros de entrada dessas funções ou resultados das mesmas.

Delphi Prism

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

Compilador

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.

O compilador pode ser subdividido em algumas partes no processo chamado de compilação, que é o momento em que o código da linguagem de programação é transformado em código objeto. Tais partes correspondem ao Analisador Léxico, Analisador Sintático, Analisador Semântico e Gerador de Código.

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 Response.Rediret(www.meusite.com); será gerado um erro léxico, pois o comando correto seria Response.Redirect(www.meusite.com); e a palavra Rediret não corresponde a nenhum token.

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

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.

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.

Em resumo, estes são os processos envolvidos na compilação de um código fonte de uma determinada linguagem até a geração de um código que a máquina seja capaz de identificar. A Figura 1 demonstra as fases da compilação de um código.

Fases da compilação de um código
Figura 1. Fases da compilação de um código.

Como exemplo de um compilador em .NET temos o compilador C#, representado pelo nome csc.exe, 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 arquivo.cs, onde arquivo.cs representa o código fonte (Figura 2).

Compilador C#, compilação e execução do aplicativo
arquivo.exe gerado
Figura 2. Compilador C#, compilação e execução do aplicativo arquivo.exe gerado.

A compilação em .NET

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.

Após as etapas anteriores, o fonte é codificado para um código de linguagem intermediária chamada de IL (Intermediate Language) ou CIL (Commom Intermediate Language) ou ainda MSIL (Microsoft Intermediate Language), semelhante a uma linguagem Assembly. Este código IL permite que o conjunto de instruções codificadas fique independente de plataforma e que seja capaz de ser traduzido por qualquer ambiente que possua suporte a .NET.

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.

Na CLR também está presente o GC (Garbage Collector) que é o responsável por analisar endereços de memória não referenciados e liberá-los para que outros aplicativos possam utilizar, ou seja, otimizar a alocação de memória.

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

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.

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.

Existe um projeto chamado Mono que tem por objetivo permitir a execução de aplicativos .NET em outras plataformas, como Linux.

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.

IDE do Visual Studio 2010
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.

WPF também conhecido como Windows Presentation Foundation é caracterizado por ser um subsistema ou biblioteca de recursos gráficos capazes de renderizar interfaces gráficas para aplicativos Windows.

Principais janelas do Visual Studio 2010

Ao desenvolvermos um projeto no Visual Studio 2010, através do menu View (Figura 4), é possível acessar algumas opções de janelas disponíveis, basta clicar na desejada ou então utilizar as teclas de atalho caso estejam disponíveis. Das principais, pode-se destacar: a janela Code que é onde será escrito o código fonte, a janela Designer onde será construída e visualizada a interface gráfica, a janela Solution Explorer, local que nos indica os projetos presentes dentro de nossa solução (ou projeto base) e nos fornece informações sobre cada um dos itens pertencentes ao projeto, a janela Server Explorer que é um gerenciador de conexões para fontes de dados, nela você poderá gerenciar e conectar a fontes de dados como um servidor de banco de dados SQL Server, a janela Class View que nos indica uma forma fácil de visualizar a estrutura de classes do projeto e a janela Object Browser que apresenta a estrutura hierárquica de cada objeto e os membros que pertencem a ela.

O menu View e suas opções
Figura 4. O menu View e suas opções.

A janela ToolBox (Figura 5) indica os controles ou componentes que podem ser utilizados em um projeto. Esta janela é agrupada por tipos de componentes e alguns dos componentes podem aparecer de acordo com o tipo de projeto selecionado (Aplicação Windows ou Web). Para utilizá-los basta clicar no componente desejado e adicioná-lo no Designer da sua interface.

A janela ToolBox
Figura 5. A janela ToolBox.

A janela Toolbox pode ser personalizada de acordo com sua necessidade, para isso clique com o botão direito do mouse sobre a janela e escolha a opção choose items, ali estarão presentes vários outros itens disponíveis para o ambiente.

Os controles disponíveis e acessados na janela Toolbox possuem características específicas, tais características podem ser vistas na janela Properties (Figura 6) de cada controle. De acordo com a figura, os itens destacados em vermelho correspondem a: (ID) representa o nome do controle (no caso Button1), System.UI.WebControls.Button representa o tipo do controle (sendo System.UI.WebControls o namespace e Button o tipo propriamente dito) , Enabled significa habilitar ou desabilitar o controle, Font indica qual a fonte e suas características (tamanho, tipo, negrito, itálico, sublinhado) que será usada para o controle, Text representa o texto que será mostrado no controle e o item circulado representa a aba de possíveis eventos para o controle (por exemplo ao controle receber um clique do mouse).

A janela de propriedades
de um controle
Figura 6. A janela de propriedades de um controle.

Solution Explorer

É o local onde pode ser gerenciado um projeto ou um conjunto de projetos pertencentes a uma solução, fornecendo informações de forma simples e visual de todos os itens presentes em seus projetos. Além disso, tarefas comuns de manipulação de arquivos também podem ser realizadas. A Solution Explorer (Figura 7) é bastante flexível permitindo trabalhar de forma independente nos seus projetos, código fonte e arquivos de maneira geral que não precisam estar diretamente relacionados a um projeto.

Itens presentes em uma Solution Explorer
Figura 7. Itens presentes em uma Solution Explorer.

Ao selecionar um item na Solution Explorer e clicar com o botão direito do mouse, um menu com várias opções é apresentado, dependendo do tipo de arquivo, este menu pode apresentar tarefas simples (como visualizar o código, copiar, colar, excluir o arquivo e excluir do projeto) e, também, tarefas mais complexas (no caso de um projeto) como compilar o projeto, adicionar novos itens, adicionar itens existentes e iniciar a execução de um aplicativo.

Tipos de Projetos e Templates

Para desenvolver um aplicativo é necessário realizar um planejamento da solução a ser implementada e escolher o seu tipo de projeto. Existem vários tipos de projetos que podem ser criados no Visual Studio 2010, dentre os principais, podemos citar: Class Library (biblioteca de funções sem a presença de uma interface com o usuário), Console Application (uma aplicação de console ou por linha de comando), Database Project (projeto relacionado a um Banco de Dados, podendo conter scripts ou comandos SQL), Device Application (aplicação voltada a dispositivos smart-device), Empty Project (projeto em branco), SQL Server Project (projeto voltado ao Banco de Dados SQL Server, manutenção de objetos(tabelas), Web Service (aplicativo web com funcionalidades específicas sem a presença de uma interface com o usuário), Web Site (aplicativo da web desenvolvido com ASP.NET), Windows (aplicativo Windows com uma interface definida para este ambiente), Windows Service (aplicativo Windows com funções específicas sem a presença de uma interface com o usuário), WPF Browser Application (aplicação web baseada nos conceitos da Windows Presentation Foundation).

No momento de adicionar um novo projeto, um menu com vários modelos de projetos pré-existentes é apresentado, tal menu pode ser agrupado por tipo de projeto e funcionalidade, a esses modelos de projetos é dado o nome de Templates (Tabela 1).

Tipo de Template

Modelo de Projeto

Descrição

Windows Templates

Class Library

Usado para criar bibliotecas de classes e funcionalidades específicas.

Windows Templates

Console Application

Aplicações do tipo console ou linha de comando.

Windows Templates

Empty Project

Projeto em branco ou vazio.

Windows Templates

Windows Forms Application

Aplicativo do tipo Windows.

Windows Templates

Windows Forms Control Library

Usado para criar controles customizados para serem utilizados em aplicativos Windows.

Windows Templates

Windows Service

Cria serviços do Windows sem interface com o usuário.

Windows Templates

WPF Application

Utilizado para criar aplicativos com interface usando os princípios da WPF.

Windows Templates

WPF User Control Library

Permite criar controles customizados utilizando as funcionalidades básicas de WPF.

Windows Templates

WPF Browser Application

Cria uma aplicação utilizando WPF capaz de ser executada em um navegador web.

Windows Templates

WPF Custom Control Library

Usado para criar uma biblioteca de funções customizadas utilizando a tecnologia WPF.

Web Templates

ASP.NET Web Application

Possui a funcionalidade de criar um aplicativo para web.

Web Templates

ASP.NET MVC 2 Web Application

Aplicação web utilizando o modelo model view controller.

Web Templates

ASP.NET Empty Web Application

Projeto web em branco.

Web Templates

ASP.NET Dynamic Data Entities Web Application

Usado para criar um aplicativo web que utilize um banco de dados relacional.

Web Templates

ASP.NET Dynamic Data Linq to SQL Web Application

Modelo utilizado para criar um aplicativo web que utilize LINQ para acessar as informações de um banco de dados.

Web Templates

ASP.NET Server Control

Utilizado para desenvolvimento de controles do tipo server-control que possam ser reaproveitados.

Web Templates

ASP.NET AJAX Server Control

Desenvolvido para criar controles de servidor e cliente utilizando tecnologia AJAX.

Web Templates

ASP.NET AJAX Server Control Extender

Usado para implementar controles estendidos AJAX de controles já existentes.

Tabela 1. Descrição de alguns modelos de Templates presentes no Visual Studio 2010

ASP.NET MVC 2 é um modelo de visualização e controle que permite diferenciar e separar os controles de uma aplicação web, desta forma, destacando cada parte do aplicativo, facilitando e aumentando a produtividade.
AJAX é um padrão de bibliotecas que permitem, principalmente do lado do cliente, a definição de modelos customizados e ágeis para visualização de dados em páginas web.

Assemblys, Namespaces e Class Librarys

Assembly é um conjunto de tipos e recursos capazes de se agrupar e interagir para formar funcionalidades de bibliotecas distintas. Além disso, o assembly contém toda a especificação de como os elementos se relacionam e quais as suas dependências entre si. Um Assembly pode consistir em um ou mais arquivos, esses arquivos de código recebem o nome de módulos, que podem estar agrupados formando um conjunto de módulos. O código gerado de um assembly é codificado na linguagem intermediária IL, conforme foi descrito anteriormente.

Um namespace, de forma simplificada, organiza os objetos ou funcionalidades de um assembly, cada namespace contém tipos básicos que podem ser utilizados em aplicativos. O namespace tem por principal objetivo evitar a redundância de definições de nomes, além de tentar organizar e agrupar por tipos de objetos semelhantes ou com funcionalidades parecidas. Exemplo: O namespace definido por System.IO possui funcionalidades específicas para entrada e saída de dados.

Uma Class Library básica pode ser definida como um conjunto de bibliotecas padrões para serem utilizadas em .NET, possuindo funções determinadas para tratamento de entrada e saída de arquivos, processamento gráfico, utilização de banco de dados, funções matemáticas e lógicas dando um determinado grau substancial para o desenvolvimento de aplicativos. Cada funcionalidade estará contida em um local específico, o que permite chamá-la de acordo com a necessidade, evitando assim que uma grande carga de funções sejam instanciadas em memória (com chamada ou uso desnecessário) e acelerando o tempo de inicialização de um aplicativo. Por padrão as bibliotecas de classe do .NET (Tabela 2) desenvolvidas pela Microsoft iniciam-se pelas palavras Microsoft ou System.

Namespace

Descrição

Microsoft.Csharp

Contém classes que oferecem suporte a compilação e geração de código na linguagem C#.

Microsoft.Win32

Fornece classes que tratam os eventos gerados pelo sistema operacional e registro do sistema.

Microsoft.WindowsCE.Forms

Contém classes para desenvolvimento em Pocket PC.

System

Permite acesso às classes fundamentais e classes base, referências, valores, tipos primários e tratamentos de exceções.

System.Configuration

Possui os tipos que permitem manipular arquivos de configuração.

System.Data

Contém classes que permitem o acesso a dados e gerenciamento dos mesmos.

System.Data.Oledb

São as classes que permitem acesso a fonte de dados de um determinado tipo, no caso, Oledb (uma conexão oledb permite acesso a diversos tipos de fontes de dados).

System.Net

Fornece uma interface de programação para recursos de rede.

System.Text

Permite acesso a classes que representam diversas codificações de caracteres, como os modelos ascii e unicode.

System.Web

Fornece classes e interfaces para comunicação no âmbito navegador-servidor.

System.Web.Security

Classe utilizada para implementar segurança em ASP.NET.

Tabela 2. Descrição de alguns namespaces básicos em .NET.

Design no Visual Studio

Ao se criar um aplicativo, seja ele baseado em princípios web ou windows, o Visual Studio permite que seja trabalhado em seu Design, um ambiente gráfico voltado para a parte visual da interface. Esta interface pode ser um formulário ou um conjunto de formulários, que nada mais é, que um objeto de determinado tipo que possui características próprias e propriedades específicas para facilitar e acelerar o desenvolvimento, aumentando assim a produtividade. É no design que podemos adicionar controles, que podem variar de acordo com o objetivo da aplicação e o tipo de aplicação desenvolvida, como exemplo, podem ser adicionado botões, imagens, menus e grid para tratamento, manipulação e interação de informações com o usuário do aplicativo.

A principal vantagem do design é a sua visibilidade gráfica (Figura 8) permitindo visualizar em tempo real o que está sendo planejado e desenvolvido. Nesta figura foi incluído um formulário Windows contendo: um controle de Label (Texto), controle de TextBox (para receber um texto), controle Button (botão) e um controle PictureBox (descrito pela imagem), observe que estamos na aba de Design (descrito pelo nome da aba, Form1.cs [Design]) e o código da aplicação está apresentado na aba de código representada por Form1.cs.

Design de um formulário Windows no Visual Studio
2010
Figura 8. Design de um formulário Windows no Visual Studio 2010.

Dessa forma, você pode utilizar a IDE do Visual Studio, pode criar seus formulários, onde um formulário pode ser considerado a base de uma determinada aplicação, ele é como se fosse uma folha em branco pronta para você planejar o seu design adicionando controles para criação de uma interface amigável e funcional para o usuário, lembrando que por trás desta interface sempre existirá um código fonte escrito em uma determinada linguagem de programação para que o aplicativo execute alguma tarefa.

Web Forms

Um web form é o principal meio de comunicação de um aplicativo web com o usuário, como o próprio nome diz é um formulário para a web que possui características próprias semelhantes a um formulário Windows, também podendo ter seu layout planejado e estruturado na janela de design. As principais vantagens no seu uso são: separação do código HTML da interface com o código da lógica de programação, modelo de programação em eventos e a adição de controles no lado servidor, ainda em tempo de design, utilizando os controles disponíveis no Visual Studio relacionados ao desenvolvimento Web.

Os controles para uso em um web form são subdivididos em dois tipos: controles HTML (HTML controls) e controles de web form (web form controls). Controles HTML são mais básicos e os mesmos controles utilizados em linguagem HTML convencional, controles tipo Button, Text Field, Password Field, CheckBox, Radio Button, Table, Image e ListBox, como se estivesse desenvolvendo um site sem recursos em .NET.

Já os controles web form controls (Tabela 3) herdam suas propriedades de uma classe base, a System.Web.UI.WebControls, as suas principais propriedades em comum são: BackColor (indicando a cor de fundo), Enabled (se o controle está habilitado ou ativo), Font (descrição da fonte que será usada e suas características), ForeColor (indicando a cor da frente), TabIndex (informa a ordem do controle no web form), Visible (indica se o controle está visível), Width (indica a largura do controle).

Controle

Descrição do Controle

Label

Mostra um texto em uma página.

TextBox

Permite que o usuário informe um texto em uma área pré-determinada.

Button

Um botão que poderá acionar algum evento quando ele for clicado.

LinkButton

Um botão semelhante a link que retorna ao servidor um comando como se fosse um hyperlink tradicional em html.

ImageButton

Mostra uma imagem em uma determinada área.

Hyperlink

Um hyperlink normal que corresponde a um evento quando clicado.

DropDownList

Uma lista em formato estilo dropdown onde são visualizadas as informações com base em um texto específico ou uma fonte de dados.

ListBox

Permite visualizar as informações em formato de lista semelhante ao controle HTML podendo ainda estar relacionado a uma fonte de dados.

DataGrid / GridVew

Tem a função de visualizar as informações de uma fonte de dados no formato de tabela.

DataList

Cria uma lista não tabulada com formato pré-determinado para mostrar os dados de uma fonte.

Repeater

Possibilita a criação de um template onde os itens são adicionados e percorridos um a um em uma lista de uma fonte de dados.

CheckBox

Semelhante ao controle checkbox presente em páginas html.

CheckBoxList

Possibilita criar uma lista de checkbox para se trabalhar em conjunto.

RadioButton

Semelhante ao controle radiobutton presente em páginas html.

RadioButtonList

Permite mostrar uma lista agrupada de radiobuttons.

Image

Um controle para visualização de imagens.

Panel

Controle usado para agrupar outros controles.

Tabela 3. Descrição dos principais controles utilizados em um Web Form.

IntelliSense

Quando se deseja desenvolver um aplicativo, uma das principais funcionalidades para um bom editor de códigos, e uma funcionalidade extremamente interessante em um IDE, é o recurso chamado de IntelliSense. O IntelliSense é uma facilidade criada para agilizar e auxiliar o programador quando se está digitando um código, dessa forma eliminando dúvidas e acelerando o desenvolvimento.

No Visual Studio 2010 ela está melhorada, ao invés de mostrar uma lista longa e completa de itens esta lista é diminuída a cada tecla que é digitada, além disso, a busca é feita pela palavra informada em qualquer parte do texto (Figura 9), por exemplo, ao digitar textchanged a palavra é pesquisada com qualquer ocorrência, inclusive as palavras que iniciam e que contenham o texto mencionado.

IntelliSense no Visual Studio 2010
Figura 9. IntelliSense no Visual Studio 2010.

Outra funcionalidade do IntelliSense no Visual Studio 2010 é o padrão de busca utilizando determinada nomenclatura, dessa forma, se sabemos o que procurar o IntelliSense nos indicará rapidamente os possíveis complementos da palavra (Figura 10).

IntelliSense utilizando um texto pré-determinado
Figura 10. IntelliSense utilizando um texto pré-determinado.

Conclusão

Como pode ser visto no artigo, vários assuntos vinculados à programação e ao .NET foram tratados. Foi introduzido o conceito de linguagem de programação, explicado algumas das linguagens e como uma linguagem de programação influencia no processo de compilação realizado por um compilador.

O conceito de framework foi explicado além de termos como assemblys, namespaces e class library, deixando o leitor familiarizado com tais termos no mundo de .NET. Dessa forma, deixando-o apto a iniciar a programação na ferramenta Visual Studio 2010. O Visual Studio foi introduzido, dando um breve histórico em suas versões e a evolução até os dias atuais, com isso, o leitor ficou com um bom embasamento teórico nesta área.

As principais telas do Visual Studio 2010, normalmente as mais usadas, foram vistas com o objetivo de facilitar e agilizar ainda mais o aprendizado. Sendo assim, só resta dizer ao leitor, tenha muito prazer em iniciar a programar em .NET com o Visual Studio 2010, um grande abraço e até a próxima.