Tag Archives: Dicas

Encontrando domínio do email AS3

Olá a todos!  Por estes dias estive trabalhando com servidores de email, e surgiu a necessidade de buscar o domínio do email, então desenvolvi uma função para realizar este trabalho. Achei interessante postar aqui como uma breve dica espero que seja útil.

private function buscaDominio(email:String):String{
  var array:Array = email.split("@");
  
  if(array[1] != null){
    return array[1]
  }
  else{
    return "";
  }
}

Abraços, e até a próxima.

Passando parametros via post no Flex

Olá, para aqueles que estão acostumados com jsp, php, asp e bastante comum o uso de passagem de parâmetros via post, no caso do Flex  e mais comum o uso de web services, serviços http, e remote object. Estava criando um exemplo simples em Flex e não estava querendo usar o fluorine para integrar com o .net, até porque era uma página so, coisa muito simples, então acabei chegando em uma solução bem simples que lembra um pouco os tempos que eu trabalhava com jsp. Para aqueles que tem uma página que recebe parametros via post com este exemplo poderá usar o flex para realizar este procedimento.

Codigo Flex, chamada de uma página que recebe parametros via post:

private function chamaPaginaPost():void{
    var cabecalho:URLRequestHeader = new URLRequestHeader ("Content-type", "application/octet-stream");
    var url:String = "http://localhost/MinhaPagina.aspx";
    var requisicao:URLRequest = new URLRequest(url);

    var variaveis:URLVariables = new URLVariables();
    variaveis.codigo = 1;
    variaveis.nome = "José da Silva";

    requisicao.requestHeaders.push (cabecalho);
    requisicao.data = variaveis;
    navigateToURL(requisicao, "_blank");
}

Logo abaixo o exemplo da página aspx com C# que receber os parâmetros via post, esta pagina poderia ser em uma php, asp ou outra qualquer.

protected void Page_Load(object sender, EventArgs e)
{
    string codigo;
    string nome;

    try
    {
        codigo = Convert.ToString(Request.Params["codigo"]);
        nome = Convert.ToString(Request.Params["nome"]);

        Response.Write("Código: " + codigo + "<br/>");
        Response.Write("Nome: " + nome);
    }
    catch (Exception ex)
    {
       Response.Write("Erro" + ex.Message);
    }

}

Espero que tenha sido útil, até++.

What is My IP ?

Provavelmente já deve ter usado o site What is My IP, correto ? Bom que tal ter este servço no seu site ?

Hoje efetuando minhas navegadas rotineiras por esse mundão chamado internet.. encontrei no codeplex um pequeno projeto em bacana, se trata justamente disso, veja abaixo.

Project Description
“What is my IP?”, is presumably the most fundamental question for every web surfer. Simple feature returning IP address could enhance the functionality of any ASP.NET web site, contributing to better user experience.

Simple feature could be added to any ASP.NET page returning the IP address.

Working DEMO is available at: http://www.webinfocentral.com/TermsOfUse.aspx

//*****************************************************
// Module           :   GetMyIP.cs
// Author           :   Alexander Bell
// Copyright : 2007-2009 Infosoft International
// Version          :   1.03
// Description      :   Get my IP address

//*************************************************
// DISCLAIMER: This Application is provide on AS IS
basis without any warranty
//*************************************************

using System;
using System.Web;

public static class MyIP {
    public static string Address {
        get {
            try {
                if (HttpContext.Current == null) return String.Empty;
                return HttpContext.Current.Request.UserHostAddress;
            }
            catch { return String.Empty; }
        }
    }
}

Sample Web Page contains single Button1 server control with “onclick” :

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">

        <title>WHAT_IS_MY_IP | Infosoft International Inc</title>

        <script runat="server">
            protected void Page_Load(object sender, EventArgs e)
            {
                Button1.Attributes.Add("onclick",
                "javascript:alert('Your IP address: "
+ MyIP.Address + "')");
            }
        </script>

    </head>

    <body>
        <form id="form1" runat="server">
            <asp:Button ID="Button1"
                runat="server"
                Text="WHAT IS MY IP"
                UseSubmitBehavior="False" />
        </form>
    </body>
</html>

Sample screenshot showing IP address follows:
WhatIsMyIP_screenshot.png
Fig.1. Sample screenshot

Recent AJAX-enhanced RIA online projects by Dr. Alexander Bell

 

Mais informações: http://showmyip.codeplex.com/

Project contains following files:

