launchpad-dev team mailing list archive
-
launchpad-dev team
-
Mailing list archive
-
Message #03314
Re: Want feedback on LaunchpadSharp
Apart from all in the previous mail, I would like to ask a few more
questions. All these examples are hypotheical just for sake of
discussion and clarification
1) If version 1.0 of LP has a entity *bug* and a method names
*checkBugIsValid* , then if you change the name of method to
*checkBugValidity* in v2.0 , then the client will generate the proxy for it.
Now the problem comes with applications which have always been using
method *checkBugIsValid* will break. Isn't it? How does launchpadlib
actually deal with it?
This means that applications have to be made for a specific version of
launchpad API version? If my application is named foo, then it means I
need to have backend names libfoo-lp1.0 and libfoo-lp2.0
If only one application has to be maintained, then how will the
application know that to check that the bug is valid, it needs to call
which method name. Atleast this much hardcoding has to be there. The
application needs to know which actual method to call when someone
clicks on the button "Check if the Bug is Valid"
2) I was thinking of making the correct version in the following way:
One component which takes in the WADL string and creates the library
(dll) which can be loaded at runtime.
Applications when started first check which version of LP is available.
As per the latest stable release, it downloads the WADL file, sends this
to the component mentioned above which created the library and this
library is sent back the application which loads it at runtime.
Loading modules/assemblies at runtime is supported by CLI.
Mono also supports it [
http://www.go-mono.com/docs/index.aspx?link=M%3aSystem.Reflection.Assembly.LoadFile%28System.String%29
]
Once the assembly is loaded (like loading modules in Python), then rest
everything continues as required.
Is what I said above correct and feasible? Please let me know. By that
time I am off to learn Reflection.
--
Mainish Sinha
http://launchpad.net/~manishsinha
References