Foghorn is simply a WCF wrapper around Growl.Connector from the Growl for Windows SDK. It's purpose is to provide a single point of access for multiple SendingApplications to Notify Subscribers via the various protocols supported by WCF.

Why not just install Growl on the server?

  1. Growl for Windows does not run as a Windows Service. You can do that manually, but I needed a clean Windows Service to handle notifications that installs directly from an msi.
  2. Only a single instance of Growl can run on a machine, so you would need to stop the Windows Service and start the desktop Growl each time you want to configure forwarding, (i.e. subscriptions). I need this to occur seamlessly when a user 's Growl host details are added in the ERP and with Foghorn it is, via SOAP.


Given it is just a Growl SDK wrapper, the steps are much like using Growl.
  1. Register an Application (including the NotificationTypes it supports)
  2. Register a subscription, i.e. a Growl host that wants to receive notifications from this Application.
  3. Notify
Real-world: Your installer should probably register the application using a custom action or command line program. Like Growl, Foghorn supports multiple Applications, so it can act as a hub for Growl messaging. It also logs all traffic to the database so could be an audit log of who was sent what notification when. This data is accessible through the WCF service.

Development Prerequisites

  1. The project source does NOT include anything that has been installed with NuGet. Look at the references and install-package as required.
  2. EntitiesToDtos is used to create the Dto classes from the Entity Framework 5 edmx file. Use Foghorn.etdtosconfig.xml to import the configuration once you have installed EntitiesToDtos.
  3. Database: Using SQL Server create an empty database called Foghorn. Then execute FoghornModel.edmx.sql.

Changes to Foghorn.Core

If you need to add to the data model use the EDMX as the starting point. The use Generate Database from Model ... to update the SQL script. Remember the SQL script will be used by your installer to install the database. Once the data model is updated run EntitiesToDtos to regenerate the Dto classes.


See the test project for examples including a way to load the notification types for an application from an Excel file, potentially useful when installing your solution in the field.

Last edited Feb 17, 2013 at 1:14 PM by gobrien4418, version 3


No comments yet.