Developer Setup
Requirements
- .Net 4.0 Full
- Node.JS
- Ruby (version 1.9.3 recommended)
-
Git install tip: When prompted, select the option to Run Git from the Windows Command Prompt
Git install tip: When prompted, select the option to Checkout as-is, Commit as-is
- Visual Studio 2012 or 2013 with IIS Express
- Visual F# Tools
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.
- Edit the first Feed element's Url attribute to contain your private nuget feed URL.
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.
- Set the DovetailDatabaseSettings.Type to either mssql or oracle
- Set the DovetailDatabaseSettings.ConnectionString to a valid database connection string
####Update appsettings.rb
Update the $selfservice\source\config\appsettings.rb file.
- Set the DATABASE variable to your database name
- Set the DATABASE_SOURCE to your database server
- Set the DATABASE_TYPE variable to either mssql or oracle
- Set the DATABASE_USER to a valid database login name
- Set the DATABASE_PWD to the password for the database login name
####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:
- Uses .Net 4.0
- Integrated
- 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.
- DovetailDatabaseSettings.Type should equal
mssql
ororacle
. - DovetailDatabaseSettings.ConnectionString should be a valid connection string to your database server.
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