Until recently, when I wanted to set up a non-service application to run as a windows service, I always used srvany.exe. One of the problems with srvany is that it can’t detect if the application has crashed and therefore continues to report that it is still running. Since it doesn’t know when the application stops, the service manager doesn’t know to attempt to restart it.
In its place, I’ve started using a utility called nssm.
Update: Oh snap… nCrunch isn’t smart enough to pull in the external configurations like this, and so it won’t run any of my tests. Gotta find plan B.
As we’ve added new projects to our solution and new build environments, it has become increasingly difficult to maintain consistency in our settings across all projects. Here is how we addressed it.
Added a new MSBuild target file (CommonBuildConfigurationSettings.target) to the solution to contain these settings.
“Presentation is an external interface for a service your system offers to someone else… Data source is the interface to things that are providing a service to you.”
P of EAA pg 21
"One of the hardest parts of working with domain logic seems to be that people often find it difficult to recognize what is domain logic and what is other forms of logic. An informal test I like is to imagine adding a radically different layer to an application, such as a command-line interface to a Web Application. If there’s any functionality you have to duplicate in order to do this, that’s a sign of where domain logic has leaked into the presentation.
As you increase the number of functional tests against your site, you will find a lot of duplicate code. This increasingly makes maintenance difficult because a single UI change will require many changes across the tests. In response, Selenium has suggested the PageObjects pattern which represents each page on your site as an object. The details of interacting with a page is moved out of the test and into the page object.