Tuesday, June 19, 2007

VFP Sedna Wishlist: A single way of doing dialogs

While Craig is espousing how awesome VFP will work with Sedna and Windows Vista - what IS missing and should likely be the #1 extension put into Sedna upon its release is a way to use the new Vistadialogs4COM under non-Vista platforms. (Updated: Doug brings up a good point in his comments that the purpose of this work was NOT to be a generic dialog handler, strictly for VFP - read the comments below)

As Craig noted, using the dialogs is very simple unless you are allergic to OOP - but it would have been really nice if the DLLs were immediately smart enough to say "hey, you're not running under Vista, so we're going to give you the older file dialogs instead."

I know that Vista is soon going to be everywhere - but NOT including some of this functionality now will limit the usefulness and implementation of this library for regular developers. In most  deployed applications, you are going to be balancing between Windows XP, Windows 2003, Windows Vista and even possibly Windows 98. Then again, in Canada, where they are floating the idea of taxing (additionally) new computers and hardware purchases for additional recycling revenue, I can see the argument for more companies keeping and simply upgrading their existing hardware. If you can do more work on the web today, what is the business argument for switching to Vista?

Maybe it's a case of saying "here's what you can do" and then get the entire community making it more useful. (just like Doug did with the updated New Property and Method dialog).

 If so, I welcome the approach but it kind of leaves me wanting a bit more.

Powered by ScribeFire.


Doug Hennig said...

Andrew, I'm not sure that's should be the focus of this control. It's job is to provide Vista dialogs to COM clients. IMO, it shouldn't be a generic dialog class. THAT would be easy enough to create by building a wrapper for the Vista classes and adding functionality that supports older operating systems.

Andrew MacNeill said...

I agree that it may not be the focus of the control - (it's all about scope!)

As you mention, a generic dialog class SHOULD be easy enough to create so that's why I mentioned maybe it should be one of the FIRST areas for improvement.

But there is one question that is suggested by your comment: its purpose is to provide Vista dialogs to COM clients - in other words, NOT just VFP but also perhaps, say, VB 6 or any client that can consume COM that isn't part of the .Net family.

Am I right in thinking that?

Craig Boyd said...

Doug is right on the money, and while I can't speak for Microsoft, I would say that Andrew's assumption regarding the desire to create COM visible classes (using VB.NET) that are found to be useful to anyone developing in a COM-aware language is also right on the money.

Given the limited resources provided for Sedna, proper scoping is very important. And, since the Sedna source code is slated to be released on CodePlex with a liberal EULA (most likely very similar to the xSource and FFC licenses), any of the Sedna projects can be easily enhanced or encapsulated, and hopefully the projects will also serve to provide concrete examples for enhancing VFP.

In addition to providing access to the new Vista dialogs, the Vistadialogs4COM project shows how to use .NET's inheritance, delegation, and COM-interop features to provide the developers working in unmanaged code access to the world of managed code. Throw in some other things, such as .NET runtime code generation and in-memory assembly compilation (i.e. CodeCOM, Reflection.Emit), FLLs (extending VFP's language base by accessing the VFP API using C/C++) and, IMHO, some fairly interesting possibilities begin to present themselves to VFP as well as other languages that are too valuable to ditch.