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

Seminário - C#frank/INE5612/Seminario2010.1/CSharp.pdfHistórico Desenvolvida pela Microsoft com a iniciativa .NET Criada praticamente do zero para funcionar na nova plataforma Maior

Oct 28, 2018

Download

Documents

phamphuc
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Seminário - C#frank/INE5612/Seminario2010.1/CSharp.pdfHistórico Desenvolvida pela Microsoft com a iniciativa .NET Criada praticamente do zero para funcionar na nova plataforma Maior

Seminário - C#

Equipe: Diorges, Leonardo, Luís Fernando, Ronaldo

DSO II

Desenvolvimento de Sistemas Orientados a Objetos 2

Page 2: Seminário - C#frank/INE5612/Seminario2010.1/CSharp.pdfHistórico Desenvolvida pela Microsoft com a iniciativa .NET Criada praticamente do zero para funcionar na nova plataforma Maior

Roteiro

Breve HistóricoPlataforma .NET Características da Linguagem Sintaxe VersõesC# versus JAVAConsideraçõesBibliografia

Page 3: Seminário - C#frank/INE5612/Seminario2010.1/CSharp.pdfHistórico Desenvolvida pela Microsoft com a iniciativa .NET Criada praticamente do zero para funcionar na nova plataforma Maior

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

Page 4: Seminário - C#frank/INE5612/Seminario2010.1/CSharp.pdfHistórico Desenvolvida pela Microsoft com a iniciativa .NET Criada praticamente do zero para funcionar na nova plataforma Maior

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.

Page 5: Seminário - C#frank/INE5612/Seminario2010.1/CSharp.pdfHistórico Desenvolvida pela Microsoft com a iniciativa .NET Criada praticamente do zero para funcionar na nova plataforma Maior

Compilação do código

Page 6: Seminário - C#frank/INE5612/Seminario2010.1/CSharp.pdfHistórico Desenvolvida pela Microsoft com a iniciativa .NET Criada praticamente do zero para funcionar na nova plataforma Maior

Linguagem MultiparadigmaImperativaFuncionalGenéricaOrientada a ObjetosOrientada a Componentes

Fortemente TipadaCriada para ser:

SimplesModernaDe Propósito Geral

Características

Page 7: Seminário - C#frank/INE5612/Seminario2010.1/CSharp.pdfHistórico Desenvolvida pela Microsoft com a iniciativa .NET Criada praticamente do zero para funcionar na nova plataforma Maior

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

Page 8: Seminário - C#frank/INE5612/Seminario2010.1/CSharp.pdfHistórico Desenvolvida pela Microsoft com a iniciativa .NET Criada praticamente do zero para funcionar na nova plataforma Maior

Características

Utiliza XML para inclusão de novos componentesLinguagem totalmente CompiladaGTK# - Pacote de desenvolvimento de C# para Linux

Page 9: Seminário - C#frank/INE5612/Seminario2010.1/CSharp.pdfHistórico Desenvolvida pela Microsoft com a iniciativa .NET Criada praticamente do zero para funcionar na nova plataforma Maior

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.

Page 10: Seminário - C#frank/INE5612/Seminario2010.1/CSharp.pdfHistórico Desenvolvida pela Microsoft com a iniciativa .NET Criada praticamente do zero para funcionar na nova plataforma Maior

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.

Page 11: Seminário - C#frank/INE5612/Seminario2010.1/CSharp.pdfHistórico Desenvolvida pela Microsoft com a iniciativa .NET Criada praticamente do zero para funcionar na nova plataforma Maior

Evolução do C#

Page 12: Seminário - C#frank/INE5612/Seminario2010.1/CSharp.pdfHistórico Desenvolvida pela Microsoft com a iniciativa .NET Criada praticamente do zero para funcionar na nova plataforma Maior

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

Page 13: Seminário - C#frank/INE5612/Seminario2010.1/CSharp.pdfHistórico Desenvolvida pela Microsoft com a iniciativa .NET Criada praticamente do zero para funcionar na nova plataforma Maior

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

Page 14: Seminário - C#frank/INE5612/Seminario2010.1/CSharp.pdfHistórico Desenvolvida pela Microsoft com a iniciativa .NET Criada praticamente do zero para funcionar na nova plataforma Maior

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.

Page 15: Seminário - C#frank/INE5612/Seminario2010.1/CSharp.pdfHistórico Desenvolvida pela Microsoft com a iniciativa .NET Criada praticamente do zero para funcionar na nova plataforma Maior

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);}

Page 16: Seminário - C#frank/INE5612/Seminario2010.1/CSharp.pdfHistórico Desenvolvida pela Microsoft com a iniciativa .NET Criada praticamente do zero para funcionar na nova plataforma Maior

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

Page 17: Seminário - C#frank/INE5612/Seminario2010.1/CSharp.pdfHistórico Desenvolvida pela Microsoft com a iniciativa .NET Criada praticamente do zero para funcionar na nova plataforma Maior

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

Page 18: Seminário - C#frank/INE5612/Seminario2010.1/CSharp.pdfHistórico Desenvolvida pela Microsoft com a iniciativa .NET Criada praticamente do zero para funcionar na nova plataforma Maior

Dynamic type - exemplo:

dynamic d1 = 3; dynamic d2 = "um string"; dynamic d3 = System.DateTime.Today; dynamic d4 = System.Diagnostics.Process.GetProcesses();

C# 4.0

Page 19: Seminário - C#frank/INE5612/Seminario2010.1/CSharp.pdfHistórico Desenvolvida pela Microsoft com a iniciativa .NET Criada praticamente do zero para funcionar na nova plataforma Maior

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

Page 20: Seminário - C#frank/INE5612/Seminario2010.1/CSharp.pdfHistórico Desenvolvida pela Microsoft com a iniciativa .NET Criada praticamente do zero para funcionar na nova plataforma Maior

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

Page 21: Seminário - C#frank/INE5612/Seminario2010.1/CSharp.pdfHistórico Desenvolvida pela Microsoft com a iniciativa .NET Criada praticamente do zero para funcionar na nova plataforma Maior

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.

Page 22: Seminário - C#frank/INE5612/Seminario2010.1/CSharp.pdfHistórico Desenvolvida pela Microsoft com a iniciativa .NET Criada praticamente do zero para funcionar na nova plataforma Maior

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