Gareth O'Brien cf466eb109 Update README.md | 9 years ago | |
---|---|---|
.nuget | 9 years ago | |
Foghorn.Core | 9 years ago | |
Foghorn.Test | 9 years ago | |
Foghorn.WcfService | 9 years ago | |
Foghorn.WindowsService | 11 years ago | |
.gitignore | 11 years ago | |
Foghorn.etdtosconfig.xml | 11 years ago | |
Foghorn.sln | 9 years ago | |
README.md | 9 years ago |
Growl notification for Service Oriented Architecture
Foghorn is a WCF wrapper for the Growl for Windows .NET SDK.
Foghorn started because different modules of a large-scale ERP and production automation system needed to send notifications. That solution uses a Service-Oriented Architecture and various modules were written in different languages, running on different stacks and already communicating with each other using SOAP web services.
Foghorn goes on the server as part of the install, running as an independent Windows Service. User accounts are already being created in the ERP, they now have optional custom fields for Growl HostName; Port and Password. These are used to register a Foghorn subscription for the user via SOAP call. When various events occur in the Java-based ERP or in the C# .NET manufacturing management system they make a single SOAP call to Foghorn causing a notification from the server to all subscribers.
Note: This project is purely the Windows Service hosting a WCF service that wraps the Growl SDK. There is no UI as Foghorn is intended to be a service used as part of a solution that has its own UI.
Foghorn is simply a WCF wrapper around Growl.Connector from the Growl for Windows SDK http://www.growlforwindows.com/gfw/developers.aspx. It's purpose is to provide a single point of access for multiple SendingApplications to Notify Subscribers via the various protocols supported by WCF.
Given it is just a Growl SDK wrapper, the steps are much like using Growl.
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.
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.