Baixe o app para aproveitar ainda mais
Prévia do material em texto
Instituto Paulista de Ensino e Pesquisa – IPEP Análise e desenvolvimento de aplicações com a integração de Console App e Windows Form no C# Fabrício da Silva Dias Campinas – 2015 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 IPEP Análise e desenvolvimento de aplicações com a integração de Console App e Windows Form no C# Aluno: Fabrício da Silva Dias – Análise e Desenvolvimento de Sistemas Professor: Jonas Bodê – Lógica de Programação 01 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Sumário – Sumário __________________________________________________________________02 – Análise da Interação (Aplicações) ______________________________________________03 – Programação em C# no Linux_________________________________________________04 – Compilador (MCS) Monodevelop em Linux Mint _________________________________05 – Executando aplicações no Monodevelop 4 utilizando a distribuição linux Ubuntu 14.04 ___06 – A integração e a Interação de Console app com Windows Form em C# (Comportamento) __07 – Simulação do Console app na Janela TextBox do Windows Form _____________________08 – Orientação a objetos ________________________________________________________09 – Execução de Janelas em W.Form ______________________________________________12 – Código Fonte – Form1.cs ____________________________________________________14 – Código Fonte – nome.cs _____________________________________________________16 – Código fonte – TextBoxStreamWriter.cs _________________________________________17 – Ferramentas adicionais (Parte 1.0 – Console: Formulário) ___________________________18 – Ferramentas adicionais (Parte 1.1 – Windows Form: Formulário)______________________20 – Ferramentas adicionais (Parte 1.2 – Resumo da Formação)___________________________22 – Ferramentas adicionais (Parte 2.0 – Console: Operações mat. Simples) _________________23 – Ferramentas adicionais (Parte 2.1 – W. Form: Operações mat. Simples)_________________24 – Extras imagens 1.0___________________________________________________________26 – Extras imagens 1.1___________________________________________________________27 – Extras imagens 1.2___________________________________________________________28 – Resumo: __________________________________________________________________29 – Referencias: _______________________________________________________________30 02 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Análise da integração Aplicações Para iniciar o estudo refente a integração e a interação de dois modelos destintos de programação em C#, é preciso evidenciar que o elo de compatibilidade é padrão, porém menos utilizado devido a facilidade de substituir a integração por meios existentes dentro de cada uma das formas de programar! Um exemplo desse argumento é a utilização de interfaces dentro do próprio console, que por frequência de uso devido a facilidade de desenvolvimento, torna esse meio mais evidente e exposto na busca de informações! Veja um exemplo de Interface no Console: (O programa compilado nessa imagem tem autoria declarada em si!) 03 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Programação em C# no Linux A maioria dos programadores de C# utilizam o sistema operacional Windows (Microsoft) devido a linguagem ter mais suporte e aplicativos dedicado, o motivo é de sua autoria estar atribuída a empresa Microsoft, cujo padrão tecnológico se restringe ao chamado “Código fechado”. Porém, a linguagem também pode ser utilizada em diversas plataformas de Sistemas Operacionais alternativos, cujo abrangimento também atinge diversas distribuições Linux de código aberto. A ferramenta de desenvolvimento mais utilizado é o “Visual Studio” da Microsoft. Portanto, para apresentar meios alternativos a esta, utilizaremos a ferramenta “Monodevelop” em duas distribuições Linux . Primeiro exemplo: Distribuição: Linux Mint 17 Editor fonte: Gedit - (.cs) 04 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Compilador : MonoDevelop - (Comando "mcs" para criar arquivo executável). Programa de simulação de arquivos .exe: Wine. Programa em execução: 05 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Distribuição: Ubuntu 14.04 Ferramenta de programação: Monodevelo 4. Executor: Monodevelop Simulador. Sistema em execução: ConsoleSistema - Autoria – Fabrício da Silva Dias 06 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 A integração e a Interação de Console app com Windows Form em C# Parte 1 - Comportamento Nesse capitulo do estudo, iremos analisar o comportamento de um sistema cujo seu desenvolvimento teve como foco principal, interagir os comandos de console app dentro da carcaça desenhada em Windows form utilizando a ferramenta Visual Studio. A figura abaixo demostra a face do sistema, que em breve análise destaca a janela do todo, cujo conteúdo se trata de um console no padrão preto integrado em seu corpo! 07 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 O console está simulado dentro de uma janela do tipo “TextBox” do Windows Form, cujo objetivo é refletir o vigor da execução dos comandos do console! Mas para que seja atribuído a função de executar comandos de console, é necessário definir os padrões da interação entre ambas formas! Vejamos a formação do código fonte para entender o primeiro passo dessa interação: Observe que esse modelo apresenta a atribuição para a execução das funções de console dentro do painel de RichTextBox do Windows Form, ou seja, requisito que vincula os padrões dos modelos, observando também que a função está definida apenas para uma caixa de texto específico!Nesse caso, a caixa apontada para executar as funções do console é a caixa preta visto na imagem anterior. Vamos analisar também a “orientação a objeto” evidente nesse fonte! 08 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Orientação a objetos A classe é o ambiente que envolve, define e comporta o objeto que por sua vez define a formação da ordem escrita pelo programador, que é dividida em conjuntos de atributos, cujo cada atributo define sua característica, o método é quem define o comportamento dos objetos dentro das classes! Entendeu? Com base nessa breve explicação, veremos a interação das classes do programa. Analise o seguinte trecho do fonte: A classe está expressando a saída de atributos para que possa ser utilizada em em outra classe! Vamos entender melhor observando a classe que interliga e recebe os objetos: 09 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Veja na imagem a seguir a ordem de recebimento dos objetos apontados na classe anterior: Agora iremos analisar o próximo trecho do fonte, a parte que não está envolvida pelo quadrado. Observe que a sequencia de comandos de console está dentro de um botão chamado “iniciar_Click”. Esse propósito está amparado no objetivo de executar os comandos ao ser executado! 10 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Veja o exemplo na imagem seguinte: O botão referido se refere o “INICIAR” na janela do form, que ao ser acionado executou oscomandos que estão inseridos nele! Perceba também que há uma outra janela aberta na imagem, trata-se de um formulário! Esse formulário foi aberto após a execução do botão iniciar, veja o código fonte na próxima imagem: 11 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Observe na seguinte imagem o comando que fez o chamado da janela chamada “nome” . Agora veja o recebimento das informações na janela de console após o preenchimento da janela do formulário: 12 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Agora vejamos a formação básica do sistema. As partes selecionadas refere as que foram mencionadas até aqui. Form1.cs : Trata-se da janela inicial do sistema. nome.cs : Trata-se da janela de formulário. TextBoxStreamWriter.cs : Trata-se da classe que define a ordem inicial da interação do console na janela “TextBox” do windows form. 13 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Código fonte Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.IO; using System.Diagnostics; namespace Consolecomform { public partial class FormConsole : Form { TextWriter _writer = null; public FormConsole() { InitializeComponent(); } private void FormConsole_Load(object sender, EventArgs e) { _writer = new TextBoxStreamWriter(txtConsole); Console.SetOut(_writer); } private void iniciar_Click ( object sender, EventArgs e ) { // console comandos: Console.WriteLine("\n\n\n_____________________________________________"); Console.WriteLine("|||||||||||||||||||||||||||||||||||||||||||||||||||"); Console.WriteLine("\n\n\t\t\t Apresentação\n"); Console.WriteLine("Aluno: Fabrício da Silva Dias"); Console.WriteLine("Trabalho inter"); Console.WriteLine("Linguagem utilizada: CSHARP (C#) "); Console.WriteLine("Escola: IPEP"); Console.WriteLine("Turma - ADS.2015"); Console.WriteLine("Professor orientador: Adriano"); Console.WriteLine("\n ________________________________________________"); Console.WriteLine("|||||||||||||||||||||||||||||||||||||||||||||||||||"); Console.Write("\n\nPara continuar, "); Console.Write("preencha o formulário na caixa de diálogo:\n"); nome f2 = new nome(); f2.ShowDialog(); 14 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Console.WriteLine("\nPara continuar, escolha alguma das ferramentas disponiveis.\n"); } private void txtConsole_TextChanged ( object sender, EventArgs e ) { } public bool intercept { get; set; } private void button1_Click_1 ( object sender, EventArgs e ) { txtConsole.Clear(); } private void button2_Click_2 ( object sender, EventArgs e ) { Close(); } private void button3_Click_1 ( object sender, EventArgs e ) { sobre f2 = new sobre(); f2.ShowDialog(); } private void button5_Click ( object sender, EventArgs e ) { Formextra f2 = new Formextra(); f2.ShowDialog(); } private void button4_Click_1 ( object sender, EventArgs e ) { extraconsole f2 = new extraconsole(); f2.ShowDialog(); } private void button4_Click_2 ( object sender, EventArgs e ) { Formextra f2 = new Formextra(); f2.ShowDialog(); } private void button5_Click_1 ( object sender, EventArgs e ) { interativo f2 = new interativo(); f2.ShowDialog(); } } 15 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Código fonte nome.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace Consolecomform { public partial class nome : Form { public nome ( ) { InitializeComponent(); } private void textBox1_TextChanged ( object sender, EventArgs e ) { } private void button1_Click ( object sender, EventArgs e ) { string curso = textBox4.Text, escola = textBox3.Text, nome = textBox1.Text; nome = Convert.ToString(textBox1.Text); Console.WriteLine("\n\n Dados do usuário: \n"); Console.Write("\t\t Nome: "); Console.Write(nome = textBox1.Text); Console.Write("\n\t\t Escola: "); Console.Write(escola = textBox3.Text); Console.Write("\n\t\t Curso: "); Console.Write(curso = textBox4.Text); Console.WriteLine("\n\n _____________________________________________"); Console.WriteLine("||||||||||||||||||||||||||||||||||||||||||||||||||"); Close(); } private void textBox3_TextChanged ( object sender, EventArgs e ) { } private void textBox4_TextChanged ( object sender, EventArgs e ) { } private void label6_Click ( object sender, EventArgs e ) 16 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 } private void nome_Load ( object sender, EventArgs e ) { } private void button2_Click ( object sender, EventArgs e ) { textBox1.Clear(); textBox3.Clear(); textBox4.Clear(); } private void button3_Click ( object sender, EventArgs e ) { Close(); } } } Código fonte TextBoxStreamWriter.cs using System; using System.Text; using System.IO; using System.Windows.Forms; namespace Consolecomform { public class TextBoxStreamWriter : TextWriter { TextBox _output = null; private RichTextBox richTextBox1; public TextBoxStreamWriter(TextBox output) { _output = output; } public TextBoxStreamWriter ( RichTextBox richTextBox1 ) { this.richTextBox1 = richTextBox1; } public override void Write(char value) { base.Write(value); _output.AppendText(value.ToString()); } public override Encoding Encoding { get { return System.Text.Encoding.UTF8; } } 17 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Ferramentas adicionais (Parte 1) Formulário Para iniciar o estudo do desenvolvimento e a análise comparativa de console e form no C#, é preciso demonstrar o comportamento de ferramentas cujo exercício tem funções semelhantes, porém cada aplicação terá sua programação comparada para evidenciar as diferenças estruturais de suas formações! Em nossa primeira análise, iremos estudar o comportamento e o desenvolvimento de um formulário simples na aplicação de console, logo após, será demonstrado em W.Form. Analise o seguinte fonte: 18 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Agora observe o resultado de sua execução: Em simples análise, o fonte se resume na declaração das variáveis do tipo “string” para os nomes do formulário, cujo exercício de preenchimentoestá sob vigor do comando “Console.Write();”, e para reconhecer as variáveis declarada e caracterizar sua função cujo a finalidade é transcrever o dígito armazenado em suas respectivas linhas, vigora o seguinte comando, “ nomedavariavel = Console.ReadLine();”. A impressão das informações digitadas no formulário cujo armazenamento estão contidas nas variáveis será exercida pelo comando, “Console.WriteLine(“” + variável);”. 19 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Windows Form Analise as seguintes fontes: 20 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Um trecho da interface gráfica do formulário: 21 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Resumo da formação 22 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Ferramentas adicionais (Parte 2) Operações em matemática simples Nessa etapa, iremos analisar a formação de simples operações matemática, analisando a formação dos algorítimos e a inclusão dos padrões na programação em C#. Vejamos o seguinte fonte em console: Veja o resultado: 23 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Nessa simples operação de adição, as variáveis declaradas estão no formato “INT” (Armazenam valores inteiros com sinal de 32 bites), cujo resultado da soma é : “A (Primeiro dígito) + B (Segundo dígito) = C (resultado da soma de a+b).” Agora vejamos o seguinte fonte (W.Form): Cujo resultado é: 24 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Observe que nesse fonte as variáveis estão no tipo “FLOAT” (Valor numérico com precisão decimal de 32 bites), além de apresentar o “IF” que no caso representa a instrução de saída do RádioButton1, que será acionado caso estiver selecionado(.checked) e executará a ordem transcrita em seu corpo. Essa ordem é a expressão matemática que estamos comparando a do console, visto no exemplo anterior. As variáveis estão declaradas da seguinte maneira: Legenda (c1 = Campo 1, c2 = Campo 2, c3 = Campo 3) As variáveis: C1 = Armazenará os dígitos do “TextBox1.Text”. C2 = Armazenará os dígitos do “TextBox2.Text”. C3 = Este campo receberá a soma das variáveis (c1+c2) e explicitará o resultado da expressão no campo 3 (TextBox3.Text) pelo vigor do “toString”. 25 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Extras imagens 1.0 Exibição do código fonte relativo a integração: (Imagem – Fabrício da Silva Dias) 26 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Extras imagens 1.1 Exibição do código fonte relativo ao formulário: (Imagem – Fabrício da Silva Dias) 27 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Extras imagens 1.2 Exibição do código fonte relativo a calculadora: (Imagem – Fabrício da Silva Dias) 28 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Resumo Análise do estudo Após analisar todo esse estudo sobre o comportamento das aplicações de Console-app (modelo texto) e Windows-Form (Modelo janela) em C#, podemos entender que apesar das diferenças cujo suas distinções devidamente definidas na integração não representa incompatibilidade, a optação de integrar os modelos abre diversas formas alternativas que caracterizará o programa em diversos aspectos nos mais variados objetivos do programador. gostaria de destacar um aspecto especial, cujo objetivo trata-se de observar a facilidade do desenvolvimento integrado de um ambiente gráfico em windows form para executar os processos na agilidade do modelo texto em console. Em resumo, a integração apresenta um desempenho sofisticado se comparado as aplicações desenvolvidas apenas no ambiente gráfico do Windows Form, além de não descartar o visual gráfico atrativo para o conforto do usuário. - Fabrício da Silva Dias – 2015 - 29 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 Refencias: Livros: - Visual Studio C# - Fundamentos, programação com ASP.NET, Windows Form e Web Services. - Conceitos de linguagens de programação. - C# - School-Ebook. (www.programmersheaven.com) Sites: - www.w3schools.com - www.msdn.microsoft.com - www.stackoverflow.com - www.devmedia.com.br - www.linhadecodigo.com.br - www.csharp-station.com - www.csharpens.com - www.c-sharpcorner.com - www.programmersheaven.com 30 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1 TAPI - Lógica de Programação – Aluno: Fabrício S. Dias – Prof: Jonas Bodê – ADS – IPEP – 2015.1
Compartilhar