Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Perl > Perl Misc > syntax question in dealing with .Net api

Reply
Thread Tools

syntax question in dealing with .Net api

 
 
trillich@gmail.com
Guest
Posts: n/a
 
      11-12-2007
hi -- not sure where the best place would be to post this; please
point me elsewhere if there's another list more apropos...

we've got two apps, one in java, one in .Net, and we're trying to put
some glue together to transfer data back and forth between them:

- reading data FROM the .Net application is easy
- writing data TO the .Net application is a puzzle...

to read data from within VB, we can use syntax like VAR =
OBJ.METHOD(PARAMS) and to write fields to an object from within VB
it's also simple: OBJ.METHOD(PARAMS) = VAL.

only the read-style syntax works in exterior languages (Perl is our
platform for proof-of-concept):

$val = $obj->method("param");

but the write-style syntax needs something different:

$obj->method("param") = $expr; # no way

is there a standardized "write-to" syntax that non-VB languages can
take advantages?

$obj->method("param")->let($expr); # for example
$obj->let($expr)->method("param"); # for example
$obj->let_method("param",$expr); # for example

anybody know a FAQ or URL that'll point us in the right direction?

 
Reply With Quote
 
 
 
 
Ben Morrow
Guest
Posts: n/a
 
      11-12-2007
[newsgroups trimmed since my ISP doesn't carry microsoft.*, f'up set]

Quoth http://www.velocityreviews.com/forums/(E-Mail Removed):
>
> we've got two apps, one in java, one in .Net, and we're trying to put
> some glue together to transfer data back and forth between them:
>
> - reading data FROM the .Net application is easy
> - writing data TO the .Net application is a puzzle...
>
> to read data from within VB, we can use syntax like VAR =
> OBJ.METHOD(PARAMS) and to write fields to an object from within VB
> it's also simple: OBJ.METHOD(PARAMS) = VAL.
>
> only the read-style syntax works in exterior languages (Perl is our
> platform for proof-of-concept):
>
> $val = $obj->method("param");
>
> but the write-style syntax needs something different:
>
> $obj->method("param") = $expr; # no way


I don't know much about .Net, but when you say 'fields' here are you
referring to what Microsoft call 'properties' in OLE/COM? In that case,
that standard way to access COM objects from Perl is to use the
Win32::OLE module, which provides the syntax

$obj->LetProperty('method', 'param', $expr);

to perform what you are asking for above. See the docs for Win32::OLE.

Since the method/property distinction, in particular the concept of
'properties with arguments which are nevertheless assignable and
different from methods', is very much a VB thing, you will have to use
some sort of OLE-compatibility layer in other languages. I would have
thought most languages that run on Win32 would have a standard COM
binding, by now.

If you are talking to your .Net app through some means other than COM,
you will have to tell us more about what you are doing.

Ben

 
Reply With Quote
 
 
 
 
trillich@gmail.com
Guest
Posts: n/a
 
      11-12-2007
On Nov 12, 12:55 pm, Ben Morrow <(E-Mail Removed)> wrote:
> Quoth (E-Mail Removed):
> > to read data from within VB, we can use syntax like VAR =
> > OBJ.METHOD(PARAMS) and to write fields to an object from within VB
> > it's also simple: OBJ.METHOD(PARAMS) = VAL.

>
> > only the read-style syntax works in exterior languages (Perl is our
> > platform for proof-of-concept):

>
> > $val = $obj->method("param");

>
> > but the write-style syntax needs something different:

>
> > $obj->method("param") = $expr; # no way

>
> I don't know much about .Net, but when you say 'fields' here are you
> referring to what Microsoft call 'properties' in OLE/COM? In that case,
> that standard way to access COM objects from Perl is to use the
> Win32::OLE module, which provides the syntax
>
> $obj->LetProperty('method', 'param', $expr);
>
> to perform what you are asking for above. See the docs for Win32::OLE.


hmm. that doesn't look like...

waitaminit:

"""
The SetProperty() method allows to modify properties with
arguments, which is not supported by the hash syntax. The hash form

$Object->{Property} = $Value;

is equivalent to

$Object->SetProperty('Property', $Value);
"""

so... if we're reading values via

$stu = $students->Item( $ix );
$fname = $stu->Fields( 31 );

that implies that maybe we can do

$stu->LetProperty('Fields',31,'Beelzebub');

but there's no way that...

it works! it really works! hoorah!

big thanks, Ben, a blessing upon you and the horse you rode in on!

 
Reply With Quote
 
trillich@gmail.com
Guest
Posts: n/a
 
      11-12-2007
On Nov 12, 12:06 pm, (E-Mail Removed) wrote:
> hi -- not sure where the best place would be to post this; please
> point me elsewhere if there's another list more apropos...
>
> we've got two apps, one in java, one in .Net, and we're trying to put
> some glue together to transfer data back and forth between them:
>
> - reading data FROM the .Net application is easy
> - writing data TO the .Net application is a puzzle...
>
> to read data from within VB, we can use syntax like VAR =
> OBJ.METHOD(PARAMS) and to write fields to an object from within VB
> it's also simple: OBJ.METHOD(PARAMS) = VAL.
>
> only the read-style syntax works in exterior languages (Perl is our
> platform for proof-of-concept):
>
> $val = $obj->method("param");
>
> but the write-style syntax needs something different:
>
> $obj->method("param") = $expr; # no way
>
> is there a standardized "write-to" syntax that non-VB languages can
> take advantages?
>
> $obj->method("param")->let($expr); # for example
> $obj->let($expr)->method("param"); # for example
> $obj->let_method("param",$expr); # for example
>
> anybody know a FAQ or URL that'll point us in the right direction?


SOLVED:

> > to read data from within VB, we can use syntax like VAR =
> > OBJ.METHOD(PARAMS) and to write fields to an object from within VB
> > it's also simple: OBJ.METHOD(PARAMS) = VAL.


> > only the read-style syntax works in exterior languages (Perl is our
> > platform for proof-of-concept):


> > $val = $obj->method("param");


> > but the write-style syntax needs something different:


> > $obj->method("param") = $expr; # no way


> I don't know much about .Net, but when you say 'fields' here are you
> referring to what Microsoft call 'properties' in OLE/COM? In that case,
> that standard way to access COM objects from Perl is to use the
> Win32::OLE module, which provides the syntax


> $obj->LetProperty('method', 'param', $expr);


> to perform what you are asking for above. See the docs for Win32::OLE.


Win32::OLE manpage includes

"""
The SetProperty() method allows to modify properties with
arguments, which is not supported by the hash syntax. The hash form

$Object->{Property} = $Value;

is equivalent to

$Object->SetProperty('Property', $Value);
"""

so... if we're reading values via

$stu = $students->Item( $ix );
$fname = $stu->Fields( 31 );

that implies that maybe we can do

$stu->LetProperty('Fields',31,'Beelzebub');

but there's no way that...

it works! it really works! hoorah!

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Profiling API or Membership API John123 ASP .Net 0 10-20-2006 03:18 PM
Dealing with a STRANGE API Ignoramus7272 Perl Misc 2 10-07-2006 06:29 AM
Calling the C API from Python and Python program from same C API -bidirectional Praveen, Tayal (IE10) Python 0 03-17-2005 06:33 AM
What API replaces the unlock API that existed in gcc 2.9.3? Shlomo Anglister C++ 1 08-02-2004 06:50 PM
Dealing with API changes using Ruby/DL Josh Huber Ruby 1 04-10-2004 09:24 AM



Advertisments