Upload
phamphuc
View
212
Download
0
Embed Size (px)
Citation preview
Seminário - C#
Equipe: Diorges, Leonardo, Luís Fernando, Ronaldo
DSO II
Desenvolvimento de Sistemas Orientados a Objetos 2
Roteiro
Breve HistóricoPlataforma .NET Características da Linguagem Sintaxe VersõesC# versus JAVAConsideraçõesBibliografia
Histórico
Desenvolvida pela Microsoft com a iniciativa .NET
Criada praticamente do zero para funcionar na nova plataforma
Maior parte das Classes do .NET é em C#
Anunciada em 2000 após aprovação da ECMA(ECMA-334)
Baseado em C ,C++ , Java e alguns recursos de VB.
Considerada a linguagem símbolo do .NET
Plataforma .NET
A plataforma .NET é executada sobre a CLR (common language runtime), interagindo com um framework. Esta CLR é capaz de executar mais de 20 linguagens de programação como se fosse uma só. Dentre elas: C#.O código é compilado em um byte code intermediário (MSIL) e interpretado pelo CLR.
Linguagem MultiparadigmaImperativaFuncionalGenéricaOrientada a ObjetosOrientada a Componentes
Fortemente TipadaCriada para ser:
SimplesModernaDe Propósito Geral
Características
Características
Desalocação automática de memória por Garbage CollectorPonteiros e Aritmética sem checagem só podem ser utulizados em uma modalidade especial - chamado modo inseguro (unsafe mode)Não existe método destrutorNão permite herança multiplaPermite implementar várias interfaces abstratasSuporte a Internacionalização Tipos primitivos semelhantes ao JAVA
Características
Utiliza XML para inclusão de novos componentesLinguagem totalmente CompiladaGTK# - Pacote de desenvolvimento de C# para Linux
Sintaxe
Baseada em C++, Java, Delphi, Smalltalk entre outros.Utiliza-se de:
ClassesHerançaPolimorfismo
Todos os tipos podem ser atribuídos a Object.Todos os tipos se comportam como Objetos.
Sintaxe - Tipos
Como na maioria das linguagem em que C# é baseada, esta também possui seus tipos primitivos que são suportados diretamente pelo compilador. Segue alguns destes tipos na tabela abaixo:
Tipo C# Tipo em .NET Descrição
bool System.boolean booleano
char System.Char Caracter unicode 16-bit.
String System.String String de caracteres unicode.
int System.int32 Inteiro de 32-bits com sinal
double Syste.double Flutuante 64-bits.
Lançada em 2005 junto com .NET 2.0 e visual studio 2005Principais novidades:
Generics - Facilitou a criação de tipos parametizadosPartials types - Permite a criação de classes divididas em vários arquivosIterators - Simplifica a criação de classes que utilizam foreach
C# 2.0
Generics - exemplo: public class MinhaLista<MYTYPE> { private ArrayList lista = new ArrayList(); public int Add(myType value) { return lista.Add(value); } public void Remove(myType value) { lista.Remove(value); } }
C# 2.0
C# 3.0
Lançada em 19 de Novembro de 2007, fazendo parte do .NET Framework 3.5Introdução de novas características:
Implicitly Typed Local Variables Extension MethodsTuples Colections and Objects InicializedAnonymous TypesQuery Expressions - LINQ (Language Integrated Query) permitem a realização de consultas diretamente em base de dados, documentos XML, estrutura de dados, coleção de objetos,etc. Usa uma sintaxe parecida com a linguagem SQL.
Bastante usado em programação FuncionalÉ uma Lista de valores fortemente tipada, tal como o conjunto de argumentos para um método.
C# 3.0 - Tuples
class Tuple<TFirst>{ TFirst primeiro; public Tprim Primeiro{ get{ return primeiro;} set { primerio = value;} } public Tuple (TFirst prim){ this.primeiro=prim; }}
static void Main(String[] args ){ Tuple<int> a = new Tuple <int>(5); System.Console.WriteLine(a.Primeiro);}
Define, declara e instancia um tipo e um objeto em um único passo (classe sem nome)Utiliza a idéia de Tuplas (conjunto de pares/valores) Limitado ao escopo Local
Exemplo:
C# 3.0 - Anonymous Types
Lançado em Abril de 2010 junto com visual studio 2010, é a atual versão da linguagemFoco na interoperabilidade com outras linguagens dinâmicamentes tipadas e frameworks Novidades:
Dynamic type - Novo tipo dynamic que pode receber qualquer objeto.Named arguments - Introduz parâmetros opcionais com valores default. Permite omitir argumentos para alguns parâmetros.Generic covariance - Converte os tipos ordenando do mais específico para o mais genérico Generic contravariant - Converte os tipos ordenando do mais genérico para o mais específico
C# 4.0
Dynamic type - exemplo:
dynamic d1 = 3; dynamic d2 = "um string"; dynamic d3 = System.DateTime.Today; dynamic d4 = System.Diagnostics.Process.GetProcesses();
C# 4.0
C# versus JAVA
C# JAVAImplementação de propriedades e
sobrecarga de operadoresImplementa Não implementa
Exceções checadas Não possui Possui
Comentário e Documentação Baseado em XML Javadoc
Suporte a indexadores e delegados Possui Não possui
Implementação do goto como estrutura de controle
Implementa Não implementa
Considerações Finais
Desvantagens
Qualquer coisa que não esteja no .NET será dificil de implementar (baixa flexibilidade).Programas e componentes antigos necessitam ser reescritosMuito "atrelado" a plataforma Windows. Projetos como o Mono tentam levar o C# para o Linux mas não com a mesma eficiência do .NET
Considerações Finais
Vantagens:
Maior interatividade com os internautas Uso de evento nos controles Não precisa registrar componentes Possui fácil validação de dados Fácil tratamento de erros.
Referências Bibliográficas
http://en.csharp-online.net/CSharp_Overview
http://en.wikipedia.org/wiki/C_Sharp_(programming_language)
http://blogs.msdn.com/b/csharpfaq/archive/2010/04/12/get-ready-for-c-4-0.aspxhttp://artigos.tekever.eu/ver/?151 http://code.msdn.microsoft.com/cs2010samples/Release/ProjectReleases.aspx?ReleaseId=1686
http://pontonetpt.com/blogs/paulomorgado/archive/2010/04/12/a-evolu-231-227-o-do-c.aspx