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 lança kit de desenvolvimento para Facebook

A Microsoft anunciou esta semana um kit de desenvolvimento de software (SDK, do inglês software development kit) que permitirá aos desenvolvedores criar aplicativos para o Facebook usando o Silverlight e o Windows Presentation Foundation (WPF). O kit vai expandir as possibilidades de uso de aplicativos de terceiros no Facebook, bem como transformar o Silverlight e o WPF em plataformas viáveis para desenvolvedores envolvidos na construção de redes sociais.

O kit conta com samples e ferramentas para o desenvolvimento de aplicativos Facebook em ASP, .NET, Silverlight, WPF e WinForms. Ele conta também com códigos para API, componentes, controles e samples.

Em outubro de 2007, a Microsoft anunciou investimentos de US$ 240 milhões no Facebook. O SDK anunciado esta semana é parte desta parceria. Os interessados em baixar o kit, podem fazê-lo aqui: http://msdn.microsoft.com/en-us/windows/ee388574.aspx

Fonte : MSDN ITNews

Abs,

Dica - Azure Academy

Olá,

Antes de pegar essa semana de folga (vir a Franca visitar a familia e resolver os 1501 problemas pessoais) estava eu fazendo os hands-on-labs na Microsoft referente o Application Lifecycle Management (VSTS), quando em um bate-papo, o grande Luciano Conde me passou este link (dica) referente a materiais sobre Azure, bom, comecei a ver, e apesar do material em algumas partes já estar meio desatualizado, achei muito bom, pois ele server como base para quem esta iniciando os estudos em Azure (meu caso).

O link é http://msdn.microsoft.com/pt-br/azure/dd637687.aspx e para quem tem dificuldades com inglês, o material é em português.

O que irá encontrar no link ?!

Apresentação 1 - Cloud Computing e o Windows Azure
Apresentação 2 - O sistema operacional Windows Azure
Apresentação 3 - Aplicações no Windows Azure
Apresentação 4 - Identidades na nuvem e o Projeto “Geneva”
Apresentação 5 - Dados na nuvem com o SQL Services
Apresentação 6 - Visual Studio e ALM na nuvem
Apresentação 7 - Serviços na nuvem com o .NET Services
Apresentação 8 - Colaboração na nuvem com o Live Services
Apresentação 9 - Controle versus Economia de Escala

Abs,

Treinamento de .NET

Olá Pessoal, estou montando um treinamento em .net, ainda não sei se será presencial ou online, mas já estou fechando o conteúdo do treinamento, abaixo segue o conteudo, caso alguém tenha alguma sugestão/critica sobre o contéudo, por favor deixem a sugestão/critica como comentário aqui no blog.

Total de horas: 36 horas
Conteúdo programático:

1-) Introdução
-Overview e dicas das certificações Microsoft.
-Introdução ao Microsoft .Net Framework.

2-) Visual Studio 2008 Team System
- Introdução ao Visual Studio 2008 Team System.
- Controle de Código Fonte.
- Tipos de Projetos/Tipo de Itens de Projetos disponíveis.

3-) Linguagem C# .Net- Introdução a Linguagem C# .Net.
- Atribuição composta e instrução de interação.
- Instruções de decisão.
- Arrays e Coleções.
- Classes e Objetos.
- Utilizando Herança
- Apresentando o Generics.
- Extensão de métodos.
- Lambda Expression
- Types Anonymous.

4-) Windows Form
- Introdução ao Windows Form.
- Conhecendo alguns dos principais controles do Windows Form.
- Introdução ao Windows Presentation Foundation

5-) Web Form
- Introdução ao asp.net web form.
- Conhecendo alguns dos principais controles do Asp.Net .
- Criando o primeiro website.

6-) WCF & Web Service
- Introdução a arquitetura de serviços.
- Comparando WCF e Web Service.
- Criação de um serviço WCF e Web Service.
- Como publicar os serviços no IIS.

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

