Request a topic or
contact an Arke consultant
February 2008

Arke Systems Blog

Useful technical and business information straight from Arke.

About the author

Author Name is someone.
E-mail me Send mail

Recent comments




The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2024

Web Application Foundation - Part 2 - Preparing a client machine with Visual Studio 2008 for Continuous Integration (Draft)

The first part of this article series dealt with setting up the Continuous Integration server with CruiseControl.NET and related tools.  This article will deal with the tools, components, and configurations you need to set up on your development workstation in order to take full advantage of the CI environment.  Along with a few other items for consideration.

Installing the Deployment Project Extensions:

Web Deployment Extensions for Visual Studio 2008

Basically the Deployment Project will pull all necessary files and assemblies into a file structure that will allow for easier deployment from the developer's machine to another web environment.   The Deployment project will also combine and prepare all the web project's application code into a versioned assembly and .compile files.

To install the extensions...

  1. Make sure that all instances of Visual Studio are closed. 
  2. Download the msi from the link above. 
  3. Run it as administrator, and follow the wizard.



WiX (Windows Installer XML):

WiX - Homepage

You will need the weekly build version 3.0.3621 or better in order for the project to correctly load in VS2008.

WiX is a setup and installer framework created by Microsoft, and used as the installer for a number of programs including Office 2007.

Why WiX instead of the Visual Studio Setup Project?

There are number of reasons for this (below), but the most important one is that MSBuild does not know how to handle .vdproj (setup) projects.   (segway:  MSBuild is the build platform in .NET roughly equivalent of other programs such as ANT or make)

MSBuild is important if you plan on using Continuous Integration with a program like CruiseControl. 

WiX is also based on XML.  WiX projects and files are roughly human readable and easily allows for extensibility by following the XML spec.

To Install:

  1. Download WiX version 3.0.3621 or later
  2. Make sure that all instances of Visual Studio are closed
  3. Run the msi as administrator

This install will also include Votive (not supported in Express Editions) 


"ProjectAggregator2.msi, which is available here. This is a small COM component that the Visual Studio SDK framework requires. It has very minimum impact on your system and has a clean uninstall. This is only required for Visual Studio 2005. For Visual Studio 2008, this is no longer a requirement. "




Cruise Control Tray is a notification tray tool that monitors your build projects on the server.  It will inform you when a project is building correctly on the server, failing, and when it makes a new build.    To install the CCTray on your workstation, go to the web address of the server on which you installed Cruise Control.  You can download the CCTray tool from here.  After installing the tool, you can open the tray tool and set up which projects you would like it to monitor.

Adventure Works:

Adventure Works is the new Northwind.  While this is not a necessary install for the AWFF, it is used in the sample project for example's sake.  If you are going to run the sample application without changes, you'll need to install the AW database. 

Installation instructions and the download can be found here: Codeplex - SqlServerSamples

As a note, the sample makes use of the full standard AW database (not the Case Insensitive Versions or the Light versions or the warehousing versions)



  • Create a database (or use the AdventureWorks database)
  • At a command prompt (with admin access) run the ASP.NET SQL Server Registration Tool (ASPNET_REGSQL.exe).  The aspnet_regsql.exe file is located in the [drive:]\%windir%\Microsoft.NET\Framework\version folder on your machine.
  • Follow the wizard to register the database you created
  • Create new project from AWFF
  • In VS2008, on the menu, select "Project->ASP.NET Configuration" this will bring up the ASP.NET Web Site Administration tool.
  • Click on the Security Tab
  • Under the Roles menu, select "Enable Roles"
  • Now click on the "Create or Manage roles" link.
  • Create two new roles.  Admin and User
  • Go back to the Security Tab
  • Click on "Create User"
  • Create a user "Administrator", assigning both roles and making sure that he is Active.  Then click "Create User"
  • Click Continue
  • Go back to the Security Tab
  • Select "Manage Access Rules"
  • On the root folder, create a rule [All Users, Deny]
  • On the root folder, create a rule [Role: User, Allow]
  • On the Admin folder, create a rule [Role: Admin, Allow]
  • On the App_Themes folder, create a rule [Role: Anonymous, Allow]
  • Click on the Application Tab
  • Select "Configure SMTP e-mail settings"
  • Fill in settings and save.
  • Close the Web Site Admin tool
View Trenton Adams's LinkedIn profileView Trenton Adams's profile

Posted by trenton adams on Sunday, February 17, 2008 9:56 PM
Permalink | Comments (0) | Post RSSRSS comment feed

Flash talking to Javascript

For the past few versions of Shockwave Flash, loading a flash object from a browser is no longer a one-way street.  Flash objects can interact with the browser, including calling Javascript, and the browser can interact with Flash, including Javascript calling Flash's ActionScript.

There are some security restrictions in place - ActionScript has to be registered via ExternalInterface.addCallback, and by default you can't call scripts across servers.  But we were running into a problem I haven't seen clearly explained anywhere - calls from Flash to Javascript weren't working right only when displayed in Mozilla. A simple test with window.parent.doTest() worked in IE, not in Netscape.

It turns out that Mozilla has wrapped the Javascript object model in XPCNativeWrapper as part of a security fix a while back.  Unfortunately, part of the functionality of this wrapper includes hiding any Javascript functions outside of the 'self' container.

So, for Javascript calls to work right in Netscape, they need to only call functions in the self container (i.e. the javascript needs to be in the head for the current iframe.)  If you try to embed the .swf directly in an iframe, it won't be able to call any Javascript. 

Changing out test to self.doTest(), and moving the definition of the doTest function inside of the current iframe's HTML, fixed the problem.  But, we have to change our app a bit - previously the iframe directly included the .swf, and there is no way to make the Javascript available that way.

Maybe this is documented clearly somewhere, and if so, I'd love to know the link so that I can have better docs to review next time I'm stuck.  So far About exchanging data with Flex applications has been useful, but everything else I could find about flash javascript problems just pointed to the allowScriptAccess parameter Adobe added to combat cross site scripting.

Posted by David Eison on Friday, February 8, 2008 1:46 PM
Permalink | Comments (0) | Post RSSRSS comment feed