seminário - c#frank/ine5612/seminario2010.1/csharp.pdfhistórico desenvolvida pela microsoft com a...

22
Seminário - C# Equipe: Diorges, Leonardo, Luís Fernando, Ronaldo DSO II Desenvolvimento de Sistemas Orientados a Objetos 2

Upload: phamphuc

Post on 28-Oct-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

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.

Compilação do código

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.

Evolução do C#

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