PGP Zip Encrypted Files With C#

23 בינואר 2009

On a recent project here at Renaissance, we needed to send files over FTP to some third party vendor. One of the requirements was that the files had to be encrypted using PGP (Pretty Good Privacy). After some research we decided to use Bouncy Castle. Bouncy Castle is an open source C# implementation of the OpenPGP standard. It is available in Java as well. An additional requirement was that the PGP Encrypted files needed to be signed as well. If you have no background in cryptology or PGP and this sounds like gibberish, here’s a short simplified background on...

Building a Lean Development Machine

12 בינואר 2009

The time to rebuild my development machine had arrived again. I’ve been running Vista 32 bit for about a year. I was basically happy with Vista as a development machine, but something else had bothered me over the last couple of months. All the mundane crap that was clogging my system. For example, Skype, Trillian, ITunes, Hamachi, PDF readers, MS Office … The list goes on and on… I want a super lean installation of Windows 2008 Server x64, Visual Studio 2008, Sql Server 2008 x64, TortoiseSVN, VisualSVN, CodeRush and WinMerge. The choice of Windows 2008 Server is to match our production...

Windows Service Shutdown Problem

11 בינואר 2009

In our current project we have a service that handles messages sent to the application over MSMQ. On startup the service initiates a configurable numbers of listeners that processes messages as they arrive. The main reason this listener initialization is bootstrapped through a Windows Service is because we must be able to “survive” a system shutdown/restart. After a restart the queue listeners must get back to their task of processing and endless stream of messages. I’m not going to go into too much detail on the queuing infrastructure we use (I’m saving that for another post), but I want...

Self Installing Windows Service

4 בינואר 2009

Recently I had to initiate some background worker in a Windows Service. Writing a Windows Service with the built in .Net support is a  no-brainer. The thing that caught me by surprise was that all the documentation states that I needed to add an installer for the service to run. After a little looking  around, it turned out that it is not so difficult to create your own custom installer. I ended up writing a small class that can handle any service and thought I’d share it here. The Windows Service part functions only as a bootstrapper for the real...