[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