1. GetMyIP.cs (class module written in C# to be placed in App_Code directory)
2. Default.aspx (sample web page contains a button control to pop-up JavaScript message, showing IP address)
3. WhatIsMyIP_screenshot.png (sample screenshot)

The code module (1) is rather straightforward: it’s using HttpContext object to return IP address:

Limpando componentes visuais em Flex

Olá a todos, uma das primeiras necessidades quando se desenvolve interfaces e um método genérico para limpar a tela. Este post trás uma classe genérica para limpar componentes visuais da tela, ela não tem todos os componentes visuais, mais pode ser adicionados novos componentes seguindo o modelo.

package
{
  import flash.display.DisplayObjectContainer;

  import mx.containers.Canvas;
  import mx.controls.CheckBox;
  import mx.controls.ComboBox;
  import mx.controls.DateField;
  import mx.controls.NumericStepper;
  import mx.controls.TextInput;

  public class LimpaTela
  {
    public function LimpaTela()
    {
    }

    public static function limparTela(obj:DisplayObjectContainer):void{
      for(var i:int=0;i<obj.numChildren;i++){
        if(obj.getChildAt(i) is TextInput){
          TextInput(obj.getChildAt(i)).text = "";
        }
        else if(obj.getChildAt(i) is CheckBox){
          CheckBox(obj.getChildAt(i)).selected = false;
        }
        else if(obj.getChildAt(i) is ComboBox){
          if(ComboBox(obj.getChildAt(i)).editable){
            ComboBox(obj.getChildAt(i)).text = "";
          }
          ComboBox(obj.getChildAt(i)).selectedIndex = -1;
        }
        else if(obj.getChildAt(i) is NumericStepper){
          NumericStepper(obj.getChildAt(i)).value = 0;
        }
        else if(obj.getChildAt(i) is DateField){
          DateField(obj.getChildAt(i)).text = "";
        }
        else if(obj.getChildAt(i) is Canvas){
          limparTela(Canvas(obj.getChildAt(i)));
        }
      }
    }

  }
}

Trata se de um método recursivo, ou seja ele chama ele mesmo no caso de componentes que possam ter outros componentes, este é o caso do ‘”Canvas” que serve como um container para se adicionar outros componentes. Na verdade o Canvas pode ser usado como uma tela, onde são colocados todos os componentes visuais que se deseja limpar e logo em seguida chama a função para limpar. Segue um exemplo de como se utilizar esta classe:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
   layout="absolute">
<mx:Script>
  <![CDATA[
    private function btnLimparTela_click():void{
      LimpaTela.limparTela(cnv);
    }
  ]]>
</mx:Script>

  <mx:Button id="btnLimpaTela" x="119" y="218" label="Limpar Tela"
    click="btnLimparTela_click();"/>
  <mx:Canvas id="cnv" x="10" y="10" width="200" height="200">
    <mx:TextInput x="20" y="10"/>
    <mx:ComboBox x="20" y="40">
    <mx:Array>
      <mx:String>Franca</mx:String>
      <mx:String>São Paulo</mx:String>
    </mx:Array>
    </mx:ComboBox>
  </mx:Canvas>
</mx:Application>

 
Até a proxima!

Alô Flex

Dando continuação ao post anterior falando um pouco sobre como codificar. O Flex usa tags padrão XML e Action Script. Um exemplo de uma tags padrão XML da biblioteca Flex 3 e o Button veja: <mx:Button x="470" y="159" label="Button"/>.

Para iniciar um exemplo Web bem simples, uma aplicação com um botão que dispara uma mensagem na tela. basica…

<?xml version="1.0" encoding="utf-8"?>

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

    <mx:Script>

        <![CDATA[

            import mx.controls.Alert;

            private function btnExemplo_click():void{

                Alert.show("Alô Flex!");

            } 

        ]]>

    </mx:Script>

    <mx:Button id="btnExemplo" x="32" y="10" label="Meu Botão" click="btnExemplo_click();"/>

</mx:Application>

Application e o container para aplicações Web, ao criar um novo Flex Project no Flex Builder ele já gera automaticamente uma Application, o componente Button tem uma referencia no seu evento click para a função btnExemplo_click, que dispara a mensagem de alerta. Tudo que esta dentro da tag de Script e  programação em Action Script. Até a próxima.
 
 

Resharper 4.1 - Uma dica interessante

Com o crescente aumento do desenvolvimento de software, cada vez mais as empresas exigem software com qualidade e rapidez. No mercado é comum escutar os termos de Scrum e Agile que são metodologias de desenvolvimento especificas a Software.

Por isso deixo aqui uma ótima dica, trata-se de um software de refactoring com um excelente itellisense e outras N funcionalidades. Ele possui um módulo de inteligência que identifica sua sintaxe e dependendo das configurações do seu projeto ele faz sugestões do seu código seguindo o Design Patterns de desevolvimento. Muito bom, ainda mais para iniciantes, tenho certeza que ele irá te ajudar a diminuir o tempo de desenvolvimento de código,  ele não é pago mais compensa comprar a licença.

O mais interessante de tudo é que ele é totalmente integrado com a IDE do Visual Studio :)

Obs: Infelizmente como nada é perfeito, o Resharper é um pouco pesado e se caso sua máquina conter 512mb ou inferior não é recomendado pois ele consome muita memória, no entanto se este não for seu cenário, faça um teste.. vale a pena.

Mais informações:
http://www.codeproject.com/KB/showcase/ReSharper_4.aspx

Abraço,

NB