Pular para o conteúdo principal

Usando o LINQPAD para testar suas DLL

No post anterior eu mostrei como é possível criar um script em C# dentro da janela de consultas do programa LINQPAD para que você possa executar os códigos que estão em suas DLL´s do framework .NET.

Hoje eu quero demonstrar que estas DLL´s podem conter formulários Windows e estes serem executados pelo LINQPAD.

No seu projeto de “class library” adicione um Windows Form e inclua os controles configurando-os como na tabela abaixo:

Controle Propriedade Valor
Form Text Cálculo da área de um quadrilátero
  Size 366;171
  (Name) frmCalculoArea
Label Text Altura
TextBox (Name) txtAltura
Label Text Largura
TextBox (Name) txtLargura
Button (Name) btnCalcular
  Text Calcular…

Alinhe os controles para que fiquem com uma aparência aproximada à da figura:

image

Este formulário vai calcular a área de um quadrilátero multiplicando a altura pela largura. Dê um duplo clique no controle “button” e insira o código que é demonstrado abaixo:

   12 /// <summary>

   13 /// Faz o cálculo a partir dos dados digitados

   14 /// </summary>

   15 /// <param name="sender"></param>

   16 /// <param name="e"></param>

   17 private void button1_Click(object sender, EventArgs e)

   18 {

   19     // variáveis que recebem os valores digitados

   20     int Altura, Largura;

   21 

   22     if (int.TryParse(txtAltura.Text, out Altura) &&

   23         int.TryParse(txtLargura.Text, out Largura))

   24     {

   25         MessageBox.Show(string.Format(

   26             "A área do quadrado é {0}", Altura * Largura));

   27     }

   28     else

   29     {

   30         // não foi possível converter os dados.

   31         MessageBox.Show("Não foram digitados valores válidos.");

   32     }

   33 }

Compile o projeto para gerar a DLL.

No programa LINQPAD inclua o código abaixo:

    1 // cria uma instância do formulário

    2 Estudo.frmCalculoArea fmForm = new Estudo.frmCalculoArea();

    3 // exibe o formulário em uma janela modal

    4 fmForm.ShowDialog();

Este código cria uma instância para o formulário na linha 1. Observe que é necessário mostrar o caminho completo incluindo o namespace.

Na linha 3 exibimos a janela do formulário como modal. É somente deste jeito que podem ser exibidas as janelas dentro do LINQPAD.

Configure o tipo da consulta como “C# Statements” no campo “Language”.

image

O próximo passo é adicionar referências a sua DLL e a biblioteca “System.Windows.Forms” através da tecla F4.

image

Para acrescentar referência a sua DLL clique no botão “Browse…”. Para adicionar “System.Windows.Forms” clique no botão “Add…” e escolha a biblioteca na lista de itens disponíveis. Note que se você digitar o conteúdo da lista é filtrado de acordo com o texto digitado.

image

Finalizado este processo, execute o seu código pressionando F5. Veja o script em execução:

image

Enquanto o formulário estiver sendo executado o script está bloqueado sendo possível interromper a qualquer momento clicando no botão “Stop” .

image

Postagens mais visitadas deste blog

Como gerar scripts para exportar dados no SQL Server 2008

Uma das tarefas mais comuns no trabalho com desenvolvimento de software que consome dados em bancos como o SQL Server 2008 é a necessidade de em algum momento precisarmos exportar os dados de um banco para outro. Quer seja para realizar testes ou fazer simulações existem várias maneiras de se fazer isto. Neste post eu quero demonstrar um recurso do SQL Server Management Studio (SSMS) que permite realizar esta tarefa rapidamente.Para os que estão acostumados a usar esta ferramenta, já devem saber que é possível gerar scripts para o schema e também transferir os dados entre dois bancos distintos. Isto pode ser feito se o SSMS puder conectar-se com as duas bases, de origem e destino. No exemplo que vou dar, o objetivo é gerar o script apenas para uma tabela do banco de dados de exemplo da Microsoft – Northwind.1. Iniciando o assistenteO assistente deve ser iniciado clicando com o botão direito do mouse sobre o banco onde se encontra a tabela a qual iremos gerar o script. Deve se clicar n…

Pivot dinâmico com SQL Server

Passo a passo para usar pivoteamento dinâmicoOs bancos de dados bem configurados e definidos armazenam os dados de forma a otimizar o acesso, evitando duplicidade e garantindo a integridade. Porém, em muitas situações isto pode dificultar a apresentação de forma adequada sendo necessário preparar os dados usando vários recursos entre os quais, fazer o pivoteamento.Se você não precisou ainda usar ou não sabe o que é consiste em transformar cada linha de uma determinada coluna em colunas de uma nova consulta.Assim, considere uma tabela que armazene as notas bimestrais de um boletim. Uma possível estrutura para esta tabela seria algo assim:ColunaTipo de dado/TamanhoDisciplinanvarchar(50)BimestreIntNotanumeric(5,2)Uma consulta select nesta tabela com alguns dados traria um resultado parecido com o abaixo:Porém pode ser que para apresentar estes dados em um relatório seja necessário transformar cada bimestre em uma coluna e agrupar as notas nestas colunas para que fique dessa forma:Isto po…

Desabilitando o auto commit no SSMS (SQL Server Management Studio)

(Ou, como prevenir desastres e manter o emprego a salvo…)Neste post vai uma pequena mas tremendamente útil dica para desabilitar o auto commit da aplicação SQL Server Management Studio (SSMS) que é usada por dez entre dez usuários do banco de dados SQL Server para fazer consultas, alterações e executar scripts no banco de dados. (Preferências à parte, realmente muita gente usa),A primeira e mais importante notícia é que, diferentemente da ferramenta do Oracle, este editor de scripts do SQL Server vem com o recurso de auto commit ativado por padrão, assim, qualquer instrução DML (alteração dos dados com update, insert e delete) ou DDL (alteração no banco como create, drop, alter, etc.) será imediatamente enviada ao banco e persistida.Isto pode ser altamente crítico pois se estiver executando as instruções em um banco de dados de produção não haverá muitas formas de desfazer se é que haverá.Inicialmente, pode se evitar muitos acidades executando estas instruções dentro de um bloco BEGIN…