Download - .NET Interop

Transcript
Page 1: .NET Interop

.NET Interop

Radu Preotiuc-Pietro,BEA Systems

Page 2: .NET Interop

Use Case 1

DAS

Server

XML

SchemaClient .NET

XML

Java

DAS

ServerClient

XML

Java

Processing…

diffgram?

Page 3: .NET Interop

Use Case 2

diffgramChange summary

Diffgram to SDO ChangeSummary

translation

DAS Server

Java

submit

Page 4: .NET Interop

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>

Page 5: .NET Interop

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>

Page 6: .NET Interop

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