Archive for 'Dicas'

Passando um método como parâmetro no flex

Olá a todos, novamente venho mostrar uma dica que poderá ser usada em ocasiões específicas. Quem está acostumado a programar sempre usa metódos ou funções com passagens de parâmetros, objetos, string, int, long e por ai vai. Mas além de parâmetros em alguns casos também seria interessante passar o método todo e não somente um objeto, e isto é possivel no flex com as3.  Abaixo segue o código de exemplo:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
 layout="absolute" creationComplete="init();">
  <mx:Script>
    <![CDATA[
      import mx.controls.Alert;

      private function init():void{
        //Passa um metodo como parametro
        recebeMetodo(meuMetodo);
      }

      private function meuMetodo():void{
        Alert.show("Executou meu metodo");
      }

      private function recebeMetodo(fnc:Function):void{
        //Nesta linha e como se estive sendo chamando meuMetodo();
        fnc();
      }
    ]]>
  </mx:Script>
</mx:Application>

No exemplo à cima logo no inicio chamamos o método “recebeMetodo” ele recebe como parâmetro uma Function, no nosso caso foi passo “meuMetodo” que simplemente joga uma mensagem na tela, mais poderia realizar qualquer operação tal com atualizar toda a tela.

Para efeito prático, imagine duas telas onde uma telas precisa chamar o método que esta na outra.

Por hoje e só, até à próxima.



				

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.

Versões beta do Office 2010 e Silverlight 4 já estão disponíveis para download

A Microsoft anunciou hoje no segundo dia do PDC09, o lançamento das versões beta do Microsoft Office 2010, Microsoft Silverlight 4 e Microsoft SharePoint Server 2010, além de novas oportunidades e recursos para que desenvolvedores criem aplicações que aproveitem todo o potencial do Windows e da internet.

A Microsoft também disponibiliza a versão Beta do Office Web Apps para clientes corporativos e do Microsoft Office Mobile 2010, levando toda a familiaridade do Office para a Web e o celular. Estes aplicativos Web irão oferecer aos clientes a fidelidade Office Format (capacidade de abrir, editar e salvar documentos do Office) e uma interface de usuário consistente entre o desktop e o navegador. Já o Office 2010 Mobile chegará ao público por meio do Windows Mobile Marketplace, para usuários do Windows Phone. Destaque para a possibilidade de criar e organizar documentos com menos tempo e esforço, além de armazenar seus documentos online para posterior acesso e edição de arquivos como os de Word, a partir de qualquer navegador Web.

O download da versão beta do Office 2010 está disponível Clique aqui para baixar

Para baixar a versão beta do Silverlight 4 acesse aqui

Para saber mais detalhes dos anúncios de hoje, acompanhar as notícias, imagens e assistir o evento ao vivo, acesse aqui

Fonte: http://msdn.microsoft.com/pt-br/dd430909.aspx

Microsoft abre inscrições de seu programa de bolsas de estágio e doutorado

A Microsoft, por meio de sua divisão de pesquisa e desenvolvimento Microsoft Research, abriu no último dia 17 as candidaturas em seu Programa Latino-Americano de Bolsas de Estudos para Doutorado e de Estágios para o ano letivo 2009/2010. Entre outros objetivos, como o fomento a iniciativas de P&D, o programa tem a finalidade de atrair para dentro da empresa estudantes talentosos interessados em trabalhar junto com pesquisadores da Microsoft Research e identificar potenciais candidatos às vagas nos laboratórios da companhia.

Qualquer estudante das universidades credenciadas na América Latina pode submeter aplicações diretamente à Microsoft. No entanto, conforme publicado na página oficial do programa será dada preferência àqueles indicados pela própria instituição de ensino, bem como aos que estiverem no segundo ou terceiro ano do Doutorado.

Os candidatos podem ser das áreas de ciências da computação e engenharia elétrica ou da computação e precisam possuir proficiência em inglês. Além disso, devem ter histórico acadêmico excelente e elevado potencial de pesquisa em temas relacionados à Tecnologia da Informação (TI).

Aceitas até o dia 31 de outubro, as inscrições devem ser obrigatoriamente realizadas online - o resultado do processo seletivo será conhecido até 8 de fevereiro de 2010.

Mais informações, bem como orientações e a ficha de inscrição para o programa podem ser obtidas aqui.

 

Fonte: http://blogs.msdn.com/itnews/archive/2009/08/31/microsoft-abre-inscri-es-de-seu-programa-de-bolsas-de-est-gio-e-doutorado.aspx

Envio de e-mail em .NET

O envio de e-mails é uma tarefa comum do dia-a-dia. Nossa comunicação com colegas de trabalho, com clientes, parentes e amigos. É uma ferramenta assíncrona, que permite que vejamos e guardemos textos, imagens e outros arquivos aos quais precisaremos no futuro, ou algo divertido ou belo que gostamos e tenhamos vontade de manter.

