Category Archives: Project Silverlight 1.1

Project SilverLight 1.1 – Updated CodePlex and New Demo Server

SubHeading 6 

I’ve just updated the source code in codeplex with the latest version of the development code.

Some of the features added and fixes are:

  1. CoverFlow SilverLight control – first version and still work in progress but generally starting to take shape into what I envision the CoverFlow to look like when complete
  2. Added more calls to the third party service
  3. General re-factoring across the current existing pieces
  4. Added new html pages for loading into the main content area
  5. Search SilverLight control – built the basic structure and it makes a callback to the underlying base page but I’m still to work out which third party search service to use for searching!

I’ve also moved to another demo server so hopefully this one performs better than the last, please let me know if your still getting timeouts! [Click image to go to the demo site on the new server]


Project SilverLight 1.1 – Officially moves out of Prototype and into Development

subheading 2

Just a quick posting to say that I’ve officially moved my iTunes project out of “Prototype” and into “Development”

I’ve uploaded the source code for the first release of the development code into CodePlex, and overtime I will update it with future versions.

This is what you can expect from the source code:

1. Expression Blend C# controls for
a) MediaPlayer
b) MediaDisplay
c) MediaView

2. Basic architecture for how SilverLight controls communicate with the base page and vice versa (via a _pageController class)

3. Deep integration with lockers. This allows true online music player features. A locker is free and allows you to store up to 1GB of music online and has a staple of free music available. The current version of the code-base has a demo account so that you can see what a locker is and what content is available.

4. Use of a proxied webservice to communicate with third parties and to deliver a true desktop like user experience, no full page refreshes here!

Please be cautious that the code is constantly changing, it’s consistently being re-factored every day and I’m always adding new features. I’m a strong believer of getting stuff out quickly to capitalize on the inertia of short term public interest. The web needs quick coders to meet the demands of today’s greedy web consumers 😉 [me being one of them]

Enjoy and as always please send through your feedback!

Here are some snaps of the current version of the development code.

1. (above) I have spent time cleaning up the UI and making it more production ready. In this snapshot you see a real track downloaded from the MP3Tunes service and the song actually streaming (see the media display panel at the top)

2.(above)Here you see the online store  “” loading within the iTunes SilverLight application. I have added a new type of feature called “inline pages” where you can load into the main container any type of existing web page. This gives the iTunes application a new level of customization that it previously never had!

3.(above) The viewer silverlight control allows you to maximise the main content area for specific purposes, in this case the cover art to take the full space available.

4.(above) Here you see the wooden theme in action. Really takes the web application to another level when you see how easy it is to customize the look and feel like this!

To see the application in action go here, it’s running on a spare server i have so it may be slow. I am currently investigating purchasing a dedicated server for all my work but that cost’s money so please be patient when waiting for the pages to load!

Project SilverLight 1.1 – List of popular Music Players

Sub Heading 4 

I should of actually done this much earlier but better late than never. This posting and the next few will cover all the other popular music players out there. Please let me know if I have missed your favorite one and I’ll look to include it in the near future.

