.NET Interop
description
Transcript of .NET Interop
.NET Interop
Radu Preotiuc-Pietro,BEA Systems
Use Case 1
DAS
Server
XML
SchemaClient .NET
XML
Java
DAS
ServerClient
XML
Java
Processing…
diffgram?
Use Case 2
diffgramChange summary
Diffgram to SDO ChangeSummary
translation
DAS Server
Java
submit
Diffgram Format 1
<diffgr:diffgram ...>
<default_all_typesDataSet xmlns="ld-default-type-test">
<default_all_types diffgr:id="default_all_types1" msdata:rowOrder="0" msdata:hiddendefault_all_types_Id="0">
<ElementTypes diffgr:id="ElementTypes1" msdata:rowOrder="0" diffgr:hasChanges="modified" msdata:hiddendefault_all_types_Id="0">
<anyURI xmlns="">http://www.yahoo.com/</anyURI>
<boolean xmlns="">false</boolean>
<byte xmlns="">1</byte>
<datetype xmlns="">2006-01-12-08:00</datetype>
<dateTime xmlns="">2006-01-12T00:25:12.5008168-08:00</dateTime>
<decimal xmlns="">12.76</decimal>
...
</ElementTypes>
...
</default_all_types>
</default_all_typesDataSet>
<diffgr:before>
<ElementTypes diffgr:id="ElementTypes1" msdata:rowOrder="0" msdata:hiddendefault_all_types_Id="0" xmlns="ld-default-type-test">
<boolean xmlns="">true</boolean>
<decimal xmlns="">12.76</decimal>
</ElementTypes>
</diffgr:before>
</diffgr:diffgram>
<sdo:datagraph xmlns:sdo="commonj.sdo">
<changeSummary ...>
<ld:ElementTypes sdo:ref="#/sdo:datagraph/ld:default_all_types/ld:ElementTypes[1]" sdo:unset="anyURI byte datetype dateTime"><boolean>true</boolean></ld:ElementTypes>
</changeSummary>
<default_all_types xmlns="ld-default-type-test">
<ElementTypes>
<anyURI xmlns="">http://www.yahoo.com/</anyURI>
<boolean xmlns="">false</boolean>
<byte xmlns="">1</byte>
<datetype xmlns="">2006-01-12-08:00</datetype>
<dateTime xmlns="">2006-01-12T00:25:12.5008168-08:00</dateTime>
<decimal xmlns="">12.76</decimal>
…
</ElementTypes>
...
</default_all_types>
</sdo:datagraph>
Diffgram Format 2<diffgr:diffgram ...>
<CUSTOMER_PROFILEDataSet …>
<CUSTOMER_PROFILE diffgr:id="CUSTOMER_PROFILE1" msdata:rowOrder="0" msdata:hiddenCUSTOMER_PROFILE_Id="0">
<CustomerID xmlns="">CUST1</CustomerID>
...
<ADDRESS diffgr:id="ADDRESS1" msdata:rowOrder="0" msdata:hiddenCUSTOMER_PROFILE_Id="0" xmlns="">
<AddressID>ADDR1</AddressID>
<StreetAddress_1>1</StreetAddress_1>
<StreetAddress_2>1</StreetAddress_2>
<City>1</City>
...
</ADDRESS>
</CUSTOMER_PROFILE>
</CUSTOMER_PROFILEDataSet>
<diffgr:before>
<ADDRESS diffgr:id="ADDRESS2" diffgr:parentId="CUSTOMER_PROFILE1" msdata:rowOrder="1" msdata:hiddenCUSTOMER_PROFILE_Id="0" xmlns="">
<AddressID>ADDR1_2</AddressID>
<StreetAddress_1>1</StreetAddress_1>
<StreetAddress_2>1</StreetAddress_2>
<City>1</City>
...
</ADDRESS>
</diffgr:before>
</diffgr:diffgram>
<sdo:datagraph xmlns:sdo="commonj.sdo">
<changeSummary create="" delete="#/sdo:datagraph/changeSummary/urn:CUSTOMER_PROFILE[1]/ADDRESS[2]" ...>
<urn:CUSTOMER_PROFILE sdo:ref="#/sdo:datagraph/urn:CUSTOMER_PROFILE">
<ADDRESS sdo:ref="#/sdo:datagraph/urn:CUSTOMER_PROFILE/ADDRESS[1]"></ADDRESS>
<ADDRESS xmlns="">
<AddressID>ADDR1_2</AddressID>
<StreetAddress_1>1</StreetAddress_1>
<StreetAddress_2>1</StreetAddress_2>
<City>1</City>
...
</ADDRESS>
</urn:CUSTOMER_PROFILE>
</changeSummary>
<CUSTOMER_PROFILE ...">
<CustomerID xmlns="">CUST1</CustomerID>
...
<ADDRESS xmlns="">
<AddressID>ADDR1</AddressID>
<StreetAddress_1>1</StreetAddress_1>
<StreetAddress_2>1</StreetAddress_2>
<City>1</City>
...
</ADDRESS>
</CUSTOMER_PROFILE>
</sdo:datagraph>
Conclusion
Offers a way for the .NET programmer to use his/her familiar programming APIs
Takes advantage of the change tracking capability of ADO .NET
Leverages DAS to a new set of users