C said:
The point to my question lies in the bigger question, is the .NET
highway going to take my client where he wants to go?
MFC is an application framework. Windows forms has few of the features
that MFC has. For example, MFC has command routing so that toolbars,
menus and the status bar are all connected, so if you highlight a menu
item the helpstring will appear in the status bar, and if there is a
toolbar button associated with a menu item the menu item has the toolbar
button icon. MFC also has document management features. You get all of
that for free with MFC.
You can do all of that with Windows Forms, but you have to write the
code to do it. Microsoft took the decision not to give you those
application framework features in WinForms. I think there are two
reasons for this: 1) WinForms is ported from VB6 (I have no evidence of
this, but the similarities between the two are tangible) 2) they didn't
want to give us too many features because they wanted developers to
eventually move over to Avalon.
My client requested that his app be built in .NET but he's now asking
me for features that the .NET components don't provide. In fact, in
some cases, he is asking me for Access97 component behavior
(ComboBoxes and Continuous Forms). I can't fault him for it either,
the dropdown ComboBox behavior in Access is more advanced (I
understand that .NET 2 will include autocomplete or incremental
search), and Continuous Forms are really cool.
As mentioned in other posts, if you have an activex control you can use
COM interop to use it on a .NET form. BTW a .NET form is a COM object -
it has to be able to provide drag and drop, which is an OLE32 feature.
Anyway, that's the reason for the question. I'm wondering if ActiveX
components might be an option and how much trouble they would be.
I cannot speak about the components that you cite, but in general COM
interop works well. If you want a book on the subject the best one (and
the *only* one to consider IMO) is Adam Nathan's ".NET and COM: The
complete interoperability guide" (and it is).
Richard