I have been working on a rather large and pretty involved article for quite some time now, ok I have pushed out a few smaller articles, but this big one has been my love for the last n-many weeks. I am calling the article "Sonic".
Today I finally finished the code, and I have to say I think this article (which I hope to get published by next week), is my best work to date.
Basically when I started the article I wanted to do something a little advanced with LINQ and I knew I wanted to get a better understanding of IQueryProvider which is what LINQ to SQL uses internally.
I did not actually want to create a whole IQueryProvider implementation (I am not mental), but I did want to delve a little deeper into the inner bowels of LINQ.
So I thought I know, I’ll write myself a little MP3 application that allows the users to specify the users music location(s) (Via App.Config) and then use some funky LINQ/IQueryProvider magic to work out what MP3s are available, and the use the ID3 tag information to store the file metadata in SQL. The metadata could then be used to search against again using more LINQ/IQueryProvider magic. I also thought why not just work a MP3 player in there and also spend a little bit of time ensuring that the application is a good example of WPF best practices, such as MVVM / Commands etc etc.
I have to say now that I am finished, I am absolutely stoked with the results. I will have the article up as soon as humanly possible, but for now here is the sort of things that you can expect from the "Sonic" article :
- Stylish UI
- Custom window Style
- LINQ Love
- LINQ to SQL
- MVVM, including showing you how to use MVVM to trigger animations
- Fancy user controls, some of which are useful standalone
And here are some screen shots, just to wet your appetite:
Sonic : scanning/working on your request
Sonic : 1/2 way through animating in the matched albums for the query (which is really an Expression tree that is used in conjunction with the IQueryProvider)
Sonic : 1/2 way through animating in the matched tracks for the currently clicked Album (albums are the bottom row)
Sonic : loading the album art.
I will do my best to write the article text as soon as I can and get it up.