WPF : Sonic is coming soon

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
  • IQueryProvider
  • LINQ to SQL
  • MVVM, including showing you how to use MVVM to trigger animations
  • 3D
  • 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.



  1. Graeme

    Yeah its all good stuff is the LINQ. IQueryProvider is mental though. If you have to write one of those from scratch I would certainly think twice.

    Wait for the article, hopefully I can explain it all ok.


  2. I am speachles… cant wait to read it… cant wait to test it.. cant wait for another 5… you are THE man mate… learned a lot from you, and for sure will learn a lot from Sonic… hope it comes soon

    All best



  3. solarding

    Hopefully there is enough in there, that is cool. As I say “I” am pleased, and I hope others will find it useful.

    Should have it out this weekend I think.


  4. Colin

    Bit early to say, there is a very good WPF Ribbon just been submitted, I hope mine is a bit broader though.


  5. Yes – I saw that article also. Whilst the ribbon looks very very good, it is not a great article in my opinion. I prefer reading articles where I learn something rather than ones which highlight a cool UI component.

    Colin E.


  6. Code, we want coooooode!!! 😀

    This looks to be a very interesting read once it’s online. Good luck with the writing, and I look forward to seeing it when you’re finished :).


  7. It’s “whet your appetite”. You’re not trying to make my appetite moistened, you are trying to sharpen it, to “whet” it.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s