This is great! I can't wait to use it. I have a few suggestions, take them for what their worth:
1) I've seen quite a few image management programs built around a single feature. I've also seen people switch programs or use multiple programs because of missing features. It would be nice to have some sort of plug in architecture to allow others to extend
what you have. For example, ophoto or shutterfly could provide a plugin to allow images to be uploaded to thier print servers. Someone else might create a filter that creates bins of 'textures' or black and white images. Another plugin might launch an image
editor or perform simple filters on the image.
2) I can imagine my list of keywords wouldn't fit in a context menu. It might be nice to have keyword groupings. Say I had a keyword for each member of my family. They could be in a keyword group called 'family'. Then I could find pictures of the family,
or just my brother. In addition this would keep me from having to search a huge scrolling list of keywords.
3) I'd like to see keywords applied by drag and drop rather than right-click. It may sound silly, but I imagine it would be faster (like sorting mail).
4) With all feature rich applications, it would be nice to be able to remove or hide features. MS has played with this by creating menus in Office that hide seldom used features in the menus until you pause for a few seconds (or click on the down arrow at
the bottom of the menu). This doesn't seem like the best solution to me. There are a good deal of features that I know for sure I will never use (I would never email my images, for example). By turning off features, I think it would make the features I
do use easier to find (it would certainly help my Mom).
Just suggestions. Take em or leave em as you see fit.
You wouldn't want to compile the code before it reaches the machine. That would cost the extra performance gains of the particular machine. One of the advantages of the CLR (even if MS won't market it this way) is platform independence. JIT allows for
optimization down to the specific processor without compatibility issues. In the future this will give chip makers the ability to worry less about compatibility and more about performance.
One solution might be to compile the IL to native code at install time, but that would prevent future runtime optimizations. For GUI apps, we would most likely benefit from pre-compiling, but very repetitive apps (data crunching apps, and server side apps)
will benefit from runtime optimizations (I don't know the state of runtime optimizing in .NET, but HP, and Sun have made some advancements here over the last few years).