Um dos usos muito comuns que temos para o e-mail é para feedbacks e comunicação com clientes. Empresas costumam destinar uma sessão dos seus sites para esse tipo de comunicação, onde preenchemos um pequeno cadastro, geralmente contendo apenas o nome de quem pretende entrar em contato, e-mail para retorno, uma lista de assuntos para escolhermos e a mensagem. Isto é mais útil e seguro do que simplesmente divulgar um e-mail para contato, levando-se em conta o fato dos milhões de bots que escaneiam a internet em busca de endereços de e-mail, para envio de spam. Baseado neste modelo que é quase padrão, criaremos uma página “fale conosco”, fazendo envio automático de e-mails em ASP.NET.

De início, crie um novo projeto web no Visual Studio 2008. Dê a ele o nome de EnviodeEmails, que  será também o nome do nosso projeto ASP.NET. Dentro desta solução, criaremos dois projetos, um será o projeto web, e o outro será onde teremos nossas regras, chamado de RegrasDeNegocio, com a classe Negocio. Por questões de desempenho e segurança (visto que teremos de mexer com nome de usuário e senha na conexão com o provedor de email), o código de manipulação de dados será efetuado em outra camada que não a de apresentação.

Projetos no Solution Explorer
Projetos no Solution Explorer

O .NET Framework  possui classes nativas específicas para envio de e-mail. Estas classes podem ser encontradas no namespace System.Net.Mail. Usaremos também o namespace System.Net para criar um objeto de credenciais de rede, necessário para autenticação no servidor de e-mail. Após esta breve explicação, mãos à obra.

Criei um formulário simples, com três caixas de texto (nome do remetente, email do remetente e mensagem, sendo esta última multiline). Uma dropdownlist com alguns itens que serão o assunto do e-mail, uma checkbox para caso o remetente queira receber uma cópia do e-mail, um label que exibirá uma mensagem após o envio do e-mail e o botão de envio. Coloquei também um script manager e um update panel, para dar um efeito visual instantâneo. Observe abaixo como ficou a tela:

Form ASP.NET com os controles já posicionados.
Form ASP.NET com os controles já posicionados.

Vejamos como fica o code-behind da nossa página, o arquivo faleconosco.aspx.cs:

Código da página ASP.NET

Código da página ASP.NET(clique para ampliar)

Observe que a nossa classe negócio possui um método abstrato, cujos parâmetros são: email do remetente, nome do remetente, assunto, mensagem e se deseja receber uma cópia ou não. A chamada a esse método é executada dentro de um bloco try-catch no botão de envio na tela, que captura qualquer erro que possa ocorrer, e exibe no label para o usuário uma mensagem caso haja algum problema no envio do e-mail, ou uma mensagem de confirmação caso haja sucesso no envio.

Visual da página após envio de email com sucesso.

Visual da página após envio de email com sucesso.

Vamos agora dar uma olhada no código da classe Negocio, onde está de fato o código para o envio de email:

Código da classe negócio, contento o método envio de e-mail.

Código da classe negócio, contento o método envio de e-mail(Clique para ampliar).

No código acima, utilizei o endereço de SMTP e a porta de conexão do Gmail. Este endereço e porta podem variar de acordo com o seu provedor de email.

Espero que tenham gostado. Dúvidas e sugestões, o artigo está aberto a comentários.

Abraços e keep coding!

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é++.

Google Code Jam 2009

Olá,

O Google code jam é um desafio de programação do google, onde são postadas tarefas, que devem ser resolvidas utilizando quaisquer métodos, recebendo uma entrada randômicamente gerada e calculando um arquivo de saída a ser postado.

O link do desafio: http://code.google.com/codejam/

Para quem se interessou, cada tarefa é explicada e você tem um tempo limite para resolvê-la. Quando achar que sua resolução está ok, você baixa um arquivo de entrada randômicamente gerado, coloca a rodar na sua resolução e manda de volta a saída formatada de acordo com a especificação. O google analisa a saída automaticamente e te confirma se sua resolução é correta ou não.

Entre os prêmios, grana e vagas no google, além do reconhecimento da comunidade!

Boa sorte para quem vai participar …

Método em C# para ler arquivo de Texto

Olá, estou disponibilizando aqui, um simples método em C# para ler um arquivo txt do disco, ele faz a leitura linha a linha e joga os valores em um array, desta maneira você pode obter informações sobre quantidade de linhas do arquivo, qual frase/texto estava em um determinada linha.. e etc.
 
Detalhe estou usando a classe OpenFileDialog para abrir a caixa de dialogo no momento de importação do arquivo.
 
