.NET 4.0 FTW!

MediaGerbil is written in C# on .NET 4.0 in Visual Studio 2010. Some of the .NET 4.0 specific features I make use of are:
As the .NET framework evolves, so will MediaGerbil, I'll try to keep it up to date with the latest stuff, since I also use it to learn and utilize new Framework features.

No hanging!

My main goal is to never block the UI thread for more than a splitsecond! Some of the other tools I used became really annoying when used with media files on network drives, because the UI would just hang forever until the tool is done accessing the network path. Almost every operation that I know could take longer than a second is run in its own Task using TPL, so the UI stays responsive and can be used at all times! I am also using a BindingList as the DataGridView BindingSource that has been extended to be Sortable and Asynchronous so it can be updated by threads other than the UI thread. For certain list updates I use locks to make sure I don't encounter weird race conditions.

Why no WPF?

I wanted to get the actual functionality working first before I worry about the eye candy. The business logic is very much separated from the UI, so going back later and slapping a new front-end on it shouldn't be that hard.

Third Party Libraries

While I wanted to write as much of MediaGerbil as possible myself, I didn't want to reinvent the wheel for some of the more laborious things. Therefore I looked around and found a great set of third party libraries that I have included in MediaGerbil:
  • HtmlAgilityPack: Another CodePlex project, this library makes grabbing information from IMDb easy, quick, and simple!
  • MediaInfo: Used to get information from media files.
  • Google diff_match_patch: Written and published by Google, this library is a great implementation of the fuzzy string search Bitap algorithm. I use it to match movie titles with file and directory names as fast and reliable as possible.
  • ...more to come?

Last edited Nov 11, 2010 at 5:51 PM by Sertelegger, version 1


No comments yet.