So here is a list of some popular players from around the world, I found this list from Over time I will dissect each player and show the analysis here in postings. My goal is to have all the coolest features included in the SilverLight iTunes application.

  • amaroK
  • Audacious
  • Beep Media Player
  • BMPx
  • Cog
  • Foobar2000
  • iTunes
  • Listen
  • LSongs
  • Muine
  • Rhythmbox
  • Songbird
  • Totem
  • VLC
  • Windows Media Player
  • XMMS
  • Winamp
  • Yahoo! Musicmatch
  • Kaffeine
  • My next posting will cover amaroK, an awesome music player which I feel is the best out of all of them!

    Project SilverLight 1.1 – project restarted

    subheading 2 

    Just a quick head’s up that I’ve restarted the development of the iTunes like SilverLight 1.1. Application.

    I stopped for a while due to concerns with legality of the application but seeing as I built it from ground up I was told by some of you guys that it was all legal!

    So just letting you all know that I’ve updated a version of the demo to the latest version. I’ll update the source code this weekend BUT if you have a chance check it out… there has been some cool development on my part!

    1) I’ve integrated into the application – in the playlist’s there is an MP3Tunes demo locker that contains some DRM free music I found on their site! You should be able to see the playlist and even choose a song to play!

    2) I’ve developed the “Media Player” control as a C# SilverLight usercontrol – it plays the song from MP3Tunes

    3) I’ve developed the “Media Display” control as a C# SilverLight usercontrol – it displays the status of the selected and/or playing song.

    4) Theres the concept of a controller class that all silverlight controls communicate thru via the container webpage.

     All up it’s starting to take shape into a cool, fully online, SilverLight music player/application.

    Future post’s will go into more detail as to how i created the 4 above mentioned pieces.

    Project SilverLight 1.1 – Prototype – Application Downloading Control

    Sub Heading 4

    In my “Project SilverLight 1.1” I have to download a lot of large assets, like images and sounds. So I decided to create a loading control that has some nice graphics and animations that play while I download the package.

    The idea behind this control is that as assets are downloaded (like pictures / songs ) the progress indicator moves left to right and music notes drop down from the button and fade away. Also as the assets are download music plays in the background.


    It’s a simple animation that combines:

    1. using a storyboard as a timer to cause the progress indicator to move. Eventually when the iTunes application is built it will download assets using the SilverLight downloader.
    2. using a media element to play background music
    3. using a series of storyboard’s to animate some music notes

    To see the actual animation go here.

    To download the source go to CodePlex.

    Project SilverLight 1.1 – Source Code Repository


    Source code for the prototype & future builds can now be found on CodePlex. I have moved source code management to CodePlex in preparation for the build part of this project. CodePlex is an awesome source code repository for open-source projects. It will make managing code deployment so much easier.

    codeplex sourcecode

    Let the development fun begin!

    Project Silverlight 1.1 – Project Plan & Next steps

    Sub Heading 4

    It’s been a while since i updated the status of “project silverlight 1.1 – iTunes”, im sorry for that. The truth is im struggling to find time, im completely bogged down at work and it doesn’t help that were at our “end of financial year” stage.

    Anyway i’ve reached a point now in this project where im comfortable to say the prototyping session exceeded my expectations and that we can indeed build an iTunes like application using Silverlight, and basic dhtml.

    So here is a “project plan” i knocked up using MS Project. For those that arn’t versed in the whole “Project Planning” process, a “project plan” is basically a list of tasks that will need to be completed for the project to be deemed complete.

    The “project plan” i knocked up is a very simple one, it’s based on a template that i generally use for all my web projects.

    I called the project iTunes 2.0 and i phased the project, phase 1 being the first version of the application and a future phase 2 for sometime after this project.. (Phase 2 im thinking would be extending the iTunes 2.0 app to have more social tools and building in the “iTunes store feature”)

    Anyway heres the high-level task’s for phase 1 of the project

    main pic 1

    “Analysis & Design” & “External Dependencies”

    Analysis & Design – If you look at the sub tasks sitting under this task then it is self describing what this task is trying to accomplish. Basically everything i’ve done to date sit’s in this task (prototyping and high level analysis of the solution).

    External Dependencies – This task captures the dependencies on third-party services that my iTunes project will potentially consume. I’ve analysed that for phase 1 the only 3rd party webservices i want to build into my solution will come from LastFM, YouTube. To be safe i’ve added some padding for implementing another 3rd party, one that i haven’t thought of yet.

    main pic 2


    This task contains all the pieces that need to be developed for this application. The sub-tasks should be self explanatory.

     project plan for itunes like application 3

    “Configuration Management”

     This task has to do with building all the deployment packages and scripts.

    project plan for itunes like application 4


    Testing is cruicial in any project, alot of people don’t see the benefit of doing it but i am always conscious of including this step in my project plan. In my opinion there can never be enough testing…

     project plan for itunes like application 5


    So this is the 1st draft of the project plan. Over time i’ll probably make changes to it but generally it is complete with most of the tasks i want to build.

    Over time i will also update this page to reflect the status of individual tasks.

    “Next step”

    Build begins on 9th August 2007 and goes for 55 man working days (5 day work weeks, 8 hour days)