Tweet em .NET

Dedicado aos usuários frequentes do Twitter:

Tweet-Me! Torna mais fácil para os usuários twitter para enviar tweets muito rápido do seu PC, o  Com Tweet Me, você não tem que usar um aplicativo complexo por apenas enviar seus tweets diários ou por hora. É desenvolvido em C # e WPF.

Por exemplo, simplesmente pressionando a Ctrl + Q quando você trabalhar com sua máquina, o  following tweet-bar popup aparece e ai você pode inserir sua mensagem:
TweetMe.png

Para ver saber mais acesse: http://tweetme.codeplex.com/

Evento DevFranca - Obrigado

Pessoal,

Gostaria de agradecer a todos que participaram do evento do primeiro encontro do DevFranca, foi muito bom, espero que este seja o primeiro de muitos.. Infelizmente devido ao tempo que nunca para, não foi possível falar de tudo o que queria, mas mesmo assim acredito que tenha contribuido para o crescimento de alguns.

Em breve o Dheyson e o Vinicius estarão liberando o material e as fotos do evento, espero que todos os que compareceram ao evento ajudem no crescimento da comunidade…

Um forte abraço e um obrigado ao pessoal que ajudou:

InfoKraft (Ricardo).
Unifran - (Jorge, Beto e Sr. Reis)
Comunidade em ação (Microsoft TechNet/MSDN)
Microlins
Com4
ITGroup

Sem vocês nada do evento teria sido possível.

 

Abraço,

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!

Image – Efeito de transição

Olá! Hoje vou falar um pouco sobre objetos personalizados, para quem já precisou de um menu feito de imagens ai vai o exemplo de um componente que pode ajudar.  Ao colocar uma imagem como menu uma das coisas que vem a cabeça seria, “quando eu passo o mouse sobre ele continua estatica”, não seria melhor se eu pudesse trocar a imagem e de quebra produzir um efeito de transição. Este foi o meu problema por estes dias, então achei um exemplo na net e fiz um adaptação nele.

O código abaixo e do componente que eu chamei de ImageMenu, com o efeito de transição já personalizado, ele trabalha com os states do Flex o que neste caso ajuda muito, este componente também usa o glow para criar um segundo efeito ao clicar na imagem. Para o glow, pode trocar a cor usada conforme a necessidade.

<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"
 creationComplete="init()" creationPolicy="all" >

 <mx:Script>
 <![CDATA[
public var upImage:String; //Imagem padrão
 [Bindable]
public var overImage:String; //Imagem para efeito do mouse
public var fncClick:Function; //Função usada para o click do mouse
public var boEfeitoClick:Boolean = true;  //Flag para controle do efeito glow do click do mouse
private function init():void{
    up.source = upImage; //Coloca a imagem padrão 

    //Adicioniona os eventos a imagem
    addEventListener(MouseEvent.ROLL_OVER, mouseRollOver);
    addEventListener(MouseEvent.ROLL_OUT, mouseRollOut);
    addEventListener(MouseEvent.CLICK, mouseClick);

    //Executa o efeito ao iniciar.
    mouseRollOver(null);
    mouseRollOut(null);
}
private function mouseRollOver(e:MouseEvent):void{
 if(boEfeitoClick)
     currentState = 'overState';
    else
     currentState = 'overState2';
}
  private function mouseRollOut(e:MouseEvent):void{
    currentState = '';
}

private function mouseClick(e:MouseEvent):void{
 if(fncClick != null)
     fncClick();
}
 ]]>
</mx:Script>
<mx:Glow id="glowImage" duration="400"
    alphaFrom="1.0" alphaTo="0.3"
    blurXFrom="0.0" blurXTo="50.0"
    blurYFrom="0.0" blurYTo="50.0"
    color="0x8b9094"/>
