Demo Blog

Adicionando efeito fade-in e fade-out no seu formulário usando C#

by André Melo on Nov.22, 2009, under , , , , , , , , , , , , ,

Neste artigo vou explicar como você pode colocar efeitos de fade-in e fade-out em seus formulários usando C #.

Vamos à prática

Abra o Visual Studio (2005 ou 2008) e inicie uma novo projeto Windows Application usando C #. Adicione um botão no Form1.
Adicione mais um formulário ao seu projeto e inclua um controle timer nele. Este timer será usado para mostrar o efeito de esmaecimento. Defina a propriedade ‘Interval’ do timer1 para 100 milissegundos.

Agora escreva o seguinte código no evento Load do Form1:

private void Form1_Load(object sender, EventArgs e)
{
button1.Text = "Mostrar estilo";
}


Escreva o seguinte código no evento clique button1:

private void button1_Click(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.ShowDialog(this);
}


Agora no Form2 crie uma variável privada do tipo boolean que basicamente será usada para controlar se o formulário aparece ou desaparece.

private bool Checkinout;


Agora temos que substituir o procedimento OnLoad do Form2 e escrever o seguinte código:

protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (!DesignMode)
{
Checkinout = true;
Opacity = 0;
timer1.Enabled = true;
}
}


O DesignMode indica se o System.ComponentModel.Component está no modo de design ou não.
A propriedade 'Opacity' da classe System.Windows.Forms.Form é usada para especificar um nível de transparência para um formulário e seus controles.

Temos de substituir o procedimento OnClosing também, e escrever o seguinte código para ele:

protected override void OnClosing(CancelEventArgs e)
{
base.OnClosing(e);

if (e.Cancel == true) return;
if (Opacity > 0)
{
Checkinout = false;
timer1.Enabled = true;
e.Cancel = true;
}
}


Agora dê um duplo clique no controle timer e escreva o seguinte código no evento Tick:

private void timer1_Tick(object sender, EventArgs e)
{
if (Checkinout == false)
{
Opacity -= (timer1.Interval / 1000.0);
if (this.Opacity > 0)
timer1.Enabled = true;
else
{
timer1.Enabled = false;
Close();
}
}
else
{
Opacity += (timer1.Interval / 1000.0);
timer1.Enabled = (Opacity < 1.0);
Checkinout = (Opacity < 1.0);
}
}

0 comentários more...

Como Iniciar / Parar um Serviço do Windows instalado em sua máquina usando System.ServiceProcess

by André Melo on Nov.22, 2009, under , , , , , ,

Neste artigo você vai aprender como Iniciar e Parar um Serviço do Windows instalado em sua máquina usando o Namespace “System.ServiceProcess”.
Vamos criar um novo projeto do tipo Windows Application.

Nas declarações do sistema inclui o Namespace:

using System. ServiceProcess;

Inclua 1 Label, 3 Buttons e 1 TextBox no formulário. Conforme a imagem a seguir:




Agora escreva o seguinte código no evento Load do formulário:


Form1_Load private void (object sender, EventArgs e){
this.Text = "Controlador de Serviço";
label3.Text = "Get Status";
TextBox1.Text = " ASP.NET State Service";
}

Agora, escreva o código do Button1 que deverá retornar o status atual do serviço:

private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text != "")
{
try
{
ServiceController srvs = new ServiceController(textBox1.Text);
label3.Text = srvs.Status.ToString();
if (srvs.Status == ServiceControllerStatus.Running)
{
button2.Enabled = false;
button3.Enabled = true;
}
if (srvs.Status == ServiceControllerStatus.Stopped)
{
button2.Enabled = true;
button3.Enabled = false;
}
}
catch (Exception ex)
{ MessageBox.Show(ex.Message); }
}
else
MessageBox.Show("Digite o nome do serviço");
}

Agora, escreva o código no Button2 e Button3 para iniciar e parar o serviço:

private void button2_Click(object sender, EventArgs e)
{
try
{
ServiceController srvs = new ServiceController(textBox1.Text);
srvs.Start();
button3.Enabled = false;
button2.Enabled = false;
label3.Text = "Get Status";
}
catch (Exception ex)
{ MessageBox.Show(ex.Message); }
}

