Você está na página 1de 10

1077327 Fabrcio Mastroianni

Especializao em Desenvolvimento de Projetos em .NET

C# - Principais Vantagens e Desvantagens


Orientador: Prof. Dr. Rodrigo de Oliveira Plotze

Centro Universitrio Claretiano

BATATAIS 2011

C# - Principais Vantagens e Desvantagens


RESUMO
resumir trabalho Palavras-chave: C#, Vantagens, Desvantagens, Linguagens de Programao, Ferramentas Microsoft

INTRODUO
Nos dias de hoje a variedade de linguagens de programao existentes muito grande, o que torna, em muitos casos, difcil a escolha entre uma e outra, uma vez que cada uma tem sua particularidade e, as vezes, muitas delas atendem apenas uma certa parte da necessidade, vindo a ser substituda no futuro. Ainda h casos, por exemplo, de empresas que desenvolvem utilizando COBOL j que esta linguagem ainda muito utilizada em sistemas bancrios. Em contrapartida h empresas que se recusam, por exemplo, a utilizar linguagens de programao desenvolvidas pela Microsoft, alegando no ser portvel para outras plataformas, como o Linux. Diante desse cenrio, algumas linguagens de programao tm se destacado e ganho bastante espao na preferncia das empresas e programadores, dentre elas a linguagem C# (leia-se c charp), desenvolvida pela Microsoft que suportada pela plataforma .NET Framework que abrange o poder e a versatilidade do Visual Basic, a fora e a criatividade do C++ e a inteligncia do Javascript. derivada do C e C++ e possui uma grande semelhana com a linguagem de programao Java. Dentro desse cenrio, vamos apresentar algumas vantagens e outras desvantagens dessa linguagem, de forma a auxiliarmos na deciso de escolha de qual linguagem de programao utilizar.

VANTAGENS
O C# possui grandes vantagens que fazem dele uma tima opo na escolha de qual linguagem de programao utilizar. Uma delas , com certeza, a utilizao de programao orientada a objetos. Porm o C# permite que a programao seja feita de forma estrutural e, como diferencial, orientando a eventos. A programao orientada a objetos um dos melhores recursos oferecidos por esta linguagem de programao, pois os cdigos podem ser utilizados facilmente atravs de heranas, polimorfismo e encapsulamento. Quanto a programao orientada a eventos, seria uma grande facilitadora oferecendo a possibilidade de no ter que programar linhas em Javascript para disparar eventos j existentes. Atravs do Exception o tratamento de erros tornou-se muito mais fcil, sendo que o prprio C# identifica e trata o erro. Outra facilidade o Garbage Collection, que faz a monitoria da memria utilizada, limpando objetos desnecessrios sem a necessidade do programador ficar controlando o despejo de memria por parte dos seus objetos. As bibliotecas DLL (Data Definition Language) e/ou componentes criados pelo C# no precisam mais ser registrados, bastando apenas invocar o objeto e utiliza-lo. O C#, por ser uma linguagem que utiliza o .Net Framework, pode ser reutilizada nas outras linguagens de programao da plataforma .NET, como por exemplo o ASP.Net, tornando o reaproveitamento de cdigo algo muito utilizado.

Veja nas tabelas abaixo algumas caractersticas e recursos do C#.


Caractersticas do C# Caracterstica Inspirado no C/C++ Implementao Boa parte da sintaxe foi inspirada no C/C++, especialmente declarao de variveis, funes e estruturas de controle. Suporta conceitos de programao orientada a objetos com a palavra reservada class. Herana simples de classes a partir de ancestral comum e herana mltipla de interfaces. Automtico, com coletor de lixo (Garbage Collection). Todas as atribuies tm os tipos validados. Os casts so sempre verificados em tempo de execuo. No

Orientao a objetos Herana Gerenciamento de memria Tipagem forte

possvel violar o sistema de tipos. Compila para cdigo intermedirio Tratamento de erro Reflections Unicode Classe que no pode ser herdada Campo constante Operador que verifica compatibilidade de tipos Sim, compila para Intermediate Language. Exceptions. Sim, suportam reflections. Usa o padro Unicode para representar caracteres e strings. Sealed const is

