I’ve been spending time on the first part of the shared resource service project: “Receive event invitations by email and send an acceptance email”. I hadn’t considered the difficulty I would face receiving emails. This is the most important part of the application, and if I can’t make it work, there’s really no point to continue.

I don’t want to write my own POP3 library, I’ve done that before and it’s much more complicated than it appears. Buying a commercial component isn’t going to happen either. That left me with one option: To scour the Internet for an open source library.

Most of my career has been spent in companies that are paranoid about using third-party code. Finding something was easy enough (though I must say there are surprisingly few .Net POP3 libraries around), and testing a couple libraries didn’t take long at all. The most difficult part was figuring out how to use an open source library properly.

My favourite of the contenders is released under the GNU LGPL license. This shouldn’t impose any awkward restrictions. I have additional freedom because I’m planning to release my project as open source, but I can see how this would be more difficult for a company building a commercial product.

Since I was reading about licenses, it seemed as good a time as any to pick one for my project. After a lot of reading, I decided to go with the GNU GPL license. I want my project to be freely available, and I don’t want anyone to use it to make a profit without me being involved. If I were unsure this would be the safest choice anyway, because I always have the ability to switch to a less restrictive license later.

Now if I can just find an IoC container, a unit testing framework, and a mocking framework that are also compatible with GPL, Ill be ready to get started.