SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Desenvolvimento em C#
Curso: Análise E Desenvolvimento De Sistemas
Contatos
▪ Alex Pinheiro Das Graças
▪ Alex.gracas@up.edu.br
Avaliação
▪ Exercícios no AVA
– Exercícios constantes. Serão contabilizados para avaliação das
competências.
▪ Prova escrita:
– Prova I: C1, c2;
– Prova II: C5, c6;
▪ Trabalhos:
– Trabalho 1: Entity Framework + Windows Form (C4 e c5) -
Reconstrução
– Trabalho II:Entity Framework + WPF + Relatórios (C4, C6 e C8) -
Introdução ao C#
A plataforma .NET
Agenda
▪ A linguagem c#
▪ O framework .NET
▪ Visual studio 2017
▪ Métodos
▪ Estruturas condicionais
▪ Depuração
A linguagem C#
▪ Criada por Anders Hejlsberg após convite da Microsoft
▪ Incialmente chamava-se cool
▪ Registrada como padrão aberto ISO/IEC 23270.
Principais Características
▪ Completamente orientada a objetos – qualquer variável é
um objeto.
▪ Fortemente tipada: As variáveis tem tipos específicos
▪ Código gerenciado: código gerenciado executará em um
ambiente gerenciado que assegura: Garbage collector,
tratamento de exceção, verificação de índice e limites de
array.
O que é .NET
▪ A plataforma .NET é um ambiente de execução runtime
que gerência os aplicativos em .neT.
▪ A plataforma .NET é um ambiente gerenciado que provê
uma variedade de serviços para as aplicações.
Vantagens de Utilizar .NET
▪ Gerenciamento de memoria.
▪ Um sistema de tipo comum para todas as linguagens.
▪ Uma extensiva biblioteca de classes.
▪ Interoperabilidade entre as várias linguagens existentes no
.NET
– Visual Basic .NET, Jscript .NET F#...
.NET
Arquitetura E Conceitos
.NET
.NET
.NET
.NET
▪ A Infraestrutura comum de
linguagem é especificada
pelos padrões: ECMA-335
e ISO/IEC 23271
– A linguagem é aberta.
CIL – Common intermediate language
▪ CIL é uma linguagem orientada a objetos.
▪ Usualmente é traduzida em código nativo ou executado por
uma maquina virtual.
▪ execução:
– Código fonte (C#, VB.NET, F#) é convertido para CIL
– Quando o programa é executado ele é compilado para o código
nativo.
Conceitos
▪ CLI = Common Language Infrastructure
▪ CIL = Common Intermediate Language
▪ CLR = Common Language Runtime
Conceitos
▪ Código gerenciado: Código que tem
como alvo a CLR. Código gerenciado,
é compilado para CIL. Em tempo de
execução o jit, um componente da
clr, transforma o código Il para
código nativo.
▪ Código não gerenciado: Código
desenvolvido fora da framework
.NET. Aplicações que não são
executadas sobre a clr.
.NET e Licenças
▪ .NET é open source
– Licenças apache ou mit.
– Alguns componentes ainda são proprietários:
▪ Winforms, wpf, wwf, wcf.
▪ Leia mais:
– https://blogs.msdn.microsoft.com/dotnet/2014/11/12/net-core-is-open-
source/
VISUAL STUDIO 2017
Criando Projetos E Soluções
Visual Studio –- Diferença De Versões
A versão community será
o suficiente para este
curso, no entanto
verifique com a instituição
a possibilidade de utilizar
outras versões a partir de
convênio com a Microsoft.
Fonte: https://www.visualstudio.com/pt-br/vs/compare/
Soluções e Projetos
▪ Uma solução tem vários projetos.
▪ Um projeto tem vários arquivos de código fonte
– Os arquivos de código fonte em c# tem a extensão “*.cs”
▪ Cada projeto pode ser compilado em um assembly .NET.
Extensões dos arquivos.
▪ Arquivos *.SLN: Configurações da Solução.
▪ Arquivos *.CSPROJ: Configurações do projeto.
▪ Arquivos *.CS: Código fonte.
Criando um novo projeto no visual studio
2017
Criando Uma Projeto - Console
Aplicativo de console
Altere o nome do
projeto
Para meu projeto.
O Código Fonte
Para executar aperte o
botão f6.
Ou acesse o menu:
depurar//iniciar
depuração
-------------------------
-
Para visualizar a
mensagem adicione o
código
‘System.Console.ReadKey();’
Criando Um Método
▪ Representação de uma operação:
public class Program
{
static void Main(string[] args){…}
static int somar(int a, int b)
{
// retorna o valor de soma entre dois números.
return a+b;
}
}
Operações
▪ A declaração de uma operação contem:
▪ static void Tocar()
–Tocar: O nome da operação
–void : O valor de retorno desta operação.
▪ Caso a operação não tenha valor de retorno o tipo de retorno deverá ser
declarado como void.
–Static: a operação pertence a classe.
Operações – - Valor De Retorno
▪ Uma função que tem um tipo de retorno especificado
diferente de void, obrigatoriamente terá que retornar
um valor.
▪ O retorno é feito com a palavra chave return.
Exercício
▪ Crie uma função que some dois números inseridos pelo
usuário:
– Para ler uma string inserida pelo usuário utilize
▪ String stringlida= Console.readline();
– Para fazer o cast de um tipo string para um tipo inteiro
▪ Int valor = Int.parse(stringlida)
Observações
▪ 15Minutos
▪ Caso tenha problema com acentos antes de imprimir qualquer mensagem
chame a seguinte operação:
Console.OutputEncoding = System.Text.Encoding.Unicode;
ESTRUTURAS CONDICIONAIS
If Switch Case
If - Else
▪ A estrutura if-else é uma das
estruturas condicionais mais comuns e
presentes na maioria das linguagens de
programação
▪ if ou Else if: Caso a condição seja
verdadeira a operação será executada
E a estrutura if-else será finalizada,
caso contrário a próxima estrutura
else if ou else será avaliada.
▪ Else: caso nenhuma das condições
anteriores sejam verdadeiras a opção
será executada.
Switch case
▪ Um case será executado caso A variável
argumento do switch tenha o valor
definido.
▪ Para múltiplos casos com a mesma
consequência coloque um case logo após o
anterior com a nova condição.
▪ Cada caso Será executado até a palavra
break.
▪ Caso nenhum dos cases seja verdadeiro irá
executar o comando para o caso default.
Operadores condicionais
▪ &&: as duas condições deverão ser verdadeiras.
– Se o primeiro operando for falso, então, o C# não avaliará o segundo
operando.
▪ ||: qualquer uma das condições poderá ser verdadeira
– Se o primeiro operando for verdadeiro, então, o C# não avaliará o
segundo operando.
DEPURAÇÃO
Ferramentas Do Vs2017 Para Encontrar Defeitos No Seu
Programa
depuração
A tarefa de depuração ou
debugging no visual studio
2017 é muito facilitada
pelas ferramentas
existentes para auxiliar o
programador.
Depuração
▪ Breakpoint. São pontos onde a execução do programa ira
parar.
▪ Criando um breakpoint
– Clique f9;
– Clique na área cinza do lado do número das linhas.
Depuração
Valor das
variáveis
Pilha das
funções
chamadas
Ferramentas
de
Diagnóstico:
Memoria,
CPU e
Eventos.
Tipos Primitivos
Int, for, double, String, DEcimal
Tipos primitivos – - numéricos
Tipo C# Tipo .NET Descrição
Faixa de
dados
byte System.Byte
Inteiro de 8-bit com
sina
-127 a 128
Sbyte System.Sbyte
Inteiro de 8-bit sem
sinal
0 a 255
Short System.Int16
Inteiro de 16-bit
com sinal
-32,768
a 32,767
Ushort System.UInt16
Inteiro de 16-bit
sem sinal
0 a 65,535
Tipos primitivos - numéricos
Tipo C# Tipo .NET Descrição Faixa de dados
decimal System.Decimal
Inteiro de 96-bit com sinal
com 28-29 dígitos
significativos
1,0 × 10-28 a 7,9 × 1028
double System.Double
Flutuante IEEE 64-bit com 15-
16 dígitos significativos
±5,0 × 10-324 a ±1,7 × 10308
float System.Single
Flutuante IEEE 32-bit com 7
dígitos significativos
±1,5 × 10-45 a ±3,4 × 1038
int System.Int32 Inteiro de 32-bit com sinal
-2.147.483.648
a 2.147.483.647
long System.Int64 Inteiro de 64-bit com sinal
–9,223,372,036,854,775,808
a 9,223,372,036,854,775,807
Uint System.UInt32 Inteiro de 32-bit sem sinal 0 a 4,294,967,295
Ulong System.UInt64 Inteiro de 64-bit sem sinal
0
a 18,446,744,073,709,551,6
15
Tipos primitivos - não numéricos
Tipo C# Tipo .NET Descrição Faixa de dados
bool System.Boolean Booleano true ou false
char System.Char
Caracter Unicode de 16-
bit
U+0000 a U+ffff
Object System.Object Classe base
String System.String
String de caracteres
Unicode
Exercício
▪ Crie um programa que imprima o número 1.1 Utilize os
tipos float, double e decimal.
▪ Observações:
– Para transformar um número para string utilize a função
.ToString(“e20”);
▪ E20 especifica o número de casas decimais.
Diferenças entre decimal, float e double
– Utilize Float para executar as seguintes operações:
▪ float valor = 1.0f + (10.100.000.000 + -10.100.000.000);
▪ float valor2 = (1.0f + 10.100.000.000) + -10.100.000.000;
▪ O marcador de milhar é somente para facilitar a leitura. Retire no código.
– O número decimal deve ser utilizado para cálculos financeiros, por ter
precisão decimal. Entretanto os tipos que utilizam ponto flutuante
no formato IEEE tem maior performance.
Diferenças entre decimal, float e double
▪ Algumas curiosidades sobre a utilização de ponto flutuante:
– https://randomascii.wordpress.com/2012/02/25/comparing-floating-
point-numbers-2012-edition/
Para a próxima aula
▪ Exercício de objetivo disponibilizado no ava
▪ Leia o capítulo 1 do livro disponível no ambiente virtual de
aprendizagem
▪ Estudar o projeto do visual studio disponível no ava

Weitere ähnliche Inhalte

Was ist angesagt? (20)

Introducao ao C#
Introducao ao C#Introducao ao C#
Introducao ao C#
 
Intro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserverIntro padroesprojetoadaptertemplateobserver
Intro padroesprojetoadaptertemplateobserver
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java Basico
 
Java13
Java13Java13
Java13
 
Java1
Java1Java1
Java1
 
Java2
Java2Java2
Java2
 
Curso Básico de Java - Aula 2
Curso Básico de Java - Aula 2Curso Básico de Java - Aula 2
Curso Básico de Java - Aula 2
 
Java orientação a objetos (interfaces)
Java   orientação a objetos (interfaces)Java   orientação a objetos (interfaces)
Java orientação a objetos (interfaces)
 
Java primeiros-passos
Java primeiros-passosJava primeiros-passos
Java primeiros-passos
 
Java5
Java5Java5
Java5
 
Poo1 aula 1 - java - história e introdução
Poo1   aula 1 - java -  história e introduçãoPoo1   aula 1 - java -  história e introdução
Poo1 aula 1 - java - história e introdução
 
POO - 17 - Interfaces
POO - 17 - InterfacesPOO - 17 - Interfaces
POO - 17 - Interfaces
 
Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01Java e orientação a objetos - aula 01
Java e orientação a objetos - aula 01
 
Java3
Java3Java3
Java3
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
 
Java 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas InterfacesJava 10 Classes Abstratas Interfaces
Java 10 Classes Abstratas Interfaces
 
Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#Curso de OO com C# - Parte 02 - Introdução ao C#
Curso de OO com C# - Parte 02 - Introdução ao C#
 
Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001
 
Apostila De Visualg
Apostila De VisualgApostila De Visualg
Apostila De Visualg
 

Ähnlich wie Introdução ao C#

Aula 01 - Introducao a C (3).pptx
Aula 01 - Introducao a C (3).pptxAula 01 - Introducao a C (3).pptx
Aula 01 - Introducao a C (3).pptxAbdulSacur2
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Robson Ferreira
 
S2 b desenvolvimento de sistemas [reparado]
S2 b   desenvolvimento de sistemas [reparado]S2 b   desenvolvimento de sistemas [reparado]
S2 b desenvolvimento de sistemas [reparado]Milena Rebouças
 
Codificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcadosCodificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcadoshenriqueprossi
 
Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4CDS
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação CJose Augusto Cintra
 
Geração de código linguagem c
Geração de código   linguagem cGeração de código   linguagem c
Geração de código linguagem cJefferson Bessa
 
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...tdc-globalcode
 
TDC 2012 - Integração .NET x C++
TDC 2012 - Integração .NET x C++TDC 2012 - Integração .NET x C++
TDC 2012 - Integração .NET x C++Gabriel Guilherme
 
SonarQube
SonarQubeSonarQube
SonarQubeCDS
 
Introdução a linguagem de programação C
Introdução a linguagem de programação CIntrodução a linguagem de programação C
Introdução a linguagem de programação CSchoolByte
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realHenrique Schmidt
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo realWilly Salazar
 
TDC2018SP | Trilha Arq .Net - Performance e feature
TDC2018SP | Trilha Arq .Net - Performance e featureTDC2018SP | Trilha Arq .Net - Performance e feature
TDC2018SP | Trilha Arq .Net - Performance e featuretdc-globalcode
 

Ähnlich wie Introdução ao C# (20)

Aula 01 - Introducao a C (3).pptx
Aula 01 - Introducao a C (3).pptxAula 01 - Introducao a C (3).pptx
Aula 01 - Introducao a C (3).pptx
 
Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2Conceitos e técnicas de programação aula 2
Conceitos e técnicas de programação aula 2
 
S2 b desenvolvimento de sistemas [reparado]
S2 b   desenvolvimento de sistemas [reparado]S2 b   desenvolvimento de sistemas [reparado]
S2 b desenvolvimento de sistemas [reparado]
 
Codificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcadosCodificação segura em C para sistemas embarcados
Codificação segura em C para sistemas embarcados
 
Microsoft C#
Microsoft C#Microsoft C#
Microsoft C#
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
TWP40 Revisão Geral 3
TWP40 Revisão Geral 3TWP40 Revisão Geral 3
TWP40 Revisão Geral 3
 
Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4Visual Studio 2010 e C# 4
Visual Studio 2010 e C# 4
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 
Geração de código linguagem c
Geração de código   linguagem cGeração de código   linguagem c
Geração de código linguagem c
 
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
Open4Education | MC59 - Aprendendo a programar de forma divertida e eficiente...
 
TDC 2012 - Integração .NET x C++
TDC 2012 - Integração .NET x C++TDC 2012 - Integração .NET x C++
TDC 2012 - Integração .NET x C++
 
SonarQube
SonarQubeSonarQube
SonarQube
 
C# básica
C#   básicaC#   básica
C# básica
 
Introdução a linguagem de programação C
Introdução a linguagem de programação CIntrodução a linguagem de programação C
Introdução a linguagem de programação C
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 
Csharp
CsharpCsharp
Csharp
 
Desenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo realDesenvolvimento de software: Mundo ideal x Mundo real
Desenvolvimento de software: Mundo ideal x Mundo real
 
Desenvolvimento de software mundo ideal x mundo real
Desenvolvimento de software  mundo ideal x mundo realDesenvolvimento de software  mundo ideal x mundo real
Desenvolvimento de software mundo ideal x mundo real
 
TDC2018SP | Trilha Arq .Net - Performance e feature
TDC2018SP | Trilha Arq .Net - Performance e featureTDC2018SP | Trilha Arq .Net - Performance e feature
TDC2018SP | Trilha Arq .Net - Performance e feature
 

Kürzlich hochgeladen

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 

Kürzlich hochgeladen (8)

ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

Introdução ao C#

  • 1. Desenvolvimento em C# Curso: Análise E Desenvolvimento De Sistemas
  • 2. Contatos ▪ Alex Pinheiro Das Graças ▪ Alex.gracas@up.edu.br
  • 3. Avaliação ▪ Exercícios no AVA – Exercícios constantes. Serão contabilizados para avaliação das competências. ▪ Prova escrita: – Prova I: C1, c2; – Prova II: C5, c6; ▪ Trabalhos: – Trabalho 1: Entity Framework + Windows Form (C4 e c5) - Reconstrução – Trabalho II:Entity Framework + WPF + Relatórios (C4, C6 e C8) -
  • 4. Introdução ao C# A plataforma .NET
  • 5. Agenda ▪ A linguagem c# ▪ O framework .NET ▪ Visual studio 2017 ▪ Métodos ▪ Estruturas condicionais ▪ Depuração
  • 6. A linguagem C# ▪ Criada por Anders Hejlsberg após convite da Microsoft ▪ Incialmente chamava-se cool ▪ Registrada como padrão aberto ISO/IEC 23270.
  • 7. Principais Características ▪ Completamente orientada a objetos – qualquer variável é um objeto. ▪ Fortemente tipada: As variáveis tem tipos específicos ▪ Código gerenciado: código gerenciado executará em um ambiente gerenciado que assegura: Garbage collector, tratamento de exceção, verificação de índice e limites de array.
  • 8. O que é .NET ▪ A plataforma .NET é um ambiente de execução runtime que gerência os aplicativos em .neT. ▪ A plataforma .NET é um ambiente gerenciado que provê uma variedade de serviços para as aplicações.
  • 9. Vantagens de Utilizar .NET ▪ Gerenciamento de memoria. ▪ Um sistema de tipo comum para todas as linguagens. ▪ Uma extensiva biblioteca de classes. ▪ Interoperabilidade entre as várias linguagens existentes no .NET – Visual Basic .NET, Jscript .NET F#...
  • 11. .NET
  • 12. .NET
  • 13. .NET
  • 14. .NET ▪ A Infraestrutura comum de linguagem é especificada pelos padrões: ECMA-335 e ISO/IEC 23271 – A linguagem é aberta.
  • 15. CIL – Common intermediate language ▪ CIL é uma linguagem orientada a objetos. ▪ Usualmente é traduzida em código nativo ou executado por uma maquina virtual. ▪ execução: – Código fonte (C#, VB.NET, F#) é convertido para CIL – Quando o programa é executado ele é compilado para o código nativo.
  • 16. Conceitos ▪ CLI = Common Language Infrastructure ▪ CIL = Common Intermediate Language ▪ CLR = Common Language Runtime
  • 17. Conceitos ▪ Código gerenciado: Código que tem como alvo a CLR. Código gerenciado, é compilado para CIL. Em tempo de execução o jit, um componente da clr, transforma o código Il para código nativo. ▪ Código não gerenciado: Código desenvolvido fora da framework .NET. Aplicações que não são executadas sobre a clr.
  • 18. .NET e Licenças ▪ .NET é open source – Licenças apache ou mit. – Alguns componentes ainda são proprietários: ▪ Winforms, wpf, wwf, wcf. ▪ Leia mais: – https://blogs.msdn.microsoft.com/dotnet/2014/11/12/net-core-is-open- source/
  • 19. VISUAL STUDIO 2017 Criando Projetos E Soluções
  • 20. Visual Studio –- Diferença De Versões A versão community será o suficiente para este curso, no entanto verifique com a instituição a possibilidade de utilizar outras versões a partir de convênio com a Microsoft. Fonte: https://www.visualstudio.com/pt-br/vs/compare/
  • 21. Soluções e Projetos ▪ Uma solução tem vários projetos. ▪ Um projeto tem vários arquivos de código fonte – Os arquivos de código fonte em c# tem a extensão “*.cs” ▪ Cada projeto pode ser compilado em um assembly .NET.
  • 22. Extensões dos arquivos. ▪ Arquivos *.SLN: Configurações da Solução. ▪ Arquivos *.CSPROJ: Configurações do projeto. ▪ Arquivos *.CS: Código fonte.
  • 23. Criando um novo projeto no visual studio 2017
  • 24. Criando Uma Projeto - Console Aplicativo de console Altere o nome do projeto Para meu projeto.
  • 25. O Código Fonte Para executar aperte o botão f6. Ou acesse o menu: depurar//iniciar depuração ------------------------- - Para visualizar a mensagem adicione o código ‘System.Console.ReadKey();’
  • 26. Criando Um Método ▪ Representação de uma operação: public class Program { static void Main(string[] args){…} static int somar(int a, int b) { // retorna o valor de soma entre dois números. return a+b; } }
  • 27. Operações ▪ A declaração de uma operação contem: ▪ static void Tocar() –Tocar: O nome da operação –void : O valor de retorno desta operação. ▪ Caso a operação não tenha valor de retorno o tipo de retorno deverá ser declarado como void. –Static: a operação pertence a classe.
  • 28. Operações – - Valor De Retorno ▪ Uma função que tem um tipo de retorno especificado diferente de void, obrigatoriamente terá que retornar um valor. ▪ O retorno é feito com a palavra chave return.
  • 29. Exercício ▪ Crie uma função que some dois números inseridos pelo usuário: – Para ler uma string inserida pelo usuário utilize ▪ String stringlida= Console.readline(); – Para fazer o cast de um tipo string para um tipo inteiro ▪ Int valor = Int.parse(stringlida) Observações ▪ 15Minutos ▪ Caso tenha problema com acentos antes de imprimir qualquer mensagem chame a seguinte operação: Console.OutputEncoding = System.Text.Encoding.Unicode;
  • 31. If - Else ▪ A estrutura if-else é uma das estruturas condicionais mais comuns e presentes na maioria das linguagens de programação ▪ if ou Else if: Caso a condição seja verdadeira a operação será executada E a estrutura if-else será finalizada, caso contrário a próxima estrutura else if ou else será avaliada. ▪ Else: caso nenhuma das condições anteriores sejam verdadeiras a opção será executada.
  • 32. Switch case ▪ Um case será executado caso A variável argumento do switch tenha o valor definido. ▪ Para múltiplos casos com a mesma consequência coloque um case logo após o anterior com a nova condição. ▪ Cada caso Será executado até a palavra break. ▪ Caso nenhum dos cases seja verdadeiro irá executar o comando para o caso default.
  • 33. Operadores condicionais ▪ &&: as duas condições deverão ser verdadeiras. – Se o primeiro operando for falso, então, o C# não avaliará o segundo operando. ▪ ||: qualquer uma das condições poderá ser verdadeira – Se o primeiro operando for verdadeiro, então, o C# não avaliará o segundo operando.
  • 34. DEPURAÇÃO Ferramentas Do Vs2017 Para Encontrar Defeitos No Seu Programa
  • 35. depuração A tarefa de depuração ou debugging no visual studio 2017 é muito facilitada pelas ferramentas existentes para auxiliar o programador.
  • 36. Depuração ▪ Breakpoint. São pontos onde a execução do programa ira parar. ▪ Criando um breakpoint – Clique f9; – Clique na área cinza do lado do número das linhas.
  • 38. Tipos Primitivos Int, for, double, String, DEcimal
  • 39. Tipos primitivos – - numéricos Tipo C# Tipo .NET Descrição Faixa de dados byte System.Byte Inteiro de 8-bit com sina -127 a 128 Sbyte System.Sbyte Inteiro de 8-bit sem sinal 0 a 255 Short System.Int16 Inteiro de 16-bit com sinal -32,768 a 32,767 Ushort System.UInt16 Inteiro de 16-bit sem sinal 0 a 65,535
  • 40. Tipos primitivos - numéricos Tipo C# Tipo .NET Descrição Faixa de dados decimal System.Decimal Inteiro de 96-bit com sinal com 28-29 dígitos significativos 1,0 × 10-28 a 7,9 × 1028 double System.Double Flutuante IEEE 64-bit com 15- 16 dígitos significativos ±5,0 × 10-324 a ±1,7 × 10308 float System.Single Flutuante IEEE 32-bit com 7 dígitos significativos ±1,5 × 10-45 a ±3,4 × 1038 int System.Int32 Inteiro de 32-bit com sinal -2.147.483.648 a 2.147.483.647 long System.Int64 Inteiro de 64-bit com sinal –9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 Uint System.UInt32 Inteiro de 32-bit sem sinal 0 a 4,294,967,295 Ulong System.UInt64 Inteiro de 64-bit sem sinal 0 a 18,446,744,073,709,551,6 15
  • 41. Tipos primitivos - não numéricos Tipo C# Tipo .NET Descrição Faixa de dados bool System.Boolean Booleano true ou false char System.Char Caracter Unicode de 16- bit U+0000 a U+ffff Object System.Object Classe base String System.String String de caracteres Unicode
  • 42. Exercício ▪ Crie um programa que imprima o número 1.1 Utilize os tipos float, double e decimal. ▪ Observações: – Para transformar um número para string utilize a função .ToString(“e20”); ▪ E20 especifica o número de casas decimais.
  • 43. Diferenças entre decimal, float e double – Utilize Float para executar as seguintes operações: ▪ float valor = 1.0f + (10.100.000.000 + -10.100.000.000); ▪ float valor2 = (1.0f + 10.100.000.000) + -10.100.000.000; ▪ O marcador de milhar é somente para facilitar a leitura. Retire no código. – O número decimal deve ser utilizado para cálculos financeiros, por ter precisão decimal. Entretanto os tipos que utilizam ponto flutuante no formato IEEE tem maior performance.
  • 44. Diferenças entre decimal, float e double ▪ Algumas curiosidades sobre a utilização de ponto flutuante: – https://randomascii.wordpress.com/2012/02/25/comparing-floating- point-numbers-2012-edition/
  • 45. Para a próxima aula ▪ Exercício de objetivo disponibilizado no ava ▪ Leia o capítulo 1 do livro disponível no ambiente virtual de aprendizagem ▪ Estudar o projeto do visual studio disponível no ava

Hinweis der Redaktion

  1. http://www.devmedia.com.br/a-evolucao-da-linguagem-de-programacao-c/28639
  2. CLR é uma maquina Virtual? https://blogs.msdn.microsoft.com/brada/2005/01/12/is-the-clr-a-virtual-machine/
  3. Fonte: https://msdn.microsoft.com/en-us//library/8bs2ecf4(v=vs.110).aspx
  4. De uma maneira fraca podemos comparar a CLR com uma maquina virtual, como a JVM. Mas esta comparação é fraca, pois na verdade ela é composta de varias bibliotecas e um JIT que compila o código CIL para o código nativo da máquina alvo. Fonte: https://msdn.microsoft.com/en-us//library/8bs2ecf4(v=vs.110).aspx Figura: https://msdn.microsoft.com/en-us/library/zw4w595w(v=vs.110).aspx http://www.linhadecodigo.com.br/artigo/120/arquitetura-net-msil-clr-cts-cls-blc-jit.aspx What is managed code: https://msdn.microsoft.com/pt-br/library/windows/desktop/bb318664(v=vs.85).aspx Managed and unmanaged code in .NET http://www.c-sharpcorner.com/uploadfile/puranindia/managed-code-and-unmanaged-code-in-net/
  5. Fonte: https://docs.microsoft.com/pt-br/dotnet/csharp/language-reference/operators/
  6. Bibliografia: https://msdn.microsoft.com/en-us/library/ms228360(v=vs.90).aspx
  7. http://www.macoratti.NET/12/12/c_num1.htm