P&P

Building a Release Pipeline with Team Foundation Server + Hands On Lab

The Practices & Patterns team has released another guidance.

This time it’s the Building a Release Pipeline with Team Foundation Server 2012.

Prism For Windows Runtime Is Out

Prism for the Windows Runtime and the associated AdventureWorks Shopper reference implementation is now available on the Windows Dev Center.

You can read all about it on Blaine Wastell’s blog.

Brian Noyes has also released a Pluralsight course: http://tinyurl.com/prismrtcoursesummary

Developing an End-to-End Windows Store app using C++ and XAML: Hilo

Patterns & Practices has released Hilo guidance: Developing a Windows Store app using C++ and XAML which is part of the Windows SDK.

Developing Multi-tenant Applications for the Cloud, 3rd Edition

Microsoft Patterns & Practices has recently released Developing Multi-tenant Applications for the Cloud, 3rd Edition.

Testing for Continuous Delivery with Visual Studio 2012 RC

Microsoft Patterns & Practices has released a book with guidance on Testing for Continuous Delivery with Visual Studio 2012 RC.

The book and its content can be found both in the MSDN site and the CodePlex site.

I’m deeply honored to have been part of the review panels.

Patterns & Practices Symposium Online – April 24, 2012

patterns & practices Symposium Online, April 24, 2012

Microsoft patterns & practices symposiums are held regularly in the U.S. and abroad. Most of the speakers are from the Microsoft patterns & practices (p&p) team. The event is aimed primarily at software architects, developers, and technical managers. patterns & practices develops applied engineering guidelines to help software developers and architects build great solutions on the Microsoft platform.

Read more…

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>

Web Client Software Factory 2.0 shipped

Web Client Software Factory 2.0

February 2008 Release

 

Resources

About the Deliverable

The Web Client Software Factory (WCSF) provides a set of guidance for architects and developers building enterprise Web applications. The factory includes samples, reusable code and a guidance package which automates key development tasks from within Visual Studio.

Using the Web Client Software Factory assets, developers can create Composite Web applications composed of independently developed and deployed modules. These modules are dynamically brought together at runtime into a common shell. Additionally the factory includes support for ASP.NET AJAX thus providing users with a richer and more responsive user experience.

New In This Release

The February 2008 release of the Web Client Software Factory has the following improvements to the June 2007 release.

  • Full support for Visual Studio 2008 and .NET Framework 3.5
  • Added ASP.NET AJAX extenders for Context Sensitive Autocomplete, AJAX Validation, and Real Time Search that can be used in existing ASP.NET sites and ASP.NET sites built using the Composite Web Application Block.
  • Added UI Composition capability through extending our dependency injection mechanism to support Pages, User Controls and Master Pages.
  • Added Dependency Injection on ASMX Web Services and JSON services.
  • Added a new set of Quickstarts and How-To topics on MVP, Modularity and the new AJAX extenders
  • Added a new Order Entry Reference application that demonstrates all of the new functionality.

In addition, this release of WCSF has the following community issues and fixes:

  • 42 Workitems closed including the top-voted items on CodePlex
  • Add ASP.NET AJAX Support (97 votes)
  • Web Client Software Factory Support for Enterprise Library 3.1 (62 votes)
  • Services through configuration (32 votes)
  • Support for using the Validation Application Block (16 votes)
  • Recipe support for Visual Basic .NET (20 votes)
  • Added Presenter support for Master Pages (11 votes)

WCSF geekSpeak: Download Available On Channel 9