Quote: Originally Posted by zorro
Strong (or early binding) requires that your compiler knows about the objects you will use and therefore you have to include them into your project.
Thus, you'll never be able to "attach" a new plugin after the main app is on the market without changing the main app, which turns the term "plugin" to a farce.
I don't think so
Download my proposal - all components are compiled...
Start the MainContainer.Exe and notice WMP in the main window
Now replace mediaplayer.dll with the one from "MediaPayer(Winamp)" and start MainContainer and now you don't see WMP anymore...
Bot DLL's implement the same interface...
This works and this makes .NET so cool !
Quote: Originally Posted by zorro
The right way is to declare interfaces, which couples late binding and "easier programming" - whatever this is supposed to mean - but if you don't know yet what interfaces you'll need in the future, you have use the simplest and most powerful - and that is Xml.
How is this handeled in VS ?
Interface-versioning is a central (and the only) problem IMHO but it could be solved.
I have defined my FMRadioHAL as version 0.1 - means should not reach any enduser.
1.0 will contain Fieldstrength, Volume, Frequency, RDS ...
Frontends can implement their Radiopart (or better their Radioplugin!) with FMRadioHAL - so a analogue Fieldstrength display with a moving pointer will be created in the Frontend..
Now someone may build another radiohardware which also delivers "multipathstrength" so this guy can deliver this value to the frontend with the Function "AnyFunction" (which is now some sort of late binding!). He can now create his Frontend which works with all FMRadioHal's AND his late-binding "mp-strength"....
In version 2.0 of FMRadioHal those late-bindings will be moved to early-bindings as this is much nicer to handle. (from FMRadio.AnyFunction("MPXStrength","134") to FMRadio.MPXStrength(134))
Quote: Originally Posted by zorro
PhoCo has an interface for other applications but it's based on TCP socket, because not all programming languages can handle .NET assemblies. Maybe you have recognized most frontends here are VB6 based - think about.
Look at my FMRadioHAL - it shows how to use one DLL as .NET Assembly *and * as COM Object (easy).
IMHO VB6 is not suitable for larger programm's as it lacks of multithreading. (I know what i am talking about as I worked for a company which had a large programm in vb lets say: 10classes, 20forms, 10 modules - a little bit larger the Roadrunner).
.NET gives also the chance to be language independend... so it should be used.
to Phoco:
BTW: nice piece of work...
I would like to pull the Phoco ActiveX onto my Telephone-Form.... An event would be nice if the telephone rings (so I could do a Mediaplugin.Volume=Mediaplugin.Volume-something)...