REQUEST A DEMO

Blog

Configuring Topshelf Using A StructureMap Container

January 20, 2010 At Dovetail we use StructureMap a lot. Lately we’ve also been using Topshelf a lot too. This post takes a look at how you can marry these two technologies together. We will be using the StrucutreMap container to configure which services get started by Topshelf at runtime. Simple Services   Let’s start simple. We need a way to identify which configured types want to get configured to be spun up by Topshelf. To accomplish this I created an interface called ISimpleService which includes only the Start and Stop methods that Topshelf uses to manage the services lifetime.   public interface ISimpleService { void Start(); void Stop(); }   Next up we’ll update and expand the example from my previous post Controlling Application Lifetime In Topshelf to have it implement the ISimpleService. We’ll also add another service in charge of spamming the log file.   public class LogSpamService :…

Controlling Application Lifetime In Topshelf

One of Topshelf’s best features is the ability to easily host one or more services running side by side. In this post we will create a Topshelf service which will shut down the application. Lets take a look at how it is done.     Coordinating the Service   Let’s create a fake Health Monitoring service which will, sometime in the future, tell Topshelf to shut the application down. The Topshelf hook for controlling the state of all the services it is hosting is a type called IServiceCoordinator. Here is the code for our health monitor. public class HealthMonitoringService : IHealthMonitoringService { private readonly IServiceCoordinator _serviceCoordinator; private readonly ILogger _logger; private Timer _timer; private int _healthCheckCount = 0; public HealthMonitoringService(IServiceCoordinator serviceCoordinator, ILogger logger) { _serviceCoordinator = serviceCoordinator; _logger = logger; } public void Start() { _logger.LogWarn("The Health Monitor is starting up");…

Clarify Technical Consultant posting

January 7, 2010 For any of you Clarify peeps out there looking for a gig, there’s a Clarify Technical Consultant available at IDC Technologies in Silicon Valley. Requirements: 4-5 years in the following amdocs modules Clarify Application: amdocs crm, clarify classic client, call center application, clear support application, clarify schema, clarify deployment in 3-tier environment tuxedo VB 6 Minimum 4-5 years of experience in Clarify enhancements Understanding the customer requirements Enhancements and testing Note: This isn’t a position at Dovetail, and I don’t have any vested interest in filling this job. I’m simply sharing an opportunity with my Clarify compadres.

Clock – A Super Simple Carrier Extension

December 16, 2009 Let’s set aside TwitterAgent for a bit and create the simplest extension to Dovetail Carrier possible, a timepiece, a clock, a chronometer of sorts. The intent of this post is to document in one place all the pieces required to create a Carrier Extension.The MarkerFor now we need to mark the assembly with an attribute announcing it as a Carrier extension. [assembly: CarrierExtension]You just need to put this code somewhere but it usually goes in your AssemblyInfo.cs file.The MessageWe first need to create the message we’ll be publishing and consuming. public class ClockMessage { public string Announcement { get; set; } }The PublisherNext up we need to create a service which will publish these messages. public class ClockMessageService : IMessagePublishingService<ClockMessage> { private readonly MessageBusSettings _messageBusSettings; private readonly IEndpointFactory _endpointFactory; private readonly ILogger _logger; private Timer _timer; public ClockMessageService(MessageBusSettings messageBusSettings, IEndpointFactory…

Customizing Dovetail Carrier – Consuming Messages With Rule Sets

December 10, 2009 The next step in our plan to implement a Twitter version of Email Agent using Dovetail Carrier is to consume the direct messages coming from Twitter which we published last time. Message consumers basically…er, well they consume messages. The beauty of the message bus is that we have the ability to subscribe many consumers to the types of messages which we publish. Dovetail Carrier provides a way to compose your message consumers by assembling a set of conditions and actions called RuleSets.This RuleSet we’ll be examining will investigate an incoming tweet, find the case id (731), and log a note the case.A Note before I continue: we will be including the Twitter Agent code with future releases of Dovetail Carrier. Additionally, with each release of Carrier you get a lot more extension code examples as we include the source code…

Customizing Dovetail Carrier – Creating and Publishing Messages

December 7, 2009 Previously we made a plan to go get Twitter direct messages and publish them into the Dovetail Carrier message bus. Thankfully the Twitter API is pretty simple but there are a few things to worry about.We need to listen to Twitter for direct messages.Transforming and publishing the direct message into the message bus.Host your Twitter polling and publishing service with Carrier.First Things FirstThis is not a cookbook post. I don’t describe each step along the way that I took to create a Carrier Twitter extension. That said I hope to provide the Visual Studio solution and code for this example in a future version of Carrier.A general house keeping item. To start I created a new project solution called Carrier.Extension.Twitter and added references to Carrier.Core and Dovetail.Commons.Carrier Extension AttributeFor now we need a way to tell Carrier that your assembly…

Dovetail / Clarify Happy Hour : Massachusetts Edition

While I’m in Massachusetts next week, we’re sponsoring a get-together for our Dovetail and Clarify friends. Wednesday, December 16th from 5:30 - 8:00 at John Harvard's Brewpub in Framingham, MA. Drinks and appetizers are on us. It’s an informal evening, talking Dovetail and Clarify, technology, and meeting like-minded people, all while sharing a few pints. RSVP to the event through meetup.com: http://www.meetup.com/DovetailHappyHour/ Looking forward to seeing you there!   Click here to check out The Dovetail / Clarify Happy Hour Meetup!

Customizing Dovetail Carrier – Making A Plan

December 4, 2009 Dovetail Carrier facilitates the creation of an enterprise message bus where messages can be produced and more importantly consumed. We have included a framework for creating sets of rules that act as consumers of messages coming into the system. I will be doing a series of posts around creating custom extensions for Carrier. The goal of these posts is to educate you and to force me to shine a light on the Carrier customization story in order find the rough edges begging to be smoothed out. Here is what we are going to cover. Making A Plan (you are here) Creating and Publishing Messages Consuming messages with RuleSets Whatever Shall We Do? To make all this a little more bearable. Let’s set the stage by creating a goal to shoot for while learning how to customize Carrier. This will all…

Thank You Mass Transit Team

December 1, 2009 I just wanted to extend a thank you from Dovetail and myself to the Mass Transit project team of Chris Patterson and Dru Sellers for the great framework they put together and the excellent attention and support that they give to the community of users around the project. A few weeks ago we went live at a customer site with a product that uses Mass Transit and so far things are going very well.