C# Programação
orientada a objeto +
Projetos
Capítulo: Introdução ao C# e .NET
Conteúdo
• C# e .NET
• Compilação e interpretação
• Estrutura de uma aplicação C# .NET
C# e .NET
C# e .NET
•C# : uma linguagem de programação (regras sintáticas)
•.NET (2002): uma plataforma de desenvolvimento para se criar
diversos tipos de aplicações, podendo usar várias linguagens de
programação
• https://www.microsoft.com/net/learn/what-is-dotnet
Linguagens
.NET
•BCL -Base ClassLibrary
https://msdn.microsoft.com/en-us/library/gg145045(v=vs.110).aspx
•CLR -Common LanguageRuntime(Máquina Virtual)
•Nota: possui garbagecollection(objetos não utilizados são automaticamente
desalocadosda memória)
https://www.microsoft.com/net/download
https://docs.microsoft.com/pt-br/dotnet/framework/migration-guide/how-
to- determine-which-versions-are-installed
2002
Implementações
2004
2011
https://docs.microsoft.com/en-
us/dotnet/standard/net-
standard
2016
Open
SO Propósito
Sourc
e
.NET Standard - Especificaçãodo .NET
Sim
Usadopara criar aplicativos Windows desktop (console e gráfico) e
.NET Framework Windows Não
aplicativos web ASP.NET rodando sobre o IIS
Mono Vários Sim Usado para criar aplicativos e jogos multiplataforma
iOS
Usado para criar aplicativos móveis híbridos para iOS e Android, e
Xamarin Android Sim
também para aplicaçõesdesktop para Mac OS
Mac OS
Window
Usado para criaraplicativos modo console multiplataforma, e também
.NET Core s Linux Sim
para criar aplicativos web ASP.NET Core e serviços para nuvem
Mac OS
http s://msdn .microsoft.com/pt -br /ma gazin e/ mt842 506.a spx
https://stackoverflow.com/questions/39649976/is-it-possible-to-make-desktop-gui-application-in-net-core
Compilação e interpretação
Compilação e interpretação
•Linguagens compiladas: C, C++
•Linguagens interpretadas: PHP, JavaScript
•Linguagens pré-compiladas + máquina virtual: Java, C#
#include <iostream>
intmain() {
doublex, y, average;
cout<< "Enterfirstnumber: ";
cin>> x;
cout<< "Entersecondnumber: ";
cin>> y;
average= (x + y) / 2.0;
cout<< "Average= "<< average<< endl;
return 0;
Talvez haja
} necessidade de
adaptações
compilador 1
compilador 3
compilador 2
Executável p/ Windows Executável p/ Mac Executável p/ Linux
Windows Mac OS Linux
Hardware Hardware Hardware
<?php
print"Enterfirstnumber: ";
$x = trim(fgets(STDIN));
print"Entersecondnumber: ";
$y = trim(fgets(STDIN));
$average= ($x + $y) / 2;
print"Average= $average";
?>
Interpretador p/ Windows Interpretador para Mac Interpretador para Linux
Windows Mac OS Linux
Hardware Hardware Hardware
using System;
namespace Course {
class Program { Common IntermediateLanguage(CIL)
staticvoidMain(string[] args) {
doublex, y, average; "platform agnostic"
compilador
Console.Write("Enterfirstnumber: "); Bytecode
x = int.Parse(Console.ReadLine());
Console.Write("Entersecondnumber: ");
y = int.Parse(Console.ReadLine());
average= (x + y) / 2.0;
Console.WriteLine("Average= "+ average);
}
}
}
.NET CLR p/ Windows .NET CLR p/ Mac OS .NET CLR p/ Linux
Windows Mac OS Linux
Hardware Hardware Hardware
Modelo de execução
using System;
namespace Course {
class Program { compilação
staticvoidMain(string[] args) { Common Intermediate
Console.WriteLine("Hello World"); Language (CIL)
} compilador
}
}
Compilação just-in-time
.NET
(JIT )
Common LanguageRuntime
Muito mais rápido que
(CLR) -específica ao SO
a interpretação
Código de máquina
Estrutura de uma aplicação C# .NET
Uma aplicação é composta por classes
Class
Class
Class
Class Class
Class
Class Class Class
Class Class Class
Class Class
Namespace= agrupamento LÓGICO de classes relacionadas
Entities Services
Class Class
Class Class Class Class
Class
Class
Class Repositories
Class Class Class Class
Class
Assembly (DLL ou EXE) = Agrupamento FÍSICO de classes relacionadas (build)
Financial Graphics
Entities Ser vices Graficos3D Graficos2D
Class Class
Class Class
Class Class Class Class Class
Class Class
Class
Class
Class
Class Repositories Utilitarios
Class Class Class Class Class Class Class
Class Class
Aplicação = Agrupamento de assembliesrelacionados
Aplicação ~
Solution Assembly
~ Project Sistema de comércio eletrônico
Instalação do Visual Studio no
Windows
Checklist
•Certifique-se de que seu Windows esteja devidamente licenciado e atualizado
https://www.visualstudio.com/pt-br/productinfo/vs2017-system-requirements-vs
•Google: Visual Studio Community
https://www.visualstudio.com/pt-br/vs/community/
•Aba Windows -> Baixar o VS Community2017
• Rodar o instalador
• Cargas de Trabalho:
• Desenvolvimento com a Plataforma Universal do Windows
• Desenvolvimento para Desktop com .NET
• ASP.NET e desenvolvimento Web
• Desenvolvimento de multiplataformacom .NET Core
Primeiro programa em C# no
Visual Studio
Checklist
• Arquivo -> Novo -> Projeto -> Aplicativo de Console (.NET
• Core) File -> New -> Project -> Console App(.NET Core)
• Solution Explorer
• Solution-> aplicação
• Project -> assembly
•Executar o programa: CTRL + F5
Estrutura de um programa C#
Checklist
•Estrutura de arquivos
• Arquivo .sln
• Arquivo .csproj
• Classe principal .cs
• Subpastas obje bin
• Program.cs
•Cláusulas using: referências a outros namespaces
• Namespace
• Classe
•Método
•staticvoidMain(string[] args)
Dicas do Visual Studio
Checklist
• Ferramentas -> Opções -> Ambiente -> Configurações Internacionais ->
• Idioma Tools -> Options-> Environment-> InternationalSettings -> Language
•Como fechar e reabrir o projeto?
•Abra o arquivo .sln
• Indentaçãoautomática: CTRL + K + D
•Quebra de linha nas chaves: Tools -> Options-> TextEditor -> C# ->
CodeEstiling-> Formatting-> New Lines