Category Archives: 6839

Windows Home Server + Tsunami Tidal: To the Family 2.0

During TechDays Portugal 2008, Microsoft Portugal and JP Sá Couto S.A., via its Tsunami brand, launched the first Portuguese machine with Windows Home Server: the Tsunami Tidal.

To mark the event, Tsunami held a contest offering one of these machines to the best sentence about it.

When you hear everyone talking about Web 2.0, Enterprise 2.0, Life 2.0 and being at an event that promoted a World 2.0, the sentence that immediately popped my mind was: To the Family 2.0.

And it was with this sentence that I won the contest.

As I was giving my session wihle at the same time, Tsunami kindly allowed me to receive the price by proxy: my friend Nuno Gomes.

See the videos and photos of the event.

Upgrading the WCSF EventBroker Extension to WCSF 2.0

While preparing the demos for my session at TechDays Portugal 2008, I’ve noticed some changes in the Web Client Software Factory 2.0 that prevented the EventBroker Extension from compiling and running.

The problem ended out just being a little change in the WebClientApplication class. The virtual methods related to creating the builders changed.

To fix this, all it’s needed is editing the WebClientApplication class (CompositeWeb\WebClientApplication.cs, line 35).

Just replace the CreateBuilder override:

protected override Microsoft.Practices.CompositeWeb.ObjectBuilder.WCSFBuilder CreateBuilder(bool isSingleton)
{
    // Our builder adds an EventBrokerStrategy to the build.
    WCSFBuilder builder = new WCSFBuilder();
    builder.Policies.SetDefault<ISingletonPolicy>(new SingletonPolicy(isSingleton));
    return builder;
}



with an override of the AddBuilderStrategies method:



protected override void AddBuilderStrategies(IBuilder<Microsoft.Practices.CompositeWeb.ObjectBuilder.WCSFBuilderStage> builder)
{
    base.AddBuilderStrategies(builder);
    builder.Strategies.AddNew<EventBrokerStrategy>(Microsoft.Practices.CompositeWeb.ObjectBuilder.WCSFBuilderStage.PostInitialization);
}


Don’t forget that if you want to run it in IIS7 Integrated Pipeline mode, you have a few more changes to make.

WCSF 2.0 And IIS7 Integrated Pipeline Mode

While preparing the demos for my session at TechDays Portugal 2008, I’ve noticed that the Web Client Software Factory 2.0 doesn’t work with IIS7 in integrated pipeline mode because it’s trying to access the Request property of the current HTTP Context from the HTTP Application Start “event”, which is not available at this point.


This is an already known issue and you can vote to get it solved.


Meanwhile, there are two ways to work around this:


Changing the Composite Web Application Block


If you are comfortable with having your own build of this block instead of the provided strong named one, you only need to change one statement in the WebConfigModuleInfoStore class (WCSFBlocks-Feb2008\CompositeWeb\Source\CompositeWeb\Services\WebConfigModuleInfoStore.cs, line 105).


Just replace:

configuration =
    WebConfigurationManager.OpenWebConfiguration(context.Request.ApplicationPath + “/” +
                                                 configFilePath.Replace(context.Request.PhysicalApplicationPath, “”));

with:

configuration =
    WebConfigurationManager.OpenWebConfiguration(HttpRuntime.AppDomainAppVirtualPath + “/” +
                                                 configFilePath.Substring(HttpRuntime.AppDomainAppPath.Length));

Changing the application


If you prefer to (or have to) use the provided and strong named version of the Composite Web Application Block, you can always change your application.


Just open the generated global.asax file:

<%@ Application Language=”C#” Inherits=”Microsoft.Practices.CompositeWeb.WebClientApplication” %>

and add:

<script RunAt=”server”>

    private bool initialized;

    protected override void Application_Start(object sender, EventArgs e)
    {
        this.initialized = false;
    }

    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        if (!this.initialized)
        {
            this.initialized = true;

            base.Application_Start(sender, e);
        }
    }

</script>

Techdays Portugal 2008 – For A World 2.0

Microsoft Portugal will be hosting Techdays 2008 from Mars 12nd to 14th, right after the Portuguese launch of Microsoft Visual Studio 2008, Microsoft SQL Server 2008 and Microsoft Windows Server 2008 on Mars 11th.

This is the biggest and greatest tech event in Portugal and there will be lots of national and international speakers and contests.

I’ll be there. Come visit us.