Monday, October 15, 2012

Deploy .NET window service artifact to a remote server from TeamCity (Updated)

- This post is an update of my previous post. Basically, it's the same approach of 90% similar except I won't use Remote Powershell in this post. Config remote PowerShell is such a pain in the ass, I reckon. I had to setup a deployment on another box which have IIS actually but someone in my team had already removed the Default Web Site...

Tuesday, October 2, 2012

RPC with Burrow.NET and RabbitMQ

Definitely RPC is nothing new, I just implemented it in a slightly different way. Burrow.RPC is some code I made recently for my project. It helps applications communicate in a RPC style using Burrow.NET. To use Burrow.RPC you definitely need Burrow.NET package, and that's all. If you need some more utilities like JsonSerializer, you have...

Tuesday, September 11, 2012

Dual-invocation using Autofac interception - AOP

- The project I've been working on used to have SQL as its primary datastore. We're implementing another data store using MongoDB as it will replace the SQL one soon. During the migration process, we have 2 versions of the website running parallel. The production version is using SQL which is viewed by customers and the other one using...

Thursday, July 26, 2012

Priority With RabbitMQ implementation in .NET

- Follow up several posts about RabbitMQ and Burrow.NET, this post is about the Priority implementation for RabbitMQ in Burrow.NET. Actually, We have it implemented in the library a few weeks ago. However, the code probably has bugs and we need more time to tune and fix those bugs. At this point, I'm confident to say the implementation is...

Monday, July 23, 2012

DotNet Hotfix KB 2640103

I've a window service which has been running pretty well for a long time. Recently I have installed a .NET framework extended update and it probably caused this error: Description: The process was terminated due to an internal error in the .NET Runtime at IP 6B484BC2 (6B300000) with exit code 80131506 This error message leads me to this support page: http://support.microsoft.com/kb/2640103. It seems to be so many people got...

Thursday, June 14, 2012

Programmatically create RabbitMQ Exchange and Queue with Burrow.NET

- As mentioned in previous posts, IRouteFinder is an interface defined in Burrow.NET to help publishing the message to correct target. If you have many message types, potentially you will need many exchanges and queues. And if it's true, setup everything for different environments or different machines is not an interesting task. So with...

Wednesday, June 13, 2012

How I Mock Mongo Collection?

- I have been working with Mongo quite alot recently and writing my service classes using mongo without testing is such a pain in the neck. So today, I'll post about how I mock mongo collection for my unit testings. - Given that I have a ReminderService like below: public class ReminderService { private readonly MongoCollection<User>...

Wednesday, June 6, 2012

Save a little time when writing unit test using VS.NET Macro

- As a unit testing passioner, I write a lot of unit tests for my code. But repeating adding test attributes to classes and methods, adding resharper ignore InconsistentNaming statement or adding AAA pattern are killing me. So I thought of making some awesome macros to save my time. - Basically, when I add a test class, the file will originaly...

Sunday, June 3, 2012

Things you can easily change in Burrow.NET

- As I said in other posts, Burrow.NET aims to generic needs of any .NET projects that use RabbitMQ. I believe the built-in code has covered most of your requirements for common usages. However there are some things you can easily change without writing any new code or at least just a few lines of code. So in this post, I'll introduce...

Custom Burrow.NET TunnelFactory & RabbitMQ

I/ Default TunnelFactory - When using Burrow.NET, one of the important thing to create is a Tunnel by using TunnelFactory: var tunnel = RabbitTunnel.Factory.Create(); - The Factory static property of RabbitTunnel keeps a default instance of TunnelFactory class. The TunnelFactory has 4 overloads to create the ITunnel object: public...

Thursday, May 31, 2012

RabbitMQ Exchanges & Queues naming convention with Burrow.NET

- If you just need only 1 exchange and 1 queue, naming convention should not be a big concern. Even that, you may need exchanges and queues for different environments. As in my projects, I often have 3 environments: DEV, UAT and PROD and I've been using following conventions for exchanges and queues: Exchanges : ProjectName.E.<ExchangeType>.<Environment>.MessageTypeName Queue        :...

Wednesday, May 30, 2012

Messaging with RabbitMQ and Burrow.NET

- As a .NET developer, what I have known about queueing world is only MSMQ because I've rarely had chances to using queues in any projects. I've known RabbitMQ since my last 2 projects and I'm pretty impressed by it's reliability and stability. RabittMQ is very easy to install on Windows or Linux. I wrote a blog post "Install RabbitMQ...

Sunday, May 20, 2012

Install RabbitMQ on SliTaz Linux

- I have played with RabbitMQ for a few months so I tried to install RabbitMQ on a Linux distro running on VMWare. I do this as setting up a development environment at home since I don't want to install so much stuff on my Win7 machine. And another reason, for fun with Linux things since It's been along time I didn't mess with Linux....