visual c# express edition
DESCRIPTION
Visual C# Express Edition. Sumário. Introdução Aplicações Console e Windows. Ferramentas. Compiladores Debuggers Linguagens de programação Motor (“Engine”) de execução. Microsoft Visual Studio. - PowerPoint PPT PresentationTRANSCRIPT
Visual C# Express Edition
2
Sumário
• Introdução
• Aplicações Console e Windows
3
Ferramentas
• Compiladores
• Debuggers
• Linguagens de programação
• Motor (“Engine”) de execução
4
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
5
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
6
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
7
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)
8
Tipos de Aplicações
• Windows Applications (com GUI)
• Console Applications (usa modo texto)
• Componentes Reutilizáveis (Reusable Components) ou Biblioteca de Classes ( Class Libraries)
9
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
10
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
11
Iniciando o Visual C# Express Edition
• Clique em Iniciar Programas Microsoft Visual C# 2008 Express Edition
12
Visual C# 2008 Express Editionbarra de menus
barra de ferramentas
13
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
14
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
15
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
16
Aplicação Console
17
Aplicação Console - Exemplo
18
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)
19
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) { } }}
20
Aplicação válida mais simples em C#
class Programa
{
static void Main()
{
}
}
21
Criação de um Programa
• Problema Algoritmo implementação em uma linguagem de programação (C#, C, etc)
22
Classe System.Math
• Provê constantes e métodos estáticos para trigonometria, logaritmos e outras funções matemáticas comuns
23
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 floatExemplo:double raiz = Math.Sqrt(25);
24
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);
25
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
26
Código para Cálculo da Área de um Retâgulo
// obtém a altura do retânguloint altura;// obtém a largura do retânguloint 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ânguloint area;area = altura * largura;System.Console.WriteLine("Area = " + area.ToString());
27
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
28
Cálculo de Médiausing 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);
}}
29
Saudação
• Entre com o nome
• Entre com a idade
• Exibe o nome e a idade
30
Saudaçãousing System;using System.Collections.Generic;using System.Linq;using System.Text;
namespace Hello{ 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.");
} }}
namespace
31
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
32
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
33
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
34
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
35
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
36
Design Layout
• Form designer (projeto do formulário)
• Basic layout (layout básico)
• Advanced layout (layout avançado)
37
Janela de Propriedades (Properties Window)
• Selecione View / Properties Window
38
Property Windows
39
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
40
Window Form Controls (Controles dos Formulários Windows)
• Textbox
• Button
• Web browser
41
Controles Comuns de Aplicação no Windows
• Button• TextBox• Label• RadioButton• CheckBox• ComboBox• ListBox• ToolTip• NumericUpDown
42
Controles Comuns• Pointer• Button• CheckBox• CheckedListBox• ComboBox• DateTimePicker• Label• LinkLabel• ListBox• ListView• MarkedTextBox• MonthCalendar• Notification• NumericUpDown• PictureBox• ProgressBar• RadioButton• RichTextEditor• TextBox• ToolTip• TreeView• WebBrowser
43
Controles mais comuns
• Button• CheckBox• CheckedListBox• ComboBox• Label• ListBox• RadioButton• TextBox
44
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
45
Exemplo de Formulário
textBox1
button1 button
textBox1
button1.Text = “Preenche’
button2.Text = “Limpa”
form1.Text = “Formulário de Teste”
46
Exemplousing 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;
} }}
47
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;
48
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;
} }}
49
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
50
TextBox
• A caixa de texto é usada para obter uma entrada do usuário
• É boa para entrada de nomes, endereços, telefones, URLs, etc
51
Label
• É usual para textos simples que descrevem outros controles
52
RadioButton
• O RadioButton é usado quando várias escolhas são oferecidas porém o usuário pode escolher apenas uma (elas são excludentes)
53
CheckBox
• Checkbox são uma boa opção quando queremos fazer escolhas booleanas (verdadeiro/falso, ligado/desligado, sim/não, etc)
54
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
55
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
56
ToolTip
• É útil para exibir uma mensagem ao usuário quando ele mantém o mouse posicionado sob o controle
57
NumericUpDown
• Útil quando queremos trabalhar com valores numéricos de um conjunto predefinido de números
58
O que acontece quando um evento é disparado ?
• Todas aplicações Windows são event-driven, 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
59
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
60
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
61
Sintaxe de um método em C#
tipoDeRetorno nomeDoMétodo ( listaDeParâmetros )
{
// instruções do corpo do método
}
62
Sintaxe de um método em C#
• tipoDeRetornotipoDeRetorno: é 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étodonomeDoMétodo: é o nome utilizado para chamar o
método• listaDeParâmetroslistaDeParâ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
63
Exemplo
int adicionaValores( int a, int b )
{
int c;
c = a + b;
return c;
}
64
Exemplo
void exibeResultados(int resposta)
{
// ...
}
65
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
66
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));
67
Extensão dos Arquivos
• .sln arquivo de solução
• .csproj arquivo de projeto
• .cs arquivo fonte C#
• .xaml Extensible Application Markup Text
68
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
69
• Controle
• Argumento ou parâmetro
• Método
• Atributo
• Instância
• Propriedade
70
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
71
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
72
ListBox
• lb.Sorted = os elementos passam a ser classificados (em ordem ascendente)
73
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
74
ComboBox (continuação)
• lb.SelectedIndex; // índice to item
• lb.Text; // texto do item
75
RadioButton
• radioButton1.checked
76
MessageBox
MessageBox.Show(“msg”); exibe uma caixa de mensagem
77
MessageBox
String msg = “Os cálculos estão completos“;
String titulo = “Minha Aplicação“;
MessageBox.Show(
msg, titulo,
MessageBoxButtons,
MessageBoxIcon);
78
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
79
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
80
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(); }
}
81
Classe DateTime
• Label1.Text = DateTime.Now.ToShortTimeString();
82
Tipos de Erros de Programação
• Erros de Sintaxe
• Erros de Semântica
• Erros de Lógica
83
Bugs
• O bug é um tipo específico de erro causado pelo programador– erros de sintaxe– erros de semântica– erros de lógica
84
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
85
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
86
Quatro passos para debugging
• Detecção
• Estabilização
• Isolamento
• Correção
87
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)
88
Debug
• O menu Debug aparece quando estamos executando um código em modo debug
• Barra de Ferramentas de Debug (View Toolbars Debug)
89
Examinando Variáveis Locais
• Abra a janela Local Windows (CTRL+D,L) ou abra o menu Debug Windows Locals
90
A janela Immediate Window
• É acessível através do comando (CTRL+D,I) ou abra o menu Debug Windows Immediate
• Permite que se altere qualquer valor de variável
91
A janela Watch Window
• É acessível através do comando (CTRL+D,W) ou abra o menu Debug Windows Watch
• Permite que se altere qualquer valor de variável, mesmo fora de escopo
92
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
93
Backup
94
Organização da Solução e Projeto
arquivode
solução.sln
arquivode
projeto.csproj
arquivo(s).cs
95
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