So, I want to learn C#. I have access to the Visual Studio IDE for
writing the code in C#. So I though, the best way to go about it is to start
writing your own application, a windows installer, which will obviously be open
source. Now I wasn’t sure what kind of an application should I create. Then I
thought of using the most widely used application on my machine after iTunes.
This would be the Bit Torrent client. This is the official client; which
obviously follows the latest protocols and all. This isn’t open sourced. They
stopped open sourcing their app after version 5 or so it seems. This I've read
from Wikipedia.
So, to make my bit torrent client (which for now I would like to
call Yet Another Bit torrent Client - YABC), I needed to first understand the
architecture that is usually used by these apps, and most important of all,
understand the bit torrent protocol. This wouldn’t be easy. So I had a better
idea, I thought, rather than investing time in understand the protocol as of
now, I might as well borrow the code for the protocol from some other app which
is under FOSS. But then again I had a problem.
All the apps which are currently popular and available are
all written in python. The trouble is that python is a language I am totally
not familiar with as of now. Also, I was planning to make an app through and
through in C# and .NET. So I just Googled the best I could and lo behold – I found
this - http://www.alhem.net/project/btpeer/index.html.
This is the btPeer client which is
solely written in C++. Now the thing is, I work in C++ full time and know the
language well enough to be able to port an application from it to C#. Another
plus is that there is already a project readily available for Visual Studio,
thus I will only have to port the application directly to VS2010; using which,
when I build the project, I should have to project ready.
I will register the project at SourceForge or Google Code and also
maybe github so that the configuration part of the project is handled well.
More on this as things progress. Later.
No comments:
Post a Comment