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/