Visual C# Express Edition
Sumário
• Introdução
• Aplicações Console e Windows
2
Ferramentas
•
•
•
•
Compiladores
Debuggers
Linguagens de programação
Motor (“Engine”) de execução
3
Microsoft Visual Studio
• O Microsoft Visual Studio não é
explicitamente necessário para o
desenvolvimento de aplicações .NET
porém ele fornece várias vantagens
• É possível desenvolver aplicações usando
Notepad + o compilador via linha de
comando
4
Versões do Visual Studio
•
•
•
•
Visual Studio 2008 Standard Edition
Visual Studio 2008 Professional Edition
Visual Studio 2008 Enterprise Edition
Visual C# 2008 Express Edition
5
Microsoft Visual C# 2008 Express
Edition
• É uma ferramenta de desenvolvimento
voltada a produtividade
• É uma ferramenta RAD (Rapid Application
Development)
• Permite desenvolver aplicações Windows
• É voltada para programadores iniciantes
6
C#
• C# é uma das linguagens de programação
disponível para o .NET Framework (outros
exemplos de linguagens são: VB, C++,
JScript, J#)
• C# é uma linguagem Orientada a Objetos
(ela permite que sejam desenvolvidas
aplicações procedurais, aplicações
puramente OO ou uma mistura das duas)
7
Tipos de Aplicações
• Windows Applications (com GUI)
• Console Applications (usa modo texto)
• Componentes Reutilizáveis (Reusable
Components) ou Biblioteca de Classes (
Class Libraries)
8
Diferença entre Console Applications e
Windows Applications
• Aplicações de Console  não possuem
interface gráfica e simplesmente usa o
modo texto para comunicar com o usuário
• Aplicações Windows  são aplicações
que possuem interface gráfica com o
usuário (GUI), com menus, botões,
janelas, barra de ferramentas, etc
9
IDE (Integrated Development
Environment)
• Ambiente de Desenvolvimento Integrado
• É a aplicação que prove todas as
ferramentas necessárias para projetar,
planejar, desenvolver e distribuir suas
aplicações
10
Iniciando o Visual C# Express
Edition
• Clique em Iniciar  Programas 
Microsoft Visual C# 2008 Express Edition
11
Visual C# 2008 Express Edition
barra de menus
barra de ferramentas
12
Página de Início (Start Page)
• Projetos Recentes (Recent projects)
– Exibe a lista de projetos ou soluções que foram
recentemente abertos
• Iniciando (Getting Started)
– Essa seção permite a busca de ajuda quando
necessário
• Visual C# Express Headlines
– Onde encontramos notícias específicas sobre o
Visual C#
• MSDN Visual C# RSS Feed
13
Componentes do IDE
• Barra de Menus (Menu bar)
– É onde podemos selecionar e executar quase todas as ações
relacionadas ao projeto, arquivos e Help (ajuda)
• Barra de Ferramentas Principal (Main Toolbar)
– Contem icons que são atalhos para opções também presentes
na barra de menu
• Caixa de Ferramentas (Toolbox)
– Contem os controles que podem ser usados pela aplicação
• Solution Explorer (Explorador da Solução)
– Lista os arquivos e componentes no projeto
• Barra de Status (Status Bar)
– Exibe informações correspondentes ao estado de certas
operações ativas
14
Criando uma aplicação console
• Selecione File / New Project na Barra de
Menu
• Selecione Console Application na caixa de
diálogos New Project e digite
PrimeiraAplicacaoConsole e clique no
botão OK
15
Aplicação Console
16
Aplicação Console - Exemplo
17
Construindo e Executando a
Aplicação
• Para fazer o build da aplicação, selecione
Build / Build Solution a partir da barra de
menu ou pressione F6
• Para executar a aplicação, pressione
Ctrl+F5 (quando usamos o Start Without
Debug, as aplicações console exibem
uma mensagem para pressionar uma
tecla)
18
Aplicação Console gerada pelo
Visual C# Express Edition
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
}
}
}
19
Aplicação válida mais simples em
C#
class Programa
{
static void Main()
{
}
}
20
Criação de um Programa
• Problema  Algoritmo  implementação
em uma linguagem de programação (C#,
C, etc)
21
Classe System.Math
• Provê constantes e métodos estáticos
para trigonometria, logaritmos e outras
funções matemáticas comuns
22
Math.Sqrt()
O método Math.Sqrt() recebe como
argumento um número formato double e
retorna um número também no formato
double:
double Math.Sqrt(double valor);
Observe que não podemos atribuir uma
variável double em uma variável float
Exemplo:
double raiz = Math.Sqrt(25);
23
Math.Pow()
O método Math.Pow() recebe como
argumento uma base e um expoente no
formato double e retorna a potência
também no formato double:
double Math.Pow(double b, double e);
Exemplo:
double valor = Math.Pow(5,2);
24
Exemplo: Calculo da Área de um
Retângulo
•
•
•
•
Entre o valor da base
Entre o valor da altura
Calcule a area = base * altura
Exiba a base, altura e a area
25
Código para Cálculo da Área de
um Retâgulo
// obtém a altura do retângulo
int altura;
// obtém a largura do retângulo
int largura;
string strAltura;
string strLargura;
System.Console.Write("Entre com a altura: ");
strAltura=System.Console.ReadLine();
altura = int.Parse(strAltura);
System.Console.Write("Entre com a largura: ");
strLargura = System.Console.ReadLine();
largura = int.Parse(strLargura);
//área do retângulo
int area;
area = altura * largura;
System.Console.WriteLine("Area = " + area.ToString());
26
Cálculo de Média
•
•
•
•
Entre com a primeira nota (n1)
Entre com a segunda nota (n2)
Calcule a média (m), onde m = (n1+n2)/2
Exibe as notas e a média final
27
Cálculo de Média
using System;
class Program
{
static void Main(string[] args)
{
String notaDigitada;
Console.WriteLine("Entre com a primeira nota (N1): ");
// Le a primeira nota digitada
notaDigitada = Console.ReadLine();
float n1 = float.Parse(notaDigitada);
Console.WriteLine("Entre com a segunda nota (N2): ");
// Le a segunda nota digitada
notaDigitada = Console.ReadLine();
float n2 = float.Parse(notaDigitada);
// Calcula a média entre n1 e n2
float media = (n1 + n2) / 2;
// Exibe a média calculada
Console.WriteLine("A média entre {0} e {1} eh {2}", n1, n2, media);
}
}
28
Saudação
• Entre com o nome
• Entre com a idade
• Exibe o nome e a idade
29
Saudação
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Hello
namespace
{
class Saudacao
{
static void Main(string[] args)
{
String nome;
String idade;
System.Console.Write("Qual e seu nome: ");
nome = System.Console.ReadLine();
System.Console.Write("Qual e sua idade: ");
idade = System.Console.ReadLine();
System.Console.WriteLine("Ola " + nome + ". Voce tem " + idade + " anos.");
}
}
}
30
Construindo uma Aplicação
Windows
• Selecione File / New Project na Barra de
Menu
• Selecione Windows Form Application na
caixa de diálogos New Project e digite
PrimeiraAplicacaoWindows e clique no
botão OK
31
Projeto
• Um projeto é um container para todos os
itens da aplicação, tais como: formulários,
código fonte e recursos
• Ele também guarda informações sobre as
configurações
32
Namespace (Espaço de Nomes)
• Os namespaces permitem que
identificadores sejam nomeados de forma
que não haja colisão entre seus nomes,
isto é, dois identificadores iguais no
mesmo código
• Uma instrução using adiciona um
namespace a um escopo
33
Name collision (Colisão de Nomes)
• Ocorre quando dois identificadores
possuem o mesmo nome dentro de um
namespace
• A colisão de nomes deve ser evitada
34
Fully Qualified Name
• O nome totalmente qualificado (fully
qualified name) é formado pelo
<namespace> mais o <nome da classe>
– <namespace>.<nome da classe>
Exemplo:
System.Console, onde System representa
o Namespace e Console é a classe
35
Design Layout
• Form designer (projeto do formulário)
• Basic layout (layout básico)
• Advanced layout (layout avançado)
36
Janela de Propriedades (Properties
Window)
• Selecione View / Properties Window
37
Property Windows
38
Properties Window (janela de
propriedades)
• As propriedades
influenciam como o
controle se comporta ou
qual a sua aparência
quando executamos a
aplicação
• Exemplo de propriedades
de um formulário:
– Text: texto exibido na
janela
– Size:Width: largura da
janela
– Size:Height: altura da
janela
39
Window Form Controls (Controles
dos Formulários Windows)
• Text box
• Button
• Web browser
40
Controles Comuns de Aplicação no
Windows
•
•
•
•
•
•
•
•
•
Button
TextBox
Label
RadioButton
CheckBox
ComboBox
ListBox
ToolTip
NumericUpDown
41
Controles Comuns
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Pointer
Button
CheckBox
CheckedListBox
ComboBox
DateTimePicker
Label
LinkLabel
ListBox
ListView
MarkedTextBox
MonthCalendar
Notification
NumericUpDown
PictureBox
ProgressBar
RadioButton
RichTextEditor
TextBox
ToolTip
TreeView
WebBrowser
42
Controles mais comuns
•
•
•
•
•
•
•
•
Button
CheckBox
CheckedListBox
ComboBox
Label
ListBox
RadioButton
TextBox
43
Algumas propriedades
• Text - texto associado com o controle
• Name - indica o nome usado no código para identificar o
objeto
• BackColor - a cor de fundo do componente
• Enabled - indica se o controle está habilitado ou não
• ForeColor - a cor de frente do componente, que é usado
para exibir o texto
• ReadyOnly - controla se o texto no controle poderá ser
editado ou não
• Visible - determina se o controle é visível ou escondido
44
Exemplo de Formulário
textBox1
button1.Text =
“Preenche’
textBox1
button2.Text =
“Limpa”
form1.Text =
“Formulário de
Teste”
button1
button
45
Exemplo
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
button2.Enabled = false;
}
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = "nome";
button2.Enabled = true;
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Text = "";
button2.Enabled = false;
}
}
}
46
Namespaces
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
47
public partial class Form1 : Form
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
button2.Enabled = false;
}
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = "nome";
button2.Enabled = true;
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Text = "";
button2.Enabled = false;
}
}
}
48
Button
• Indica que o usuário fez uma decisão e
quer comunicar sua ação. Em sua
aplicação, o botão clicado pelo usuário
dispara um evento que o código precisa
lidar
49
TextBox
• A caixa de texto é usada para obter uma
entrada do usuário
• É boa para entrada de nomes, endereços,
telefones, URLs, etc
50
Label
• É usual para textos simples que
descrevem outros controles
51
RadioButton
• O RadioButton é usado quando várias
escolhas são oferecidas porém o usuário
pode escolher apenas uma (elas são
excludentes)
52
CheckBox
• Checkbox são uma boa opção quando
queremos fazer escolhas booleanas
(verdadeiro/falso, ligado/desligado,
sim/não, etc)
53
ComboBox
• Um ComboBox é uma combinação de
uma caixa de textos (TextBox) e uma lista
suspensa de opções (drop-down list).
É uma boa opção quando queremos uma
caixa de textos editável porém com uma
lista de valores permitidos
54
ListBox
• Uma ListBox é uma lista reduzida de
valores válidos que esse componente
representa.
• Ela não permite que os usuários editem
textos, mas permitem a escolha de mais
de um item mantendo a tecla CTRL
pressionada
55
ToolTip
• É útil para exibir uma mensagem ao
usuário quando ele mantém o mouse
posicionado sob o controle
56
NumericUpDown
• Útil quando queremos trabalhar com
valores numéricos de um conjunto
predefinido de números
57
O que acontece quando um evento
é disparado ?
• Todas aplicações Windows são eventdriven, ou melhor, orientadas a eventos.
• Isso significa que toda vez que clicamos
em um botão ou mesmo movemos entre
caixas de textos estamos gerando
eventos.
• Blocos de códigos conectados a cada
uma de suas ações executam à medida
que você trabalha na aplicação
58
Eventos
• Eventos são gerados não somente pelas
ações internas a aplicação mas também
pelo ambiente em sua volta, pelo
Windows ou por outras fontes externas
59
Método
• Um método é uma seqüência de instruções
• Um método possui um nome e um corpo
• Nome do método  deve ser um identificador
significativo que indique sua finalidade geral
• Corpo do método  contém as instruções
gerais a serem executadas quando o método é
chamado
• Métodos podem receber alguns dados para
serem processados e retornar informações
60
Sintaxe de um método em C#
tipoDeRetorno nomeDoMétodo ( listaDeParâmetros )
{
// instruções do corpo do método
}
61
Sintaxe de um método em C#
• tipoDeRetorno: é o nome de um tipo e especifica o tipo
de informação que o método retorna como resultado de
seu processamento
– Caso o método não retorne nenhum valor, devemos usar o tipo
void (sem valor)
• nomeDoMétodo: é o nome utilizado para chamar o
método
• listaDeParâmetros: é opcional e descreve os tipos das
informações que você pode passar para o método
processar
• As instruções do corpo do método são as linhas de
código que são executadas quando o método é
chamado
62
Exemplo
int adicionaValores( int a, int b )
{
int c;
c = a + b;
return c;
}
63
Exemplo
void exibeResultados(int resposta)
{
// ...
}
64
Sintaxe de chamada de método
Resultado = nomeDoMétodo ( listaDeArgumentos );
Onde:
• Resultado: é uma variável compatível com o tipo de
retorno do método (se houver)
Observação:
• listaDeArgumentos: a lista de argumentos é separada
por vírgulas caso haja mais de um argumento
• Os parênteses devem ser incluídos na chamada de
cada método, mesmo quando estivermos chamando o
método sem argumentos
65
Exemplo de Chamada de Método
// chamada do método adicionaValores passando como
parâmetros os literais 1 e 2
int soma = adicionaValores(1,2);
Ou
int a=1;
int b=2;
Int soma = adicionaValores(a,b);
exibeResultado(adicionaValores(1,3));
66
Extensão dos Arquivos
•
•
•
•
.sln  arquivo de solução
.csproj  arquivo de projeto
.cs  arquivo fonte C#
.xaml  Extensible Application Markup
Text
67
Métodos
• Todos os métodos devem ser definidos
dentro da classe
• O método Main é especial: ele define o
ponto de entrada do programa e deve ser
definido como estático
68
•
•
•
•
•
•
Controle
Argumento ou parâmetro
Método
Atributo
Instância
Propriedade
69
TextBox
• Multiline  controla se o texto de um
controle de edição pode se espalhar por
mais de uma linha
• ScrollBars
• AcceptTab  indica se o caracter TAB é
aceito
• AcceptReturn  indica se o caracter
Return (CR) é aceito
• Size  indica o tamanho do controle
70
ListBox
• ListBox lb;
• lb.Items.Add(); // adiciona
• lb.Items.Clear(); // remove todos os itens da
coleção
• lb.Items.Remove();// exclui o objeto especificado
da coleção
• lb.Items.Count; // obtém o número de items da
coleção
• lb.Items.RemoveAt(); // remove o elemento na
posição especificada
71
ListBox
• lb.Sorted = os elementos passam a ser
classificados (em ordem ascendente)
72
ComboBox
• ComboBox lb;
• lb.Items.Add(); // adiciona
• lb.Items.Clear(); // remove todos os itens da
coleção
• lb.Items.Remove();// exclui o objeto especificado
da coleção
• lb.Items.Count; // obtém o número de items da
coleção
• lb.Items.RemoveAt(); // remove o elemento na
posição especificada
73
ComboBox (continuação)
• lb.SelectedIndext; // índice to item
• lb.Text; // texto do item
74
RadioButton
• radioButton1.checked
75
MessageBox
• MessageBox.Show(“msg”);  exibe uma
caixa de mensagem
76
MessageBox
String msg = “Os
cálculos estão
completos“;
String titulo = “Minha
Aplicação“;
MessageBox.Show(
msg, titulo,
MessageBoxButtons,
MessageBoxIcon);
77
MessageBoxButtons
OK
botão OK
OKCancel
Botão OK e Cancel
(Cancelar)
AbortRetryIgnore Botões Abort, Retry e
Ignore
YesNoCancel
Botões Yes, No, Cancel
YesNo
Botões Yes e No
RetryCancel
Botões Retry e Cancel
78
MessageBoxIcon
•
•
•
•
•
•
•
•
•
None  nenhum símbolo
Hand  mão
Question  sinal de interrogação
Exclamation  sinal de exclamação
Asterisk  asterisco
Stop  Pare
Error  Erro
Warning  Aviso
Information  Informação
79
MessageBox - Exemplo
public void ExitApplication()
{
// Exibe uma mensagem perguntando se o
//usuário deseja sair da aplicação
if (MessageBox.Show (
“Deseja sair da Aplicação?",
“Minha Aplicação",
MessageBoxButtons.YesNo, MessageBoxIcon.Question)
== DialogResult.Yes)
{
Application.Exit(); }
80
}
Classe DateTime
• Label1.Text =
DateTime.Now.ToShortTimeString();
81
Debug (Depurar)
• O processo de Debug (depuração)
consiste em acompanhar a execução de
um programa em busca de entender seu
comportamento e buscar possíveis bugs
• É muito útil na solução de problemas
(bugs) em tempo de execução, isto é,
quando o software já está em execução
82
Debug
• O processo de debug consiste em
executar o programa “passo a passo”,
inspecionando variáveis e analisando
seus valores em busca de
comportamentos diferentes do esperado
83
Debug
Para marcar/desmarcar
breakpoint (ponto de
parada)  F9
Step Into (F11) = entrar
no método
Step Over (F10)
Step Out (Shift+F11) =
sair do método
Continuar (F5)
84
Debug
• O menu Debug aparece quando estamos
executando um código em modo debug
• Barra de Ferramentas de Debug (View 
Toolbars  Debug)
85
Refatorando Código
• Menu Refactor
– Rename  permite que façamos alterações
no nome de identificadores
– Extract Method ...  permite que um código
seja transformado em um método
86
Backup
87
Organização da Solução e Projeto
arquivo
de
solução
.sln
arquivo
de
projeto
.csproj
arquivo(s)
.cs
88
Teclas de Atalho do Menu View
Class View
(Vizualização das Classes)
CTRL+W,C
Error List
(lista de erros)
CTRL+W,E
Output
(Saída)
CTRL+W,O
Proprerties Window
(Janela de Propriedades)
CTRL+W,P
Solution Explorer
(Explorador d solução)
CTRL+W,S
Task List
(lista de tarefas)
CTRL+W,T
Toolbox
(Caixa de Ferramentas)
CTRL+W,X
89
Download

Visual Studio Express Edition