<mx:Glow id="unglowImage" duration="400"
    alphaFrom="0.3" alphaTo="0.0"
    blurXFrom="50.0" blurXTo="0.0"
    blurYFrom="50.0" blurYTo="0.0"
    color="0x8b9094"/>
<mx:states>
 <!--O primeiro estado usa o efeito glow para o click no mouse-->
    <mx:State name="overState">
        <mx:RemoveChild target="{up}"/>
        <mx:AddChild relativeTo="{this}">
         <mx:Image source="{overImage}" id="imgOver"
           mouseDownEffect="{glowImage}"
           mouseUpEffect="{unglowImage}"/>
        </mx:AddChild>
    </mx:State>
    <!--No estado 2 não usa o efeito glow, o flag boEfeitoClick é que controla -->
    <mx:State name="overState2">
        <mx:RemoveChild target="{up}"/>
        <mx:AddChild relativeTo="{this}">
         <mx:Image source="{overImage}" id="imgOver2"/>
        </mx:AddChild>
    </mx:State>
</mx:states>
<!--Ao mudar de um estado para o outro executa o efeito de transição-->
<mx:transitions>
    <mx:Transition fromState="*" toState="overState">
     <mx:Fade duration="500" alphaFrom="0" alphaTo="1" target="{imgOver}"/>
    </mx:Transition>
    <mx:Transition fromState="overState" toState="*">
     <mx:Fade duration="200" alphaFrom="0" alphaTo="1" target="{up}"/>
    </mx:Transition>
     <mx:Transition fromState="*" toState="overState2">
     <mx:Fade duration="500" alphaFrom="0" alphaTo="1" target="{imgOver2}"/>
    </mx:Transition>
    <mx:Transition fromState="overState2" toState="*">
     <mx:Fade duration="200" alphaFrom="0" alphaTo="1" target="{up}"/>
    </mx:Transition>
 </mx:transitions>
  <!--Imagem usada para troca-->
<mx:Image id="up"/>
</mx:Canvas>

O código abaixo é um exemplo de como utilizar o componente:

<componentes:ImagemMenu id="imgNome" upImage="../imagens/ImagemPadrao.png"
     overImage="../imagens/ImagemMouseOver.png"
     fncClick="{imgNome_click}"/>

Por enquanto e só, até++.

PRADO para PHP 5: Active Controls (AJAX)

Olá pessoal! Este é o segundo post da série sobre o framework PRADO para PHP 5. Se você chegou aqui diretamente, leia o primeiro post, pois estenderemos o projeto iniciado ali.

No primeiro projeto, implementamos um formulário simples que utiliza o método postback para o envio de requisições ao servidor web. O inconveniente desse método é o recarregamento da página inteira para que a exibição do resultado do processamento seja possível.

Uma forma melhor de obter o mesmo resultado, sem a desagradável atualização da página toda, é utilizar o método callback, que por sua vez se utiliza da tecnologia AJAX (Asynchronous Javascript and XML), capaz de atualizar apenas a região da página efetivamente alterada.

Quem desenvolve para a web sabe que trabalhar com AJAX pode ser penoso, principalmente se lidarmos diretamente com Javascript e XMLHTTPRequest. Felizmente, o Prado nos dá uma grande ajuda neste ponto, encapsulando as requisições AJAX em seus próprios componentes. E o que é melhor: em muitos casos, não é necessário sequer mexer com o Javascript!

Como assim? Vejamos como isso funciona na prática. Para começar, vamos fazer uma cópia de nosso projeto olamundo e renomeá-la como olamundo-2.0.

No arquivo /protected/pages/Home.page, vamos trocar os controles TTextBox, TButton e TLabel pelos seus “irmãos ativos”: TActiveTextBox, TActiveButton e TActiveLabel:

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
<html>
<head>
<meta http-equiv=“Content-Type” content=“text/html; charset=UTF-8″>
<title></title>
</head>
<body>
<h1>Olá, mundo!</h1>
<com:TForm>
Qual é o seu nome? <com:TActiveTextBox ID=“txtNome” />&nbsp;
<com:TActiveButton ID=“btnEnviar” Text=“Enviar” OnClick=“Page.btnEnviarClick” />
<br />
<com:TActiveLabel ID=“lblCumprimento” />
</com:TForm>
</body>
</html>