Fonte: adaptado de http://www.portaldaprogramacao.com/artigos2.asp?n=104 Recursos novos no C# Caracterstica Compilado para cdigo nativo C# Sempre compilado para cdigo nativo. A compilao pode ser feita na instalao ou na primeira execuo do programa.

Todos os tipos derivados de Sim, todos os tipos so derivados de object. ancestral comum Boxing e Unboxing Sim. converso de tipos por valor para tipos por referncia Structs e Enum Passagem de parmetros por referncia Propriedades Eventos e Delegates Sim. Sim, de duas maneiras: ref para parmetros de entrada e sada e out para parmetro apenas de sada. Sim, diretamente. A criao de componentes bastante facilitada. Sim. Um delegate um ponteiro de funo orientado a objetos, permitindo a associao de um evento de uma classe ao cdigo de outra de maneira conceitualmente simples e poderosa. Sim, permitindo etiquetar o cdigo com caractersticas que so interrogadas em tempo de execuo atravs de reflection. A princpio suporta referncias, mas os ponteiros podem ser usados em cdigo inseguro por questes de performance ou compatibilidade com DLLs. Sim.

Atributos

Ponteiros

Sobrecarga de operadores

Operadores de converso Operadores de cast

Sim. Dois, um semelhante ao C/C++ e o outro as. Um retorna null e outro dispara exception em casso de erro de converso. Sim.

Inteiros sem sinal

Tipo numrico pouco sujeito Sim, o tipo decimal pode ser usado em softwares que a erros de representao e no toleram facilmente erros de arredondamento, como arredondamento programas de contabilidade Forech: loop para varrer arrays e colees Campo readonly Documentao integrada em XML Sim. Sim. Sim, permitindo que o programador escreva facilmente a documentao enquanto programa. Este documentao pode depois ser extrada do fonte ou usada no prprio ambiente de desenvolvimento. Sim, facilitando o desenvolvimento. Sim. As palavras reservadas checked e unchecked permitem mudar o que o programa faz quando h um estouro de faixa numrica: o checked dispara uma exception; o unchecked no. Sim, de forma tipada, com a palavra reservada params. Quatro. O main pode aceitar um array de strings ou nada; pode retornar inteiro ou nada. Sim, com a restrio de que no pode entrar em um bloco. No existe relao direta entre o namespace e a DLL que o implementa, dando mais flexibilidade ao desenvolvedor na hora de quebrar seus projetos em pedaos menores. Cinco. O internal, adicional, especifica acesso apenas no mesmo assembly (mesma DLL, a grosso modo). Sim. Sim. Sim. Submetido e aceito pelo ECMA (http://www.ecma.ch). Sim.

Switch com strings Controle sobre estouro de faixa numrica

Funes com nmero varivel de parmetros Formas do mtodo Main Goto Arquivo executvel independente do namespace Especificadores de acesso Diretivas de compilao condicional (#ifdef etc) Destrutores Padronizao por algum organismo internacional Chama APIs do Windows e DLLs

Chama objetos COM/COM+ Sim. Cria objetos COM/COM+ Sim.

Fonte: adaptado de http://www.portaldaprogramacao.com/artigos2.asp?n=104

DESVANTAGENS

CONCLUSO

REFERNCIAS
http://pt.wikipedia.org/wiki/C_Sharp. Acessado em 05 de Dezembro de 2011.

http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_orientada_a_aspecto. Acessado em 05 de Dezembro de 2011.

http://forum.imasters.com.br/topic/280981-introducao-ao-c%23/. Acessado em 06 de Dezembro de 2011.

http://www.portaldaprogramacao.com/artigos2.asp?n=104. Acessado em 07 de Dezembro de 2011.

http://www.guj.com.br/java/1687-sera-que-c-e-melhor-que-java-huuuummmm. Acessado em 08 de Dezembro de 2011.