Document

Report
C#
Artur Rauen
Luciano Peixoto
Resumo
•
•
•
•
•
•
•
•
•
- O que é C#
- Histórico
- Características gerais
- Programa usado para desenvolvimento
- Ligações com .NET e linguagens Java e C
- Características mais detalhadas
- Códigos
- Componentes
- Projetos escritos em C#
O que é C#
• Linguagem de programação orientada a objetos ideal
para desenvolvimento de aplicaçoes web
• É considerado uma evolução do C++, do qual são
utilizadas algumas características, como declarações,
expressões e operadores.
• Utiliza muitas de regras de programação para reduzir
a possibilidade de erros
• C# também tem como objetivo permitir o
desenvolvimento de qualquer tipo de aplicação: Web
service, aplicação Windows convencional, aplicações
para serem executadas num palmtop ou handheld,
aplicações para Internet etc.
Histórico e curiosidades
• Criada pela Microsoft especificamente para a
plataforma .NET
• Inicada em 1999 por Anders Hejlsberg e equipe, com
nome de Cool.
• .NET é apresentada em 2000, e linguagem Cool é
renomeada para C#.
• O símbolo real seria o ♯ e não o #. Porém, devido a
limitação de telas, fontes, teclados e alguns
navegadores, no momento da normalização junto a
ECMA, foi feita a opçao pelo #
• Foi criada baseando-se nas linguagens C++ e Java.
• Tem como um dos principais editores, o Visual Studio
Microsoft Visual Studio
• O Microsoft Visual Studio é um pacote de
programas da Microsoft para desenvolvimento,
dedicado ao framework .NET e às linguagens Visual
Basic (VB), C , C++, C# e J#. Trata tambem de
desenvolvimento web na plataforma do ASP.NET
tendo como linguagens mais frequentes VB.NET
(Visual Basic .Net) e o C#.
• Versão atual é o Visual Studio 2010,
lançado em 12 de Abril.
Microsoft Visual Studio
C# e .NET
• C# é considerada a linguagem símbolo do .NET da
Microsoft
• Foi criada praticamente do zero, sem preocupações de
compatibilidade com código legado
• Seu compilador foi o primeiro a ser desenvolvido
• A maior parte das classes do .NET Framework foram
desenvolvidas em C#
• C# não possui em nenhuma implementação, qualquer
conjunto de bibliotecas. Elas são obtidas diretamente do
.NET
Introdução às características
•
Simplicidade
•
Completamente orientada a objetos
•
Fortemente tipada
•
Geração de código gerenciado
•
Tudo é um objeto
•
Controle de versões
•
Suporte a código legado
•
Flexibilidade
Características
• As operações aritméticas são verificadas
contra transbordamento de dados
• Suporta Garbage Collector, usado para a
manutenção de memória
• Suporta sobrecarga de métodos e de
operadores, mas não suporta argumentos
padrão.
Comparações entre C# com C e C++
• Ponteiros sem checagem só podem ser utilizados em
modo inseguro (unsafe mode).
• Objetos não são liberados explicitamente, só através
do Garbage Collector quando não há referências aos
mesmos, prevenindo assim referências inválidas
• Não é permitida herança múltipla, mas uma classe
pode implementar várias interfaces abstratas
• Algumas sintaxes diferentes, como por exemplo, na
declaração de vetores ("int[] a = new int[5]" ao invés
de "int a[5]").
Comparações entre C# Java
• O Java não implementa o goto como estrutura de
controle
• O Java utiliza comentários Javadoc e o C# utiliza
comentários baseados em XML.
• O C# possui indexadores. O Java tem Listeners.
• O Java utiliza a JVM, o C# o .Net Framework, Mono e
DotGnu.
• O Java pode ser compilado em qualquer plataforma,
o C# possui compiladores para Windows e Windows
Mobile(.NET) e Linux, Mac OS X e Solaris (Mono)
Assistente de conversão Java
• O Java Language Conversion Assistent (JLCA) é
uma ferramenta que, automaticamente,
converte códigos da linguagem Java em
linguagem C# para desenvolvedores que
querem migrar seus aplicativos.
• Atualmente na versão 3.0, foi construído
sobre a tecnologia de migração ArtinSoft e
converte automaticamente a maior parte de
códigos-fonte
Mais detalhes
• Tipos parciais e Generics, trabalham com
declarações de classes, estruturas e
interfaces. Tipos Parciais permitem que eles
sejam divididas em múltiplas partes em
diferentes arquivos fontes, e Generics
permite que sejam parametrizados pelos
tipos de dados que eles armazenam e
manipulam
• Implementaçao de Generic:
StackGenericsT<int> st = new
StackGenerics( );
Mais detalhes
• Programas escritos em C# rodam sob um
ambiente gerenciável: todo o controle de
memória é feito pelo .NET Framework,
reduzindo assim falhas na programação
enquanto a alocação e liberação de um objeto
na memória.
• Classes agrupadas com funções similares
– System.Drawing para gráficos,
– System.Collections para estrutura de dados
– System.Windows.Forms para o sistema
Windows Form.
Implementações
• Instanciação de objeto – exemplo:
– Pessoa pessoa = new Pessoa {nome = “João”};
• Propriedades automáticas
– public string nome {get; private set};
• Métodos extendidos
– Adicionar métodos a classes incluindo a palavra-chave this no
parâmetro do método em outra classe (estática)
public class HelloWorld
{
public static void Main()
{
System.Console.WriteLine(“Hello, world!");
}}
Exemplos de codigos
Palavras Chaves C#
Componentes
• Qualquer objeto escrito em C# é um
Component Object Model (COM)
• COM – É uma plataforma da Microsoft para
componentes de software. Eles são
reutilizaveis e podem ser desenvolvidos na
maiorias das linguagens de programação.
• DLL de negócio –É um COM, e contém uma
classe que pode ser reutilizada em vários
programas, linkado dinamicamente ao
programa.
•
Projetos Baseados em C#
http://www.youtube.com/watch?v=nCP5X2odU_M&feature=player_embedded#!
• XNA  Framework da Microsoft para jogos,
no qual são feitos jogos
de XBOX 360
Projetos Baseados em C#
Bibliografia
•
•
•
•
•
•
•
•
•
A Linguagem C# - Parte 3, Antonio J. V. Tavares
http://pt.wikipedia.org/wiki/C%E2%99%AF
http://pt.wikipedia.org/wiki/Microsoft_XNA
C# e .NET – Guia do Desenvolvedor, Edwin Lima e Eugenio
Reis
Como Programar ASP.NET e C#, Alfredo Lotar
Logica de Programaçao II – Aula 6: C#, Interfaces Graficas,
sem autor declarado
Exemplos Práticos de Programação Visual em C#, Paulo
Cortez e Helder Quintela
Guia para iniciantes em C# e .NET Micro Framework, GHI
Eletronics
http://www.arquivodecodigos.net/arquivo/tutoriais/csharp
/curso_completo/

similar documents