Essa é toda a alteração necessária neste arquivo.

No arquivo /protected/pages/Home.php, vamos acrescentar apenas uma linha ao início do arquivo, antes da declaração da classe:

<?php

Prado::using(‘System.Web.UI.ActiveControls.*’);

class Home extends TPage {

public function btnEnviarClick($sender, $param) {
$this->lblCumprimento->Text = “Olá, “ . $this->txtNome->Text . “!”;
}

}

?>

Como os controles ativos, por padrão, não são carregados automaticamente pelo PRADO, aquela linha serve para dizer ao framework que queremos utilizá-los. E isso é tudo. Você poderá ver o novo projeto em ação aqui e, se tiver olhos atentos, perceberá que a tela não “pisca” mais antes da exibição da saudação.

Para os mais “cismados”, e também para deixar nosso usuário ciente do que está acontecendo nos bastidores, vamos fazer um novo upgrade do projeto, agora para a versão olamundo-2.1. Acrescentaremos um notificador de atividade que será exibida na página enquanto a requisição AJAX vai e volta: uma div vermelha contendo o texto “Aguarde…”.

Vamos mexer no /protected/pages/Home.php:

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
<html>
<head>
<meta http-equiv=“Content-Type” content=“text/html; charset=UTF-8″>
<title></title>
<!– STYLE acrescentado –>
<style>
#notif {
background-color:#F00;
color: #FFF;
position:absolute;
visibility:hidden;
}
</style>
</head>
<body>
<!– DIV acrescentada –>
<div id=“notif”>Aguarde…</div>
<h1>Olá, mundo!</h1>
<com:TForm>
Qual é o seu nome? <com:TActiveTextBox ID=“txtNome” />&nbsp;
<!– Propriedades ClientSide Acrescentadas –>
<com:TActiveButton ID=“btnEnviar” Text=“Enviar” OnClick=“Page.btnEnviarClick”
ClientSide.OnLoading=“$(’notif’).style.visibility=’visible’”
ClientSide.OnLoaded=“$(’notif’).style.visibility=’hidden’” />
<br />
<com:TActiveLabel ID=“lblCumprimento” />
</com:TForm>
</body>
</html>

Foram acrescentados um estilo (para configurar a DIV com fundo vermelho, posicionamento absoluto e sem visibilidade inicial), a DIV propriamente dita e configuradas duas novas propriedades do componente TActiveButton: ClientSide.OnLoading e ClientSide.OnLoaded. A primeira propriedade contém um código Javascript (finalmente!) a ser executado quando a requisição é despachada para o servidor e a segunda o código para quando a resposta chegar. Em nosso projeto, a lógica é simples: enviou a requisição, exibe a DIV; a resposta chegou, oculta a DIV. O resultado disso? Veja aqui.

Os mais atentos vão notar que, nas duas linhas Javascript foi utilizado o atalho $(’notif’) ao invés do longo e tedioso document.getElementById(’notif’). Isso porque o PRADO também não tem a intenção de reinventar a roda, e, ao contrário, incorpora algumas das melhores soluções desenvolvidas por terceiros. No caso do Javascript, o PRADO já traz consigo o Prototype (de onde vem o atalho $) e o script.aculo.us, entre outros.

Fico por aqui com este post, esperando ter sido didático na minha exposição. Para terminar, zipei as três versões do olamundo, juntamente com o PRADO, e fiz upload aqui, para facilitar. Para quem tem uma instalação PHP 5, basta descompactar num diretório acessível pelo seu servidor web.

Um abraço, e até a próxima!