I’ve found over and over, if I don’t upload pictures to the web when I first download them from my camera, then there’s little or no chance I’ll do it later. Out of sight, out of mind.
But I wonder…
If I had an add-in command in the My Pictures sub-app of the Vista Media Center, would I be more inclined to upload pictures to the web then (and give my mom at least a glimpse into my life more than once a year)?
Google developer help: plenty
Since I’m already personally using Picasa’s companion Web Albums for what few pictures I’m sharing, I’m inclined to tie the online component of such an add-on to Google.
Having already investigated the Google APIs, I figured there was likely an API tuned for the Picasa Web Albums, and so there is. Further, it appears that it provides the ability to post photos, create albums, update & delete photos, manipulate tags, and review existing albums/photos/comments/tags. Sounds like it provides more than I was even looking for.
From what I gather with a quick skim, the basis for the “PWA” Data API is the Google Data API. And while I don’t know whether it’s absolutely necessary, Google provides a .NET Client Library (currently v1.1.2) to speed web services client development.
Similar apps
Big Screen Photos v2 — the Yahoo Flickr client for Vista Media Center. It doesn’t enable you to upload the pictures hosted in Media Center, but rather to view the pictures that are already available on the Flickr site.
Yougle Vista — provides access to online Video, Music and Picture sites including Flickr. Still no upload capability.
PhotoConnect — extends My Pictures with some interesting functionality including the ability to email pictures to others. However, it looks like this vanished in a puff of smoke and synthetic ash.
FlickrMCE — another viewing app, only for Windows XP MCE 2005.
PictureBook 1.0 — screensaver add-in, not really all that similar after all.
Windows Vista Media Center add-ons: sorting through all this new technology
Most add-ons for Windows Media Center 2005 (i.e. Windows XP) or earlier were written as “hosted HTML” apps that ran outside the Media Center shell. Now, while hosted HTML apps may still work in Vista, the drive is towards either the MCPL/MCML or XBAP/XAML:
- MCPL: Media Center Presentation Layer (the programming model)
- MCML: Media Center Markup Language (the managed code language derivative)
- XBAP: WinFX XAML Browser Application (the programming model)
- XAML: eXtensible Application Markup Language (the language in which XBAP is more-or-less implemented)
However, it appears that the XBAP/XAML model has already been dumped by the eHome team. Lovely, not even a year out of the gate and they already drop support for the “future-forward looking” programming model — I wonder what hurdles they had to clear to be able to explicitly drop support for the whole WPF (aka .NET 3.0) (aka WinFX) (aka WS-*) company-wide drive.? Oh well, at least that’s one less choice to confuse me…but I have to bitch just this once: when can we abandon app-specific languages? Any language or programming model that starts with the name of the vendor-specific technology makes me feel more than a little soiled.
Other resources that should prove useful
- Windows Vista Media Center SDK v5.3 (just released last week — how freakin’ timely!)
- “Programming MCML apps for dummies” — ask and ye shall receive.
- Hanselminutes 82: Development for Media Center (podcast for beginners like me, with lots of links to the relevant MSDN articles on the technologies & techniques discussed)
- Media Center Application Design articles by Charlie Owen (various articles targeted at the beginner).
- Creating a Windows Vista Media Center application using MCML step-by-step — Charlie Owen’s documentation for app development, WiX installers and the source code too!
- The Digital Lifestyle Developer Blog — 11-stage development guide for Windows Media Center devs.
- Media Center Show — MCML Development Part 1 and Part 2 (videocasts with Ian Dixon and Aaron Stebner)
- Understanding Media Center Markup Language — hands-on lab from Mix07
- Four Part Series on Windows Media Center Presentation Layer — Francis Hogle’s articles on how MCPL works.
- MCML Preview Tool — looks like a really useful tool to quickly test the UI elements you’re generating using the SDK & Visual Studio.
- The Media Center Sandbox — where developer discussions and blogs go to breed, for both MCPL and XBAP.
- Building Client Interfaces for .NET Web Services — article with working sample code, step-by-step guidance and lots of real-world thinking on building a SOAP client
- .NET Web Client search on Google (various possible leads)
- Online WiX tutorial (for learning this obtuse and overly-complicated, but open source, installer-builder tool)
- Votive — Visual Studio IDE-integrated tool for building WiX projects
- HTML Agility Pack — for developing against HTML in ways similar to XML
Some specific coding issues that I’ve noted for future reference
- Reading XML and displaying data in MCML — tricks jumping back & forth between .NET’s XMLReader and MCML
- Need help with Images from an XML file to Repeater — code and discussion of issues when displaying multiple image files
- streaming video to a MCML based app — some advice on when to jump outside of MCML to accomplish web-like behaviours
- Preventing multiple instances of a Windows Media Center application from running at the same time — apparently this is a big faux pas with Media Center add-ins, so I’ll be sure to implement this.
- Creating a “loading page” for MCML apps — creating a one-time splash page that assuages user’s fears that their PC has halted while an MCML app initializes.
- Customizing the Windows Media Center Start menu in Windows Vista — fiddly tweaks to minimize the need for your users to scroll in the Start Menu (that apparently will be covered in the SDK, so check the v5.3 SDK or later)
- Mailbag: How are images displayed for custom tiles on the Media Center Start menu? — how to get the best results for the 75×75 “buttons”/icons for your app
- Strong Name signing for Media Center application assemblies — integrating strong name public key tokens into the XML file(s?) can be tricky
- Important Note about using RegisterMceApp.exe and RegisterApplication() — tricks when calling these during install
- Possible problem registering Media Center application on Windows Vista x64 — recommended ways to use RegisterMceApp.exe and WiX to avoid Registry issues
- New Windows Media Center add-in registration custom action DLL — useful when you haven’t grown the balls to take on the WiX learning “curve” (more like uphill cliff if you ask me)
- Design considerations for Windows Media Center applications on 64-bit operating systems — options for making these apps work well in 64-bit Vista
- Some useful things I have learned about Windows Installer and UAC — how cause elevation for Custom Actions, how to opt out of elevation, how to add the ElevationShield attribute.
- mcesoft Vista HTML SDK and Media Center support for Hosted HTML applications in Windows Vista — encourages the creation of reusable controls, and indicates the controls shipped in the SDK’s “Z application” are the first step towards reusable controls
- New MCML development resources — shared source controls project, pivots tutorial and a new blog — MCMLookalike is Steven Harding’s effort to build a suite of reusable MCML controls; also, tips on using MCML “pivots” (the multi-category sliders that re-sort content e.g by date, title, category)
- Article about how to use McmlPad during UI development — tips on using the MCML Preview tool during development
- Links to useful ways to customize the Windows Vista Media Center SDK project template — e.g. adding the Z application button to new projects
- How to dynamically update data in an MCML page without reloading the entire page
Interesting Tidbits
- 🙂 Add-ins run out-of-proc in a hosted process called ehExtHost.exe, and communicate with the main Media Center process using .NET Remoting over “Named Pipes” (aka IPC within .NET).
- 🙂 Media Center unloads the add-in when the Launch( ) method exit.
- 🙂 The entry in More Programs is created by the running of RegisterMceApp.exe not by the running of the add-in itself.
- 🙂 In an MCML application, you can only embed a couple of visual elements, NOT including ActiveX controls (i.e. no native Flash rendering).
- 🙂 You can’t embed a WPF app / window inside of MCML.
- 🙂 Charlie Owen has invited anyone to provide good/bad developer feedback on Media Center and the SDK, and left his contact info here.
- 🙂 You can’t override ANYTHING on the Windows Media Center screens — if you want any new functions, they have to be added on completely new screens, which would mean re-building the whole ‘Videos’ library.
Conclusion
I’m not 100% convinced I’m going forward with this yet — I’m inclined to spec out the features, dig into the SDK/MCMLookalike/Codeplex-hosted sources to get a feel for just how much (a) volume and (b) complexity of code I’m facing, and then decide whether to keep pushing forward. I’d sure appreciate feedback from anyone who has ever delved into any of these areas for encouragement or “there be dragons” warnings…
- MCML programming
- web services integration in managed code — Google or otherwise
Cheers all!
Unfortunately, you can’t add anything to an existing Media Center interface. So there’s no “Send This Folder to Picasa/Flickr” possible.>>The best you can do is either >> <>a)<> A ‘More With This’ addin, which would allow you to choose a picture and upload it (I’m not sure if you could do it for a FOLDER though), <>or<>>> <>b)<>A MCML program that would allow you to choose the various folders full of photographs, or individual shots, to send.>> Whichever way you do it, I’d consider making the app open-ended if possible, so you could add features like “Upload to Flickr”, “Upload to Facebook” etc.
LikeLike
Sounds entirely reasonable – thanks for the feedback IiB!>>(A) Getting “upload this picture” functionality would certainly be a good start for me (so long as I’m not clicking madly to get each photo uploaded). I’m willing to root around in SDK and forums to see whether the Folder at once can be selected (I believe the Google >PWA API supports bulk upload).>>Q: what’s a “More With This” addin? I just dug around the VMC UI and didn’t find anything that sounded like that so far. [If this is a generalization, no sweat.]>>(B) A UI that replicates the My Pictures experience (at least, enough to be able to do these uploads) is less preferable, but it’s better than nothing.>>And of course I’ll encapsulate the web services functionality so this could be used for the other picture-oriented sites. Heck, I’m even inclined to leave the content type open-ended (videos, etc) if that’s not going to make my life *completely* miserable.
LikeLike
Hi,>>I just wanted to comment (as author of Big Screen Photos v2) – that the choice to not make an ‘upload’ function available was “by design” for a number of reasons. (and not at all a technical limitation – as the underlying code is quite simple to do).>>– The Process of uploading photos to flickr is really more involved (for the end user) than just sending the file to their server. To be effective/useful – it needs to also get a photo title, description, tags, grouping and if possible Geo Coding information as well. The Media Center Environment and Remote control is simply not suited/designed for this sort of thing (intensive text entry) – and would be a very cumbersome experience for the end user. (for example – precise placement for geocoding would be very difficult without a mouse).>>– If you’re uploading a lot of photos – doing them one at a time is really painful (even flickrs online web form is a pain). There’s however – some really good Windows Utils for batch uploading to flickr – just as long as you can then quickly get in a edit everything.>>– If by chance you have some sort of device that can embed/collect information (like GPS readings and titles) into your photos – The auto-synchronization tools available (which read a folder and auto-upload to flickr) are a much better solution (than any user driven interface). I saw a really nice sync tool that works/lives on WHS which is worth a look.>>Plugging something into ‘More with this’ might be a good option (if you have your image already described/tagged etc via metadata) – but those other points above exist.>>cheers>>Niall>>ps – always good to see some more MC bloggers…
LikeLike
Mike: I tought you might find interesting the story of how I built < HREF="http://www.BrazilPcitures.net" REL="nofollow">Brazil Pictures<> on top of the Picasa API. Go to the site and check the ‘about’ section. If you think it is cool, please consider posting about it. Thank you!
LikeLike
Just to correct that hyperlink: < HREF="http://www.brazilpictures.net" REL="nofollow">Brazil Pictures<>
LikeLike