private string arquivo;
private string mensagem;
private void MetodoParaLerLinhaArquivo()
{
   
List<string> mensagemLinha = new List<string>();
   
using (OpenFileDialog openFileDialog = new OpenFileDialog())
    {
         openFileDialog.Title =
“xxxxxxxxxo”;
         openFileDialog.InitialDirectory =
@”c:\Program Files”; //Se ja quiser em abrir em um diretorio especifico
         
openFileDialog.Filter = “All files (*.*)|*.*|All files (*.*)|*.*”;
         openFileDialog.FilterIndex = 2;
         openFileDialog.RestoreDirectory =
true;
        
if (openFileDialog.ShowDialog() == DialogResult.OK)
         arquivo = openFileDialog.FileName;
    }
   
if (String.IsNullOrEmpty(arquivo))
    {
        
MessageBox.Show(“Arquivo Invalido”, “Salvar Como”, MessageBoxButtons.OK);
    }
   
else
   
{
    
using (StreamReader texto = new StreamReader(arquivo))
     {
        
while ((mensagem = texto.ReadLine()) != null)
        {
            mensagemLinha.Add(mensagem);
        }
     }
   
int registro = mensagemLinha.Count; //total de linhas do arquivo.
   
for (int i = 0; i < mensagemLinha.Count; i++)
   {
    
TextBox textbox1 = new TextBox();
     textbox1.Text += mensagemLinha[i];
    
File.WriteAllText(arquivo, mensagemLinha[i] + “1″);
   }
 }
}
 
 
Também estou escrevendo nesta semana uma série de dicas da linguagem C# no meu blog, para acompanhar clique aqui
 
Abraço e até…
 
 
Nelson Borges

Importando e exportando arquivos do Excel 2007 com o SQL Server Integration Services 2005

Introdução

Importar arquivos do Excel para uma base de dados SQL Server é uma tarefa comum para DBAs e desenvolvedores. Além disso, no caso de um data warehouse, é necessário extrair dados de várias fontes. Na maioria das vezes, o Excel é uma delas.

Como sabemos, importar e exportar dados do excel é simples. É somente arrastar alguns controles dataflow e configurar de acordo com a sua necessidade.

Importando arquivos do Excel 2007

Se você precisa importar um arquivo do Excel, pode usar um Excel Source dos Data Flow Sources no SQL Server Integration Services (SSIS) e selecionar a versão correta na lista.

Repare que o ultimo item da lista são arquivos das versões do Microsoft Excel 97-2005, o que significa que não há oficialmente como importar arquivos do Excel 2007 à partir desta lista. No entanto, seguindo os passos abaixo, conseguirá importar arquivos do Excel 2007 para o SQL Server.

1. Arraste um data flow source do tipo OLE DB Source para o data flow task.

2. Dê um duplo clique no OLE DB Source e clique no botão New para criar um OLE DB Connection Manager.

3. Clique no botão New na tela Configure OLE DB Connection Manager.

4. Selecione Native OLE DB\Microsoft Office 12.0 Access Database Engine OLE DB Provider à partir da lista de provedores OLE DB.

5. Selecione a opção All e no item Extended Properties digite Excel 12.0. Depois disso, você verá uma tela como a imagem abaixo:

6. Digite o nome do arquivo (incluindo o diretório) e certifique-se que ele tem a extensão xlsx.

7. Clique em OK, você será direcionado à tela inicial, para selecionar a pasta de trabalho (worksheet) do Excel.

Exportando para um arquivo do Excel 2007

Não há diferenças para exportar para um arquivo do Excel. É só modificar de novo o destino da conexão como antes.

Power for Rich .NET AJAX Applications

Olá,

Navegando por essa internet a fora, encontrei este projeto no codeplex que me chamou bastante atenção, e por isso gostaria de disponibilizar para os demais.

Developing and deploying rich internet business applications has never been this simple, fast, cost-effective and secure

Web development & UI
Visual WebGui is an open source RIA platform, atop standard .NET. Its framework enables
development & deployment of AJAX desktop-like web applications on the server which are then virtualized on a standard
browser with no specific installation.
See Web Design Tools project
See Silverlight extension project

Web Development & UI Design

Visual WebGui RIA platform/framework combines next generation web user & developer experiences which free you to focus on your customer’s satisfaction and delivering solutions with faster ROI. Since Visual WebGui is based on standard, proven technologies it enables you to deliver
flexible, high performing, complex web applications without the steep learning curve and risks involved.
RIA Web Development

Simply and quickly deliver complete RIAs

  • Simple Development - drag and drop designers
  • Simple Migration & Modernization - based on common APIs
  • Simple Adoption - no new learning skills
  • Rich UI Design
  • Complete Functionality
  • Complete Flexibility
  • Complete Extensibility

 

Para ver o projeto no codeplex, acesse -> http://visualwebgui.codeplex.com/

Abraço,

Nelson Borges