In understand that to make Windows Live Messenger profitable and free to all of us to use it has to have some kind of advertisement system attached to it. Sometimes these ads are useful, since they are different for each country and there are several major brands that use Windows Live Messenger advertisement.

Nevertheless, recently I’ve not been pleased by Messenger advertising. It has been really annoying. Now there are a lot of ads that just pop up out of out our main Messenger window showing some sort of flash animation. Some of them are pretty big and annoying when I trying to reach a contact that is hidden beneath the ad… Most of them disappear when the mouse leave the ad area (it is the minimum that I expect…) but other ads are only disabled by clicking a close button.

I am starting to understand those people that use software that patches Windows Live Messenger to remove all the advertisement. It violates the terms of usage and it is wrong to do it, but this Messenger advertisement “feature” is becoming to invade the user space. Some day in the future maybe I will consider the hypothesis of moving to a IM software like Pidgin (which I like pretty much
) that is compatible with MSN protocol.
There is even a portable version just like I love in software).

As you might know, it is possible to use Windows Live ID Web Authentication SDK in your websites as an authentication mechanism. You put an iframe in your homepage, which links to the Windows Live ID sign in page. After a successful authentication the user is redirected back to your website, where you receive the user’s ID. With this ID you can find your user data in your database, and do whatever you need.
Since ASP 2.0, you can use the ASP.NET Membership/Roles Provider as an authentication/authorization mechanism in your websites. You even have controls that make these tasks easy. If you are not familiar with these functionalities take a look at a nice video available in the ASP.NET website: Securing your Web Site with Membership and Login Controls.
Yesterday I started to build a new website, and I wanted to use Windows Live ID as the authentication mechanism. But since I was using an existing website framework that used ASP.NET Membership/Roles Provider not only for authentication but also for authorization purposes, I tried to integrate both. I wanted to eliminate the need for a new user/password for the user to remember, and maintain the benefits of Membership Provider.
You can download the demo website that I wrote which is a simplified version of the website that I am building. It is pretty simple. Do not forget to register you application and change the corresponding parameters in web.config.
The first step is to configure ASP.NET Membership provider. You can use a tool that allows you to add the membership provider tables to your database (C:\Windows\Microsoft.NET\Framework\v2.XXXXXX\aspnet_regsql.exe) or use Web Site > ASP.NET Configuration menu in Visual Studio that creates an SQL Server Express database to store the data.
In your web.config file you must setup the Membership Provider. I’ve done some configuration which allows you to create users using just an user name and a password (eliminating the usual e-mail, question and answer of password recovery, etc). You will be using Forms authentication.
I have a default.aspx page which has an iframe that has a link to Windows Live ID sign in page. When you click the sign in link you are redirected to the sign in page, and the forwarded back to your website, to a authentication handler page named webauth-handler.aspx. This page is part of a sample that comes with Windows Live ID Web Authentication SDK.

You will have just to add a few lines of code, that maps the Windows Live ID authentication to the Forms authentication of your website. You can see these lines in the demo website.
When you sign in with an account that is not registered in your website, a user account is created (only using the user ID as username and password), and you are redirected to a page where you can edit your profile.
Profile Provider is another great functionality of ASP.NET that allows you to assign custom data to your website users. In web.config you define which properties does a user profile has. Then you can access the Profile object from anywhere in your code, and read/write the current user profile properties. These properties can be changed, and Profile object has a Save method that persists the profile information into the Profile Provider (usually a database).
In default.aspx the current user profile is printed out into the page.

Finally it is available! 5 Gb of space available for each user. Secured by an SSL connection. Available on IE and Firefox. Attached to your LiveID account.
Store files for yourself
Using multiple computers? No problem. Store and access your personal files from anywhere online.
Share files with friends
Sharing with friends, co-workers, or family is easy when you all add and update files in a shared folder.
Share files with the world
Some ideas are too good to keep to yourself. Share them in a public folder that only you can update.
More information at skydrive.live.com

