Если Вы можете, попытаться начать с пользовательских вариантов использования и работать назад к коду, а не наоборот. Действительно легко провести намного больше времени, работая над инструментами, чем работа над бизнес-проблемой. И продумывание требований пользователя поможет Вам рассмотреть альтернативные стратегии, потому что много шаблонов, которые Вы знаете от нормальной.NET, не применяется.
я сделал большую неустойчивую разработку приложений точно типа, который Вы описываете, и встроенная база данных работает просто великолепно. Материал MSMQ/WCF просто добавляет концептуальные издержки, не добавляя много значения. Вам нужно логическое хранилище данных локально так или иначе, и репликация на этом уровне является простым понятием, что Вы хотите сохранить простыми, таким образом, журнал аудита легко контролируется и отлаживается. MSMQ и WCF имеют тенденцию скрывать вещи в незнакомых местах.
я upvoted предложение SqlLite BTW. MS еще не стабилизировали их историю персистентности для CE.
Вероятно, следует просто использовать обработчик выхода Ruby, который является методом ядра:
$ irb
>> at_exit do
?> puts 'bye...'
>> end
=> #<Proc:0xb79a87e4@(irb):1>
>> exit
bye...
$