Adicionando efeito fade-in e fade-out no seu formulário usando C#
by André Melo on Nov.22, 2009, under .net, DesignMode, fade, fadein, fadeout, interval, OnClosing, OnLoad, Opacity, ShowDialog, timer, transparencia, Windows Application, Windows Form
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);
}
}
Como Iniciar / Parar um Serviço do Windows instalado em sua máquina usando System.ServiceProcess
by André Melo on Nov.22, 2009, under Process, Service, ServiceProcess, Serviço, Start, Stop, Windows Service
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.
Criando um documento PDF passo-a-passo usando iTextSharp e Visual C#
by André Melo on Nov.22, 2009, under FileMode, FileStream, iTextSharp, pdf
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.
Adicionando conteúdo ao final de um arquivo usando as classes FileStream e StreamWriter
by André Melo on Nov.22, 2009, under arquivo, Encoding, file, FileMode, FileStream, StreamWriter, Write, WriteLine
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();
}
Como transformar em letras maiúsculas as iniciais de cada palavra em uma string
by André Melo on Nov.22, 2009, under CultureInfo, ProperCase, string, ToTitleCase
string frase = "gosto de java e c#";
frase = CultureInfo.CurrentCulture.TextInfo.ToTitleCase(frase);
Console.WriteLine(frase);
Console.ReadKey();
Credenciais Proxy nas solicitações HTTPS
by André Melo on Nov.22, 2009, under credenciais, https, HttpWebRequest, NetworkCredential, proxy, web, WebProxy, WebRequest
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;
Implementando segurança em WebService utilizando .NET
by André Melo on Nov.22, 2009, under asp .net, segurança, soap, SoapHeader, SOAPHeaderService, web, webservice, WebServiceBinding
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.
Analista de Sistemas
- André Melo
- Osasco, São Paulo, Brazil
- Analista de Sistemas 27 anos, Brasileiro, Casado, 2 filhos.
Pesquisar no blog
Arquivo
-
▼
2010
(7)
-
▼
maio
(7)
- Adicionando efeito fade-in e fade-out no seu formu...
- Como Iniciar / Parar um Serviço do Windows instala...
- Criando um documento PDF passo-a-passo usando iTex...
- Adicionando conteúdo ao final de um arquivo usando...
- Como transformar em letras maiúsculas as iniciais ...
- Credenciais Proxy nas solicitações HTTPS
- Implementando segurança em WebService utilizando .NET
-
▼
maio
(7)