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.
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();
with an override of the AddBuilderStrategies method:
protected override void AddBuilderStrategies(IBuilder<Microsoft.Practices.CompositeWeb.ObjectBuilder.WCSFBuilderStage> builder)
Don’t forget that if you want to run it in IIS7 Integrated Pipeline mode, you have a few more changes to make.
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).
WebConfigurationManager.OpenWebConfiguration(context.Request.ApplicationPath + “/” +
WebConfigurationManager.OpenWebConfiguration(HttpRuntime.AppDomainAppVirtualPath + “/” +
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” %>
private bool initialized;
protected override void Application_Start(object sender, EventArgs e)
this.initialized = false;
protected void Application_BeginRequest(object sender, EventArgs e)
this.initialized = true;