Você está na página 1de 4

C#- Introduo e Viso Geral

Nas ltimas duas dcadas, C e C++ foram as linguagens mais amplamente usadas
para o desenvolvimento de software comercial e de negcios. Embora as duas
linguagens proporcionem ao programador uma quantidade enorme de controle
granular, esta flexibilidade possui um custo para a produtividade. Comparadas com
uma linguagem como o Microsoft Visual Basic, aplicaes C e C++ equivalentes
freqentemente demoram mais para serem desenvolvidas. Devido a complexidade e
longos tempos de ciclo associados a essas linguagens, muitos programadores C e C++
vm procurando uma linguagem que oferea um melhor balanceamento entre poder e
produtividade.
Existem linguagens atualmente que aumentam a produtividade sacrificando a
flexibilidade que programadores C e C++ freqentemente demandam. Tais solues
restringem demais o desenvolvedor (por exemplo, omitindo um mecanismo para
controle de cdigo de baixo nvel) e proporcionam capacidades do menor denominador
comum. Elas no interoperam facilmente com sistemas pr-existentes, e nem sempre
combinam bem com as prticas de programao Web atuais.
A soluo ideal para programadores C e C++ seria o desenvolvimento rpido
combinado ao poder de acesso a funcionalidade total da plataforma bsica. Eles
desejam um ambiente totalmente sincronizado com os padres Web emergentes que
proporcione a fcil integrao com as aplicaes existentes. Adicionalmente,
desenvolvedores C e C++ gostariam de ter a habilidade de codificar em baixo nvel
quando e se a necessidade aparecer.
A Microsoft Introduz o C#
A soluo Microsoft para este problema uma linguagem chamada C# (pronunciada "C
sharp"). C# uma moderna linguagem orientada a objeto que habilita os
programadores a construir rapidamente uma ampla gama de aplicaes para a nova
plataforma Microsoft .NET, a qual proporciona ferramentas e servios que exploram
totalmente a computao e as comunicaes.
Devido ao seu elegante projeto orientado a objeto, C# uma escolha excelente para
arquitetar uma ampla gama de componentes - de objetos de negcio de alto nvel a
aplicaes no nvel do sistema. Usando construes de linguagem C# simples, estes
componentes podem ser convertidos em servios Web, permitindo que eles sejam
invocados pela Internet, a partir de qualquer linguagem rodando em qualquer sistema
operacional.
Principalmente, C# projetado para trazer desenvolvimento rpido para o
programador C++ sem sacrificar o poder e o controle que tm sido a caracterstica
fundamental do C e C++. Devido a esta herana, C# possui um alto grau de fidelidade
com C e C++. Desenvolvedores familiarizados com estas linguagens podem se tornar
produtivos em C# rapidamente.
Produtividade e Segurana
A nova economia Web -onde os concorrentes esto a apenas um clique de distncia -
est forando as empresas a responder aos desafios competitivos mais rapidamente do
que nunca. Desenvolvedores so chamados para diminuir tempos de ciclo e produzir
revises mais incrementais de um programa, ao invs de uma nica verso
monumental.
C# projetado com estas consideraes em mente. A linguagem projetada para
ajudar os desenvolvedores a fazer mais com um nmero menor de linhas de cdigo e
menos oportunidades de erro.
Abraa os padres emergentes de programao Web
O novo modelo para desenvolvimento de aplicaes significa que mais e mais solues
requerem o uso de padres Web emergentes tais como Hypertext Markup Language
(HTML), Extensible Markup Language (XML) e Simple Object Access Protocol (SOAP).
Ferramentas de desenvolvimento existentes foram desenvolvidas antes da Internet ou
quando a Web conforme ns a conhecemos hoje estava na sua infncia. Como
resultado, elas nem sempre proporcionam a melhor forma de trabalhar com as novas
tecnologias Web.
Programadores C# podem utilizar um framework extensivo para construo de
aplicaes na plataforma Microsoft .NET. C# inclui suporte pr-construdo para
transformar qualquer componente em um servio Web que pode ser invocado pela
Internet - a partir de qualquer aplicao rodando em qualquer plataforma.
O que ainda melhor, o framework dos servios Web pode tornar os servios Web
existentes iguais a objetos C# nativos para o programador, permitindo assim que os
desenvolvedores utilizem os servios Web existentes com as habilidades de
programao orientada a objeto que eles j possuem.
Existem mais recursos sutis que tornam o C# uma excelente ferramenta de
programao Internet. Por exemplo, o XML est emergindo como a forma padro de
passar dados estruturados pela Internet, que freqentemente so muito pequenos.
Para performance melhorada, C# permite que os dados XML sejam mapeados
diretamente em um tipo de dados struct ao invs de uma classe. Esta uma forma
mais eficiente de tratar pequenas quantidades de dados.
Elimina erros de programao de alto custo
Mesmo os programadores C++ mais experientes podem cometer o mais simples dos
erros - esquecer de inicializar uma varivel, por exemplo - e freqentemente estes
erros simples resultam em problemas no previstos que podem permanecer no
descobertos por longos perodos de tempo. Uma vez que um programa est em uso na
produo, pode ser muito custoso corrigir mesmo o mais simples erro de programao.
O projeto moderno do C# elimina os erros de programao C++ mais comuns. Por
exemplo:
Garbage collection libera o programador da sobrecarga do gerenciamento de
memria manual.
Variveis no C# so inicializadas automaticamente pelo ambiente.
Variveis so type-safe.
O resultado final uma linguagem que torna bem mais fcil para os desenvolvedores
escrever e manter programas que resolvem problemas de negcio complexos.
Reduz os custos de desenvolvimento do dia a dia com suporte pr-construdo
para versioning
Atualizao de componentes de software uma tarefa com alta probabilidade de erro.
Revises feitas no cdigo podem alterar no intencionalmente a semntica de um
programa existente. Para auxiliar o desenvolvedor neste problema, C# inclui o suporte
a versioning na linguagem. Por exemplo, a sobrescrita de mtodo deve ser explcita;
ela no pode acontecer de forma inadvertida como no C++ ou Java. Isto ajuda a evitar
erros de codificao e preserva flexibilidade de versioning. Um recurso relacionado o
suporte nativo para interfaces e herana de interface. Estes recursos habilitam
frameworks complexos a serem desenvolvidos e evoludos com o tempo.
Em conjunto, estes recursos tornam mais robusto o processo de desenvolvimento de
verses posteriores de um projeto, reduzindo assim os custos gerais de
desenvolvimento para as verses sucessivas.
Poder, Expressividade e Flexibilidade
Melhor mapeamento entre processos de negcio e implementao
Com o alto nvel de esforo gasto pelas corporaes no planejamento de negcio,
imperativo ter um forte conexo entre os processos abstratos de negcio e a
implementao real de software. Mas a maioria das ferramentas de linguagem no
possui uma forma fcil de unir lgica de negcio ao cdigo. Por exemplo, os
desenvolvedores provavelmente utilizam comentrios de cdigo hoje em dia para
identificar quais classes formam um objeto de negcio abstrato particular.
A linguagem C# permite metadados extensveis typed que podem ser aplicados a
qualquer objeto. Um arquiteto de projeto pode definir atributos especficos de domnio
e aplic-los a quaisquer classes de elemento da linguagem, interfaces e assim por
diante. O desenvolvedor pode ento examinar via programao os atributos de cada
elemento. Isto torna fcil, por exemplo, escrever uma ferramenta automatizada que
garantir que cada classe ou interface est identificada corretamente como parte de
um objeto de negcio particular, ou simplesmente criar relatrios com base nos
atributos especficos de domnio de um objeto. A forte unio entre os metadados
customizados e o cdigo do programa ajuda a fortalecer a conexo entre o
comportamento pretendido do programa e a implementao real.
Interoperabilidade extensiva
O ambiente type-safe gerenciado apropriado para a maioria das aplicaes
corporativas. Mas a experincia mostra que algumas aplicaes continuam a exigir
cdigo "nativo", ou por razes de performance ou para interoperar com interfaces de
programao de aplicao (APIs) existentes. Estes cenrios podem forar os
desenvolvedores a usar C++ mesmo quando eles prefeririam usar um ambiente de
desenvolvimento mais produtivo.
C# enderea estes problemas da seguinte forma:
Incluindo suporte nativo para o Component Object Model (COM) e APIs
baseadas em Windows.
Permitindo o uso restrito de ponteiros nativos.
Com C#, cada objeto automaticamente um objeto COM. Desenvolvedores no tm
mais que implementar explicitamente interfaces IUnknown e outras interfaces COM. Ao
invs disto, estes recursos so pr-construdos. De forma similar, programas C#
podem usar nativamente objetos COM existentes, independente da linguagem usada
para sua criao.
Para os desenvolvedores que precisam disto, C# inclui um recurso especial que habilita
um programa a chamar qualquer API nativa. Dentro de um bloco de cdigo marcado
especialmente, desenvolvedores podem usar ponteiros e recursos C/C++ tradicionais
tais como memria gerenciada manualmente e aritmtica de ponteiro. Esta uma
enorme vantagem sobre os outros ambientes. Isto significa que programadores C#
podem construir sobre sua base de cdigo C e C++ existente, ao invs de descart-la.
Nos dois casos - suporte a COM e acesso API nativo - a inteno proporcionar ao
desenvolvedor o poder e o controle essenciais sem ter que deixar o ambiente C#.
Concluso
C# uma linguagem orientada a objeto moderna que habilita os programadores a
construir rpida e facilmente solues para a plataforma Microsoft .NET. O framework
proporcionado permite que os componentes C# se tornem servios Web que esto
disponveis pela Internet, a partir de qualquer aplicao rodando em qualquer
plataforma.
A linguagem melhora a produtividade do desenvolvedor e serve para eliminar erros de
programao que podem levar a custos de desenvolvimento aumentados. C# traz o
desenvolvimento Web para o programador C e C++ e mantm o poder e flexibilidade
que estes desenvolvedores demandam.
ltima Atualizao: 26/06/00
2000 Microsoft Corporation. Todos os direitos reservados. Termos de Uso.
Retirado do Portal da Linguagem C

Recursos Adicionais

Referncia C# na Biblioteca MSDN Online

C# Download de Referncia de Linguagem

Você também pode gostar