[V4RB] Auto-download of engines
Ruslan Zasukhin
sunshine at public.kherson.ua
Fri Aug 25 13:29:18 CDT 2006
On 8/25/06 12:41 PM, "Shaun Wexler" <dev at macfoh.com> wrote:
>> Can work this:
>>
>> App1 install VSDK.framework - vers A
>>
>> Later on the same computer, other installer of other app2 installs
>> VSDK.framework - ver B
>>
>> So can they go into the same folder and live together?
>
> If I write a Valentina.plugin API, app's would call ValentinaPlugInInit
> () instead of ValentinaInit(), and otherwise nothing would have to
> change. Here is a scenario:
>
> Let App1 be a Panther/Tiger app which depends on the current 32-bit
> API in Valentina.framework/Versions/A/Valentina, and let both App2 and
> App3 be Leopard-only apps which each depend on the new 64-bit API in
> Valentina.framework/Versions/B/Valentina.
>
> A user regularly uses App1 on his computer, and version A of the
> framework is currently installed in /Library/Frameworks/
> Valentina.framework/Versions/A/.
>
> The user decides to try a new program, App2, and downloads it. The
> app is downloaded "lite", meaning the Valentina.plugin embedded in the
> App2 bundle does not contain Valentina.pkg (installer package) for
> Valentina.framework/Versions/B, upon which it depends. When App2 is
> launched, it finds /Library/Frameworks/Valentina.framework but sees
> that it does not contain the required version B, so it notifies the
> user and subsequently downloads and installs it (after authentication)
> into the existing framework bundle, so /Library/Frameworks/
> Valentina.framework contains both the A/ and B/ versions.
good
> App1 also contains the compressed A/ version in its bundle, and now App2
> contains the compressed B/ version in its bundle which it requires. App2 can
> now launch quickly, as well as repair the system if the main framework is
> accidentally deleted. Same for App1.
Aha, so this inside compressed package is for repair of system,
Like MS did ... good
> Next the user buys App3 from Dave Addey on CD. The app is shipped
> fully self-contained because it includes the proper version of
> Valentina.pkg within its embedded Valentina.plugin, and will install
> it upon launch. The user mounts the CD, performs a drag/drop into /
> Applications, and double-clicks App3 to run it. App finds a NEWER
> version of Valentina.framework/Versions/B is already installed, so it
> links to the existing one and launches.
And this is where we require binary compatibility...
ok.
> Any particular versioning requirements within a compatibility version
> ("A" or "B", etc) can be solved by reading the framework versions and
> using the necessary logic, but overall binary compatibility is
> inevitably maintained. At least that's the theory...
Right.
The same ideas of binary compatibility present in MS COM.
And they have idea of extension which I not like too much, but no other way.
If you need add new methods you must create NEW interface:
I_Table
I_Table2
I_Table3
They even really name them in this way...
--
Best regards,
Ruslan Zasukhin
VP Engineering and New Technology
Paradigma Software, Inc
Valentina - Joining Worlds of Information
http://www.paradigmasoft.com
[I feel the need: the need for speed]
More information about the Valentina
mailing list