In the last few days I’ve been working with theVirtual Earth API in my spare time. I made a demo application of Virtual Earth. In this demo I used a Windows Forms application to wrap a Virtual Earth (VE) map (which is loaded in a HTML page into a WebBrowser control).
In that HTML page I added some Javascript functions that wrap the VE API in some functions which I call via the WebBrowser control. This way I can manipulate the map in Windows Forms. I’ve added support to my XBox 360 GamePad Component. You can use your game pad to pan and zoom in/out in the 2D map. You can also switch between map styles (road,aerial, hybrid, bird’s eye). This is still a developer’s toy, since you need XNA Game Studio 2.0 installed to be able to run this application. Oh, and you also need .NET Framework 3.0.
I was surprised when I found out that the beta 3D view in VE natively supports the XBox 360 controller.
The least but the last feature I added was support for Microsoft Speech. I added a welcome message, and if you say the name of a country (in English) the map moves into that country (or to be more specific, to the country name that the application understood…). I’ve achieved this by loading a XML file, which I found over the web, that contains the name of many countries (not sure if contains them all). After loading this file the code is pretty similar to my previous post about Microsoft Speech.
That’s all! I’ll be pleased to answer some doubts and hear suggestions about this demo.
Pois é! Como tinha anunciado há uns dias/semanas no blog hoje houve um evento da Microsoft no hotel Sheraton, em Lisboa. Este evento foi realizado à imagem do evento do Porto, mas no entanto a versão lisboeta apenas tinha uma track. Sempre facilitou a escolha (ou falta dela)
O evento começou com a intervenção da Cristina Carvalho (Microsoft Portugal). Realço 2 pontos da intervenção.
1º - Concurso de Gadgets 2007 Portugal - Faz uma daquelas coisas giras (e tantas vezes inúteis) para colocar na barra lateral do Windows Vista, ou na tua área personalizada do Windows Live. A ideia é ser original mas acima de tudo fazer algo útil para o maior número de pessoas possíveis. O jurí é composto pelos utilizadores,e os prémios vejam no site
2º WebCast 4 Share - Ciclos de webcasts disponíveis gratuitamente para visualização online e download. Preciso dizer mais? É uma questão de aproveitar.
A segunda pessoa a intervir foi o Pedro Rosa (Microsoft Portugal). Começou por divulgar o TechDays 2008. Será de dia 11 a 14 de Março, sendo o lançamento do Windows Server 2008, Visual Studio 2008 e SQL Server 2008 no dia 11 de Março. Foi ele que realizou a primeira sessão subjacente ao tema Visual Studio 2008 e .NET Framework v3.5, o que há de novo?. Confesso que deste evento era a sessão que menos me interessava por já ter visto uma análoga no TechEd Developers. Deixo a referência para o que escrevi na altura do TechEd sobre este tema aqui. Mesmo assim gostei imenso da sessão, pois foi diferente da “versão espanhola”
Foram feitas demonstrações de Silverlight e Popfly bem como LINQ, para aguçar o apetite para as sessões da tarde.
A sessão O que há de novo no SQL Server 2008 foi dada pelo Nuno Velho (Actual Training). Deixo de seguida a lista de algumas das novidades que foram expostas no que toca a este produto.
Nova instrução: MERGE. permite pegar nos dados de 2 tabelas para as consolidar numa só. Pode-se definir o comportamento do merge quando o registo existe nas 2 tabelas, apenas na de origem ou apenas na tabela de destino. É mais sintatic sugar do que outra coisa. Espero que já agora tenham optimizado o processo
Outo facilitador é a inserção dBruno Silva › Edit — WordPresse múltiplos registos num único comando insert (à imagem do mysql). INSERT INTO tbl_nome(campo) VALUES(’valor1′) (’valor2′) …
Passa-se a poder passar tabelas como parâmetro de Stored Procedures. Dentro das SPs a tabela é read-only e apenas pode ser definida como parâmetro de entrada (não de saída).
Resources Governor. Permite configurar por aplicação ou por regras específicas os recursos disponíveis para uma dada aplicação (ex:quantidade de memória e CPU).
Declarative Data Management - aplicação de políticas sobre a base de dados. Definir por exemplo que todas as tabelas com umas determinadas características devem começar por um prefixo TLB_. Existe um conjunto de objectos e atributos referentes às bases de dados e ao motor de bases de dados em si, bem como condições pré-definidas que podem ser usadas na construção das políticas.
Chage Data Capture - pode-se activar o logging de alterações na base de dados (inserção, edição e remoção de dados). Esta informação é guardada em tabelas extra. Futuramente o SQL Server incluirá um sistema de auditoria dos dados (exemplo: saber que utilizador alterou o quê e quando).
Data Compression - Compressão de dados. Pode-se não ter nenhuma, ter ao nível da linha ou da página de registos. Está prevista uma SP para calcular a percentagem de compressão, de forma a podermos tomar decisões sobre a aplicação de compressão. Atenção, como é óbvio estamos a trocar espaço em disco por tempo de processados em compressão/descompressão.
Mais um pormenor de sintatic sugar. UPDATE tabela SET campo+=10
Data Types - Novo tipo Filestream (ficheiros guardados em disco referenciados pela base de dados. Mas vão atrás quando se faz backup dela). O tipo Date passa a suportar valores desde 1-1-1 a 9999-12-31. O tipo time tem precisão de até 100 nano segundos. Novo tipo DateTimeOffset permite guardar qual o Offset GMT de uma data. Dados espaciais (coordenadas geográfias e geométricas) vem com um conjunto de funções para intersecção de rotas, áreas, etc.
A sessão O que é o LINQ foi apresentada pelo Luís Falcão (ISEL). Falou um pouco do LINQ to Objects, LINQ to SQL e LINQ to XML.
A sessão Desenvolvimento de Aplicações utilizando Silverlight foi apresentada pelo Nuno Godinho (Engifrota). A apresentação não trouxe nada de significativamente novo face à Expression European Designer Tour. Mas foi uma boa apresentação para quem não teve oportunidade de ir a este evento.
Por fim (the last but not the least) a sessão Serviços Live. Como criar aplicações utilizando os serviços Live foi dada pelo Pedro Rosa. Foi referido o BOOM que está a surgir do SaaS (Software as a Service) e de como os serviços Live fazem parte deste paradigma. Realço alguns serviços e respectivas funcionalidades.
Silverlight Streaming - a Microsoft aloja os teus vídeos juntamente com um player nos seus servidores, e apenas tens de colocar a referência onde o quiseres disponibilizar. 4Gb de alojamento gratuito para este tipo de conteúdos.
Windows Live Spaces Photo Control - Basicamente permite colocar num dado site um controlo com as fotos do teu Live Space. Podes escolher as fotos e passá-las para o teu site propriamente dito para serem processadas.
Windows Live ID - Facilita a vida aos utilizadores centralizando o processo de autenticação. Colocas o controlo no site, o login é feito nos servidores da Microsoft, e o teu site recebe um token respectivo ao utilizador. Com esse token consegues identificar o utilizador e potencialmente ter informação associada. No entanto passwords e nomes de utilizador não fazem parte das preocupações. Também é porreiro para poderes arrancar um site a partir do messenger já com a sessão iniciada!
Windows Live Contacts -Nada melhor do que um exemplo. Tens um site cheio de notícias, queres referenciar a notícia a um conjunto de amigos. Seleccionas de entre os teus contactos de messenger/e-mail (a partir de um controlo para o efeito) e envias somente essa informação para o site enviar os e-mails.
Windows Live Messenger - é possível colocar num site uma janela de conversação pública (ou mediante autenticação Live) para um contacto rápido de um visitante de um site ao responsável do mesmo. Tal pode ser usado como base para um Contact Center de uma empresa. Ou então para um tolo como eu que coloca no blog
O link está debaixo da minha foto de perfil. Lá podem também ver outra funcionalidade. A exibição de um ícone com o estado do contacto. Todas estas funcionalidade se encontram desligadas por omissão. Para a activar e aplicar no vosso site sigam as instruções em MessengerSays.spaces.live.com.
No final ainda deu para ver uma demonstração da utilização de um comando da Wii ligado ao PC para controlar uma aplicação com o Microsoft Virtual Earth.
Devo realçar algumas falhas no evento. Escassez de espaço foi uma delas. 3 pessoas sentadas de seguida e a do meio mal podia respirar… Nos coffee breaks era missão quase impossível chegar às bebidas ou aos tabuleiros. Bem, pelo menos é sinal de uma grande adesão
Outro problema notório foi a ligação à internet. Infelizmente já começa a ser hábito. No evento do Expression aconteceu o mesmo. Este problema recorrente prejudica a imagem dos produtos baseados na web que são apresentados. Alguns até podem ser lentos. Não discuto isso. Mas lentidão como vi hoje só pode ser fruto de uma ligação de má qualidade. Até porque já experimentei muita coisa em casa e não tive problemas de performance. No fundo tenho esperança que as pessoas ponham a mão na consciência e experimentem em casa antes de começar a dizer que os produtos são lentos. Se em casa forem lentos, então digam mal à vontade, porque então provavelmente têm razão.