views:

235

answers:

5

I am about to write a front end app, which will be used as a media center app. It will plug directly into a high definition TV. Essentially transforming my laptop into a media player. While this concept is not new, I want custom functionality, so this is why I am not reusing existing products.

I'm a C# developer, so the app should ideally be written in C#. And there is 1 other consideration, I need to accept input via the MCE Remote.

I was considering using Silverlight for this. Would you recommend this? Or any other recommendations for frameworks before I begin planning around this.

Thanks in advance.

+1  A: 

Silverlight or WPF, if you want some extra power. Both have a similar programming model (with XAML and code-behind) so you might be able to start with Silverlight and move up to WPF if you need.

Steve Cooper
I don't like the suggestion of starting with Silverlight and moving up to WPF if you need it. Silverlight implements a subset of the WPF controls, but some of the way things are handled are different, and the back end would be very different. You can't just write in silverlight until you decide you need hardware access then switch. It would be a major change. This is the kind of decision you make upfront before you start your project.
Simon P Stevens
+3  A: 

Is this a desktop app? If so I would use WPF. Silverlight is a subset of WPF, so using WPF you could potentially do more.

smoore
+11  A: 

This is the type of stuff that the Windows Presentation Foundation was meant for. You'll get a lot more access to the hardware than Silverlight would provide (I.E. that MCE remote you mentioned). You mark up your UI with vector graphics/XAML, and then perform the logic with C#.

EDIT: WPF also has support out of the box for animations which can make your UI a lot more interactive.

EDIT 2: Scott Hanselman has written a really cool application called BabySmash and posted the source online. It basically intercepts keyboard input and shows shapes and sounds on the computer. It's a good "child-proofing" method for your PC. The code could provide you with some insight into WPF and how to do the animations and interactivity that you're looking for.

Scott Anderson
Def agree with the access to hardware.
smoore
Whats the preferred IDE for WPF?
JL
For creating the XAML, most prefer Expression Blend (Microsoft product), although the XAML design tooling is getting a significant upgrade in Visual Studio 2010. For now, Blend plays very nicely with Visual Studio, so I'd go with that. You might also look at Expression Design for graphical work.
Scott Anderson
A: 

The VLC api might be useful for playing your media, someone has created a C# wrapper for it: http://wiki.videolan.org/.Net_Interface_to_VLC

PeanutPower
A: 

WPF is certainly the way to go, and for playing media check out the excellent WPF MediaKit: http://wpfmediakit.codeplex.com/ I've used it successfully in many projects.

James Cadd