private void button3_Click(object sender, EventArgs e)
{
try
{
ServiceController srvs = new ServiceController(textBox1.Text);
srvs.Stop();
button3.Enabled = false;
button2.Enabled = false;
label3.Text = "Get Status";
}
catch (Exception ex)
{ MessageBox.Show(ex.Message); }
}

Aqui está a imagem do serviço iniciado:


E aqui está a imagem do serviço parado:


Espero que tenham gostado. É simples, mas é útil. Até a próxima.
0 comentários more...

Criando um documento PDF passo-a-passo usando iTextSharp e Visual C#

by André Melo on Nov.22, 2009, under , , ,

Este artigo mostra como criar um documento PDF usando iTextSharp. Antes de prosseguir, certifique-se de instalar e testar o iTextSharp com as linguagens da plataforma .NET.
Então, vamos ao exemplo. Crie uma nova aplicação Windows Application e adicione as linhas abaixo ao using do formulário:

using System.IO;
using iTextSharp.text;
using iTextSharp.text.pdf;


Coloque um botão no formulário e insira o código abaixo em seu evento click:

string texto = "Vamos ver se isso funciona mesmo!\n\n";
texto += "Mais uma linha de texto aqui\n\n";
texto += "E mais uma linha\n\n";
texto += "A última linha";

// cria uma instância de iTextSharp.text.Document
Document documento = new Document();

// cria um Writer para o documento
PdfWriter.GetInstance(documento, new
FileStream("exemplo.pdf", FileMode.Create));

// abre o documento
documento.Open();

// adiciona conteúdo
documento.Add(new Paragraph(texto));

// fecha o documento
documento.Close();

MessageBox.Show("Documento PDF criado com sucesso.");


Pronto! Execute a aplicação, clique no botão e encontrará um arquivo PDF recém-criado no diretório que contém o executável do programa.
0 comentários more...

Adicionando conteúdo ao final de um arquivo usando as classes FileStream e StreamWriter

by André Melo on Nov.22, 2009, under , , , , , , ,

Nesta dica mostro como usar as classes FileStream e StreamWriter para adicionar conteúdo a um arquivo já existente. Note que usamos o construtor de FileStream que aceita o caminho e nome do arquivo e o modo que ele será aberto. Ao fornecer o valor FileMode.Append nós estamos informando que, se o arquivo existir, mais conteúdo será adicionando ao seu final. Do contrário o arquivo é criado.
Já no construtor de StreamWriter nós estamos fornecendo a codificação dos caracteres, neste caso, UTF-8. Para finalizar, escrevemos no arquivo usando os métodos Write() e WriteLine() da classe StreamWriter.

Veja o código:

static void Main(string[] args){
// vamos criar uma instância de FileStream. Note que neste
// construtor nós estamos informando o caminho e nome do
// arquivo e o modo de abertura do arquivo. Se o arquivo já existir
// o novo conteúdo é adicionado. Se não existir, o arquivo é criado
FileStream fs = new FileStream("dados.txt", FileMode.Append);

// já temos o FileStream? vamos fornecê-lo a um StreamWriter
StreamWriter sw = new StreamWriter(fs, Encoding.UTF8);

// vamos escrever ou adicioar conteúdo no arquivo
sw.WriteLine("Esta é mais uma linha");
sw.Write("Hoje é: ");
sw.WriteLine(DateTime.Now);
sw.WriteLine("Esta é a última linha");

sw.Flush();
sw.Close();
fs.Close();

Console.WriteLine("Acabei de escrever no arquivo");
Console.WriteLine("Pressione qualquer tecla para sair...");
// pausa o programa
Console.ReadKey();
}
0 comentários more...

Como transformar em letras maiúsculas as iniciais de cada palavra em uma string

by André Melo on Nov.22, 2009, under , , ,

Este trecho de código mostra como transformar em letras maiúsculas as iniciais de cada palavra em uma string.

string frase = "gosto de java e c#";

frase = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(frase);

Console.WriteLine(frase);
Console.ReadKey();
0 comentários more...

Credenciais Proxy nas solicitações HTTPS

by André Melo on Nov.22, 2009, under , , , , , , ,

