ReMIX 09 Is Coming To Lisbon, Portugal

ReMIX 09For the first time, ReMIX is coming to Portugal.

The event will have a keynote and 3 tracks (Web Developer, UX and Architect) with 4 sessions each by the best speakers in each field.

Don’t miss it! Register now!

Microsoft Tech•Ed Europe 2009 Registration Opened

Microsoft Tech•Ed Europe 2009 Registration is now open.

There are a few novelties this year:

  • Due to attendee feedback, both the Developer and IT Pro editions will take place at the same time (November, 9-13).
  • The registration site uses Windows Live™ ID for authentication.
  • Registration prices are based on a tiered approach with the earlier you registration the more you will save. Register first, save the most!

Top Reasons To Attend Tech·Ed Europe 2009


    • MICROSOFT WINDOWS 7 - Learn about Microsoft's next-generation operating system

      Advancements Windows 7 brings to user productivity, security and PC management - all of which save businesses time and money.

    • MICROSOFT OFFICE and new ways to maximize business productivity

      The Office System track will help you deploy, adopt and develop on business productivity applications.

      Learn about deploying Microsoft Office to your users, building pervasive Microsoft Office SharePoint solutions and managing your work with Microsoft Business Productivity Visio.


    • STREAMLINING your way to cloud applications

      Find out how The Azure™ Services Platform reduces the need for up-front technology purchases, and enables developers to quickly and easily create applications running in the cloud.

    • SECURITY that helps cut application support costs

      Find out how Microsoft’s ForeFront technologies can secure your IT environment faster, and help you write more secure code to eliminate application support costs.

    • TRUTH about maximizing deployments and search

      Find out how SharePoint can help create that central repository, maximizing deployments and search that eliminates multiple versions and misunderstandings about the source of the "truth" on any given project.


    • VIRTUALISATION that helps leverage existing investments

      Get an in-depth understanding of today’s low-cost virtualization technologies and how they can help you make the most of your current software and hardware investments.

    • HOSTING for economies of scale

      Learn how to take advantage of Microsoft’s hosted services to scale your IT department’s communications and collaboration offering. You’ll also lower your hardware, management and power costs.

    • UNIFYING to reduce costs and help increase efficiencies

      Truly unified communications create a single communication infrastructure. That means reduced costs for PBX enhancements while improving productivity through unified inboxes along with rules that help workers manage interruptions.

    • DEPLOYMENT - maximize your existing IT infrastructure and do more with what you've got

      Learn how to get maximum value out of your existing IT infrastructure.

MIX09 Session Presentation Slides

On a previous post I introduced the feeds I created to subscribe to Mix09 session videos.

I’ve decided to also create a feed for the presentation slides:

MIX09 Session Videos – How I Did It

On my last post I introduced the feeds I created to subscribe to Mix09 session videos.

In case someone is interested on how I did it, here it is:

<%@ WebHandler Language="C#" Class="mix09" %>

using System;
using System.IO;
using System.Web;
using System.Linq;
using System.Xml.Linq;
using System.Net;
using System.Xml;

public class mix09 : IHttpHandler, IHttpAsyncHandler
    class WebClientOpenReadAsyncResult : IAsyncResult
        private AsyncCallback callback;

        public WebClientOpenReadAsyncResult()
            this.IsCompleted = true;
            this.CompletedSynchronously = true;

        public WebClientOpenReadAsyncResult(AsyncCallback callback)
            this.callback = callback;
            this.IsCompleted = false;
            this.CompletedSynchronously = false;

        public object AsyncState
            get { return null; }

        public bool CompletedSynchronously { get; private set; }

        public System.Threading.WaitHandle AsyncWaitHandle
            get { throw new InvalidOperationException("ASP.NET should not use this property ."); }

        public bool IsCompleted { get; private set; }

        public Stream Stream { get; private set; }

        public void Completed(object sender, OpenReadCompletedEventArgs e)
            this.IsCompleted = true;
            this.Stream = e.Result;
            if (this.callback != null)


    private static Uri mixSessionsUri = new Uri("");

    private HttpContext context;

    private string type;

    #region IHttpHandler Members

    public bool IsReusable
        get { return true; }

    public void ProcessRequest(HttpContext context)
        WebClient wc = InitializeRequest(context);

        if (wc == null)



    #region IHttpAsyncHandler Members

    public IAsyncResult BeginProcessRequest(HttpContext context, AsyncCallback cb, object extraData)
        WebClient wc = InitializeRequest(context);

        if (wc == null)
            return new WebClientOpenReadAsyncResult();

        WebClientOpenReadAsyncResult ar = new WebClientOpenReadAsyncResult(cb);

        wc.OpenReadCompleted += ar.Completed;

        wc.OpenReadAsync(mixSessionsUri, extraData);

        return ar;

    public void EndProcessRequest(IAsyncResult result)
        Stream stream = (result as WebClientOpenReadAsyncResult).Stream;

        if (stream != null)


    private WebClient InitializeRequest(HttpContext context)
        this.context = context;
        this.type = context.Request.QueryString["type"];

        if (string.IsNullOrEmpty(this.type))
            return null;

        WebClient wc = new WebClient();
        wc.Headers[HttpRequestHeader.UserAgent] = "Required User Agent";
        return wc;

    private void OutputFeed(Stream source)
        XmlReader feedReader = XmlReader.Create(source);

        XDocument feed = XDocument.Load(feedReader);

        var rss = feed.Element("rss");
        var channel = rss.Element("channel");
        var title = channel.Element("title");

        title.Value = string.Format("{0} ({1})", title.Value, this.type.ToUpper());
        channel.Element("link").Value = "";

        foreach (var item in channel.Elements("item"))
            string link = item.Element("link").Value;
            string session = link.Substring(link.LastIndexOf('/') + 1).ToLower();
            string enclosureUrl = string.Format("{0}/{1}.wmv", this.type.ToLower(), session);

                new XElement("enclosure",
                    new XAttribute("url", enclosureUrl)));


        this.context.Response.ContentType = "application/rss+xml";

        HttpCachePolicy cache = this.context.Response.Cache;
        cache.VaryByParams["type"] = true;

