Archive for '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.

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

Criando uma janela modal para validação de erros com ASP.NET

A introdução do AJAX Control toolkit abriu muitas possibilidades interessantes para desenvolvimento de interfaces de usuário mais ricas em ASP.NET. Adicione a isso uma IDE maravilhosa como o Visual Studio, e obtemos resultados estonteantes, sem muito esforço.

Callouts para cada validator

Modal exibindo os erros ao clicar no botão

Neste artigo, veremos como melhorar as validações client-side usando o AJAX Control Toolkit. Abaixo estão screen shots do que nós estamos tentando conseguir. O propósito disto é melhorar a experiência do usuário com muito pouco trabalho.

Criando um form simples

Usando o Visual Studio (ou o Visual Web Developer) crie um novo “ASP.NET Web Application“ (File>>New>> Project>>Visual C#>>Web>>ASP.NET Web Application). Eu criei um simples formulário, como esse abaixo:

Um formulário ASP.NET simples.

Como podemos ver, ele se parece com qualquer outro formulário em ASP.NET. Ele tem alguns textboxes, e labels correspondentes. Eu adicionei alguns validators para cada textbox. Name e email são obrigatórios, definidos pelo “RequiredFieldValidator”. A idade deve estar entre 18 e 100, garantida pelo “RangeValidator”. Existem “RegularExpressionValidator”s para email, e podemos usar validators feitos por nós mesmos para definir o CEP. E por último, um botão “Submit”, ou seja: Uma página ASP.NET simples.

Adicionando os callouts dos validadores

Primeiro, colocamos um controle “ValidationSummary” na página. Agora, todos os nossos erros serão exibidos em um único lugar. Isto será útil para implementar a janela modal na próxima sessão. Note que coloquei a propriedade “Text” dos validators para “*”, pois desejamos que as verdadeiras mensagens de erro sejam exibidos no validation summary.

Os callouts são efetuados usando o “ValidatorCalloutExtender” do AJAX Control Toolkit. Arraste um “ValidatorCalloutExtender” do toolbox para a tela. Defina o “TargetControlID” deste extender para o ID do nosso validator. Coloquei cinco validators na minha página, então utilizei o mesmo número de controles “ValidatorCalloutExtender”, um para cada validator. Modifique o “TargetControlID” de cada extender para que aponte para um validator.


Depois de adicionar o validation summary e o ValidatorCalloutExtenders

Por incrível que pareça, isso é tudo o que precisamos para fazer callouts com um efeito bonito. Execute sua página e clique no botão “Submit” sem digitar nada nas textboxes. Você verá essas callouts. Tente digitar informações erradas em qualquer uma das textboxes, um callout aparecerá perto dele, exibindo a mensagem de erro da validação que falhou.

Criando a janela modal (E desabilitando o background!)

A melhor parte do nosso modal é que ele desabilita a janela completamente. Ela adiciona uma camada translucida sobre o background, deixando a tela limpa. Novamente, o AJAX Control Toolkit vem para nos auxiliar. O “ModalPopupExtender” é perfeito para isso.Arraste um controle desse tipo para a tela. Depois disso, criamos uma DIV que vai agir como popup para nós, conforme o código abaixo:

<ajaxToolkit:ModalPopupExtender ID=”ModalExtnd1″

runat=”server” TargetControlID=”lblHidden”

PopupControlID=”SummaryDiv” BackgroundCssClass=”popupbg” >

</ajaxToolkit:ModalPopupExtender>

<div id=”SummaryDiv” class=”popupdiv”>

<table width=”100%” style=”font-family: “Trebuchet MS”, Tahoma, Verdana”>

<tr><td bgcolor=”skyblue”>

Errors on this page !

</td></tr>

<tr><td>

<asp:ValidationSummary id=”ValSum1″ runat=”server” Font-Names=”Arail”>

</asp:ValidationSummary>

</td></tr>

<tr><td align=”center”>

<input type=”button” value=”OK” onclick=”$find(“ModalExtnd1”).hide();”/>

</td></tr>

</table>

</div>

<asp:Label ID=”lblHidden” runat=”server” Text=”hidden” CssClass=”hidelbl”>

</asp:Label>


Nós definimos a propriedade “PopupControlID” do “ ModalPopupExtender”, para que aponte para “SummaryDiv”, o id da <div> recém criada.
A propriedade “TargetControlID” do ModalPopupExtender, precisa ser definida. No nosso caso nós iremos definí-la apontando para um label escondido. Faremos isto por que queremos suprimir a funcionalidade “show/hide” deste extender. Nossa <div> consiste em um botão HTML, no qual a janela modal é escondida quando clicamos. Note também que movemos o validation summary para dentro da nossa <div>.

Form depois da adição do ModalPopupExtender e da

Form depois da adição do ModalPopupExtender e da

Vejamos agora o CSS para o nosso exemplo:

<style type=”text/css”>

.popupdiv{background-color:ivory;border:solid 1px skyblue;width:250px;display:block}

.popupbg{background-color:gray; filter: alpha(opacity=60); opacity:0.60}

.hidelbl{display:none;}

</style>


Existem três classes definidas aqui. A classe “popupbg” está atribuída à propriedade “BackgroundCssClass” do ModalPopupExtender. Perceba que definimos no código a opacidade do background na janela modal.

Agora, um pouco de javascript. Esta página contém uma função de javascript que é chamada para exibir ou esconder a janela modal, no evento “OnClick” do botão”submit”. Esta função deve ser inteligente o suficiente para exibir a janela modal somente em caso de falha da validação:

<script type=”text/javascript”>

function ShowModalDialog()

{var x= $find(”ModalExtnd1″);

Page_ClientValidate();

if(!Page_IsValid)

x.show();

}

function init()

{document.getElementById(“SummaryDiv”).style.display=“none”;}

</script>


Aqui nós utilizamos a API de validação client-side do “ASP.NET”.
Uma chamada ao “Page_ClientValidate” ativa todos os validators. Se algo falhar, a variável global do javascript “Page_IsValid” é definida como falsa. Agora para exibir ou esconder a janela modal dialog box, anexaremos um handler ao botão submit com o seguinte código Server-side:

protected void Page_PreRender(object sender, EventArgs e)

{

btnSubmit.Attributes.Add(”onmouseup”, “ShowModalDialog();”);

}


Execute o exemplo, com alguns dados inválidos. Veremos a exibição da janela modal.

Janela Modal exibindo erros ao clicar no botão submit. Repare que o callout está visível por trás do background translúcido.

Janela Modal exibindo erros ao clicar no botão submit. Repare que o callout está visível por trás do background translúcido.

Mas há um pequeno problema que eu encontrei aqui. Se a propriedade “display” da <div> estiver definida como “none” ela não será exibida, embora o background seja desabilitado. Então eu tive que definir esta propriedade com o valor “block”. Porém, isto nos traz outro problema: A <div> fica visível por uma fração de segundo, quando a página carrega. Para resolver isto, eu tive que adotar uma solução um tanto quanto deselegante, mas funcional. Defina no código da página:

<body onload=”init();”>


Execute o exemplo novamente. Desta vez a <div> não vai piscar quando a página carregar!

Quaisquer sugestões, comentários e críticas são sempre bem-vindos. Abraços e keep coding!