60 likes | 87 Views
.NET Interop. Radu Preotiuc-Pietro, BEA Systems. Use Case 1. DAS Server. XML Schema. Client. XML. .NET. Java. Processing…. DAS Server. diffgram. Client. XML. ?. Java. Use Case 2. DAS Server. Change summary. diffgram. submit. Diffgram to SDO ChangeSummary translation. Java.
E N D
.NET Interop Radu Preotiuc-Pietro, BEA Systems
Use Case 1 DAS Server XML Schema Client XML .NET Java Processing… DAS Server diffgram Client XML ? Java
Use Case 2 DAS Server Change summary diffgram submit Diffgram to SDO ChangeSummary translation Java
<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 1
<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> Diffgram Format 2
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