MIX09 Session Videos

Updated (2009Mar25): Added MP4 feed. 

Mix09 is over and I would like to watch some sessions.

I like to watch these kind of videos by subscribing them using the Zune Software as a podcast. I like the Zune Software because it downloads the “episodes” and I can watch them in any order and it never forgets where I was – even if I was watching it in the Zune.

Unfortunately, the only feed available ( does not include the videos.

Fortunately, the address of the videos is very predictable and I was able to build my own feeds:

The session videos are not available in all formats for every session (at least, not now) but, if you subscribe to all, you’ll get videos for all the sessions.

Subscribe and enjoy.

PDC And Tech-Ed Wrap-Up

(It might seem a bit late for this, but, lately, I’ve been having a lot on my mind. So here it goes.)

This was my first PDC. It was just as I had been told.

For those who don’t know, the PDC is all about the future. The near future (.NET 4.0 and Windows 7) and the further future (Windows Azure, “Oslo”, “Dublin”, “Geneva”).

Next year’s PDC (Yes! Apparently, there’ll be one next year) will be also held in Los Angeles from November 17 to 20, and (I suspect) will be the commercial launch of the Azure Services Platform and a better story to tell about “Oslo”.

Tech-ED EMEA Developers, on the other hand, is more about the present and the near future. But, this year, attendees were able to have a sneak peek at what had bee shown at the PDC.

Next year’s Tech-ED EMEA Developers will be held in Berlin from November 2 to 6. Probably, like in 2006, it will be the launch of .NET 4.0 and Visual Studio 2010.

And I intend to attend both.

PDC2008 Is Over! PDC2009 Is Coming!

PDC2008: Building A Schedule

I’m having a hard time building a schedule for the PDC. I’m mainly interested in four areas:

  • Cloud
  • Parallel
  • Identity
  • Oslo

and they all have overlapping sessions.

I guess I’ll have to cook the PDC and Tech-Ed EMEA 2008 Developers schedules together to see if I can cover the most of the subjects.

PDC2008: Is My House On The Cloud Or Is The Cloud In My House?

This year’s PDC is mostly about the cloud.

Everyone is talking about the cloud: cloud services, cloud computing, etc. but I’m not sure everyone has the same understanding of what the cloud is. Let’s say it’s a cloudy concept.

So, what is this cloud thing, anyway?

Let’s take Windows Home Server (WHS) as an example. Microsoft provides a set of services through that allows me to control my home server and access my other PCs in the home network. I guess I could say that is a cloud platform that puts my house in the cloud.

On the other hand, WHS is built on top of Windows Server 2003 which allows me to take full advantage of its web server (IIS) to expose services through Services that could be for my personal use or that I could provide to others, thus putting my house on the cloud.

At a larger scale, that’s how I see the cloud and it’s usage. An indistinct universe of service providers and service consumers where some are just providers, others are just consumers and others are both (service aggregators, value added brokers, etc.)

I guess that Microsoft’s view in regards to the cloud and WHS is aligned with mine because there will be two PDC sessions about this:

  • Tue 10/28 | 5:15 PM-6:30 PM | 409A

    Presenter(s): CJ Saretto, Fabian Uhse

    Learn how to build applications and services deployed on Windows Home Server that power PCs and devices throughout a connected home. See an example home automation and energy management service, and watch the creation of an on-premises service that exposes HVAC, window shades, and lighting controls to all devices on the home network. Hear how to package the service as a Windows Home Server add-in, quickly create a configuration UI, deploy a PC application for controlling the service, and demonstrate control from other devices such as TVs and cell phones.

  • Wed 10/29 | 10:30 AM-11:45 AM | 409A

    Presenter(s): Brendan Grant, CJ Saretto

    Learn how to leverage the Remote Access platform in Windows Home Server to expose on-premises services running in the connected home to the Internet. See how to expose a home automation service running on Windows Home Server to the Internet, and watch a demonstration that shows how to expose services that may be hosted on other devices inside the connected home using Windows Home Server as a gateway. Finally, see a sneak preview of Home Server and Live Mesh working together to further enhance the remote experience for the connected home.

Windows Home Server Resources

And, suddenly, a cloud in your future is not a ad thing, quite the opposite.

PDC2008: Are Windows Forms Dead?

This year’s PDC is all about the cloud (or cloudy as I call it) and the .NET Framework 4.0.

No one at Microsoft has ever told me that Windows Forms are dead (quite the opposite) but looking at the list of sessions for this year’s PDC I can only see WPF.

So the question remains: Are Windows Forms dead?