Developer Setup

Requirements

Nugets

The build automation has dependencies on public and non-public Nugets. It loads public nugets from Microsoft's Nuget Gallery. Non-public Nugets are released to a private feed to which your organization will receive a unique private URL. You need to update the file ripple.config to use this feed.

Private Feed URL

To obtain your private Nuget feed URL login into our support website. The support home page should have a Nuget Feed entry under Your URLs. If you do not see this entry please create a support case and we will setup a private feed for your organization.

Edit ripple.config

Once you have obtained your private Nuget feed URL you need to edit ripple.config at the root of your source directory. This file contains XML. The first <Feed> element is a placeholder for your private Nuget feed.

If you are behind a corporate proxy

Configure npm to use your proxy (obviously, use your proxy address and port):

From a command line, cd to the $selfservice\source directory, then run:

npm config set proxy http://proxy.mycompany.com:8080
npm config set https-proxy http://proxy.mycompany.com:8080

Building

####bundle install bundle is a Ruby package manager. This will install the needed Ruby gems.

From a command line, cd to the $selfservice\source directory, then run:

gem install bundler

next:

bundle install

####npm install npm is a node package manager. This will install the needed node modules.

From a command line, cd to the $selfservice\source directory, then run:

npm install

If you are behind a corporate proxy

Configure bower to use your proxy. bower is a package manager for the web. It was installed as part of the previous npm install step.

Edit the $selfservice\source\.bowerrc file so that it looks like:

(obviously, use your proxy address and port)

(if that file doesn't exist, simply create it)

{
  "directory": "src/Web/content/scripts/bower",
  "proxy":"http://proxy.mycompany.com:8080",
  "https-proxy":"http://proxy.mycompany.com:8080"
}

####Update appsettings.config

Update the $selfservice\source\web\appsettings.config file.

####Update appsettings.rb

Update the $selfservice\source\config\appsettings.rb file.

####Database setup Be sure you have setup your database to support Dovetail SelfService, including:

####rake Rake will build the application and run the unit tests.

From a command line, cd to the $selfservice\source directory, then run:

rake

Take it for a spin

Two ways to get the web application running.

Launch!

rake package:app

This will build a production version of the application and configure an IIS web site at http://localhost:8990.

Visual Studio

Double click on the 2012 Visual Studio solution /src/selfservice.sln. Make sure that Web is your start-up project. If it is, the Web project should be bold in your Solution Explorer.

Hit Ctrl + F5 to build and launch the site.

Release

When you are happy with the web site and it comes time to release:

rake package:app config=release

The results/release directory will contain the built website ready for release.

Copy the contents of this directory to your test or production web server and setup a web application in IIS Manager.

Remember to use an application pool configured like so:

  1. Uses .Net 4.0
  2. Integrated
  3. You might want to set the pool's Idle-Timeout to 0 in the advanced settings.

Configuring Release Application Settings

Self Service supports a secret file that allow for overriding default config settings. This file should be named appSettings.Secret.config and belongs in the same directory as the default appSettings.config file. This secret file can override the default config file by removing, replacing, or adding settings. Below is an example of how to do each action in an appSettings.Secret.config file:

<?xml version="1.0" encoding="utf-8"?>
<appSettings>
  <add key="MyNewSetting" value="value" />

  <remove key="SettingThatShouldBeRemoved" />

  <!-- Remove the key first to avoid collisions -->
  <remove key="SettingThatShouldBeReplaced" />
  <add key="SettingThatShouldBeReplaced" value="newValue" />
</appSettings>

Target Platform?

An environment variable target64 is used to control if the target host is a 32 or 64bit Windows web server. This value will default to the automation host (your development machine). You will need to override this when your target host platform is different.

The way Clarify does authentication for contacts is platform dependent and contained in fc_crypt2.dll. We have two versions of this file included with the application. The correct version needs to be in your application's bin directory.

The target64 argument to the rake task tells the automation what platform you wish to target and copies the correct version of fc_crypt2.dll into the right place.

To control the target64 environment variable simply edit the deploy.bat or tack it on to the rake argument.

rake deploy:application config=release target64={true|false}

Configuration

appSettings.config

Before your take the web application for a spin you'll need to update your appSettings.config with your database connection settings for your database instance.

selfservice.log4net

Logging is configured in the selfservice.log4net_ file. The defaults should be fine. The logging library Log4net is very flexible and has many configuration options