Recentemente passei por uns bon bucados quando precisei usar credenciais de proxy para web usando a classe HttpWebRequest acessando sites HTTPS com SSL.
Deixo aqui um exemplo de como fazer isso:

string query = "http://www.feedster.com/search.php?type=rss&q="
+srch+ "&sort=date&limit=100";
WebProxy proxyObj = new WebProxy("10.10.249.19", 8080);
NetworkCredential networkCredential = new NetworkCredential("name", "pass");
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(query);
proxyObj.Credentials = networkCredential;
req.Proxy = proxyObj;
0 comentários more...

Implementando segurança em WebService utilizando .NET

by André Melo on Nov.22, 2009, under , , , , , , ,



Quantas vezes já tentamos implementar segurança
nas chamadas aos nossos WebServices? Pois bem, veremos aqui uma forma simples de realizar esta rotina de segurança.


Introdução

Existem tantas maneiras de fazer isso, uma delas é a utilização de cabeçalho SOAP personalizado. Usando esse método, basta adicionar um cabeçalho SOAP em nossos WebServices.
Vamos inserir o cabeçalho SOAP e validar o seu conteúdo no servidor.
Quando a validação do cabeçalho SOAP é realizada, o WebService envia a resposta para o servico que à consumiu.
Até aqui tranquilo?


Vamos ao Código

Agora vamos ver como fazer isso no Visual Studio:

///
/// Resumo da descrição para SOAPHeaderService
///
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(Name = "TestService",ConformsTo = WsiProfiles.BasicProfile1_1)]
public class SOAPHeaderService : System.Web.Services.WebService
{
public SOAPHeaderService()
{
//Uncomment the following line if using designed components
//InitializeComponent();
}

Observe que o atributo "WebServiceBinding" tem o argumento "Name" definido como "TestService", isso eu explicarei mais adiante.
Agora, definimos o cabeçalho SOAP personalizado que será incluiso na mensagem SOAP.
Para isso, vamos criar uma classe herdada de "System.Web.Services.Protocols.SoapHeader", e suas propriedades.

public class UserCredentials : System.Web.Services.Protocols.SoapHeader
{
public string userName;
public string password;
}

Vamos adicionar uma instância do cabeçalho em nosso serviço:

public class SOAPHeaderService : System.Web.Services.WebService
{
// Visual studio will append a "UserCredentialsValue" property to
// the proxy class
public UserCredentials consumer;

Agora, nós temos que escrever um "Web Method" que utilizará esse cabeçalho.

[WebMethod]
[SoapDocumentMethod(Binding = "TestService")]
[SoapHeader("consumer",Required=true)]
public string GetBalance()
{
if (checkConsumer())
return consumer.userName + " had 10000000 credit";
else
return "Error in authentication";
}

private bool checkConsumer()
{
// In this method you can check the username and password
// with your database or something
// You could also encrypt the password for more security
if (consumer != null)
{
if (consumer.userName == "Alves" && consumer.password == "1234")
return true;
else
return false;
}
else
return false;
}

Note que eu adicionamos um valor "Binding", o mesmo que eu usamos para declarar o serviço. Também declaramos o cabeçalho SOAP que será exigido no método quando chamado.
Agora, a única coisa que resta é consumir o serviço com o cabeçalho SOAP:

SOAPHeaderService service = new SOAPHeaderService();
UserCredentials user = new UserCredentials();

user.userName = "Alves";
user.password = "1234";

service.UserCredentialsValue = user;

Console.WriteLine(service.GetBalance());

Adicionamos a referência do serviço e do cabeçalho SOAP, definimos as propriedades do cabeçalho SOAP, anexamos o cabeçalho com a mensagem SOAP e em seguida já podemos realizar a chamada do "WebService".
Este é o resultado depois de executar o serviço com o username = "Alves" e senha = "1234"



E este com outros dados:





Conclusão

Proteger os serviços web é uma coisa que muitos desenvolvedores ignoram, até porque parece ser uma tarefa difícil e desagradável. Mas com um pouco de paciência poderá ver que é bem mais simples do imaginamos.
Até a próxima.
0 comentários more...

Procurando algo?

use o mecanismo de busca para pesquisar no meu blog:

Não encontrou o que procura? Deixe um comentário no post para que possa solucionar a questão!