<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>simon.says : Interoperability</title><link>http://blogs.msdn.com/smguest/archive/tags/Interoperability/default.aspx</link><description>Tags: Interoperability</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>WSCF 0.6 Released!</title><link>http://blogs.msdn.com/smguest/archive/2006/02/27/540274.aspx</link><pubDate>Tue, 28 Feb 2006 04:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:540274</guid><dc:creator>smguest</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/smguest/comments/540274.aspx</comments><wfw:commentRss>http://blogs.msdn.com/smguest/commentrss.aspx?PostID=540274</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Congratulations to Christian and the guys over at &lt;A href="http://www.thinktecture.com"&gt;Thinktecture&lt;/A&gt; on their &lt;/FONT&gt;&lt;A href="http://www.thinktecture.com/Resources/Software/WSContractFirst/default.html"&gt;&lt;FONT face=Verdana size=2&gt;v0.6 release&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; of WSCF!&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.thinktecture.com/Resources/Software/WSContractFirst/features06.html"&gt;&lt;FONT face=Verdana size=2&gt;New features&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Verdana size=2&gt; include support for .NET Fx 2.0 and Visual Studio 2005, together with partial classes, nullable types, SOAP 1.2, generics and a host of other goodies.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=540274" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/smguest/archive/tags/Interoperability/default.aspx">Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Web+Services+Interoperability/default.aspx">Web Services Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Events/default.aspx">Events</category></item><item><title>How can you tell if a “Web Service” really is a Web Service?</title><link>http://blogs.msdn.com/smguest/archive/2006/01/26/518020.aspx</link><pubDate>Fri, 27 Jan 2006 00:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:518020</guid><dc:creator>smguest</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/smguest/comments/518020.aspx</comments><wfw:commentRss>http://blogs.msdn.com/smguest/commentrss.aspx?PostID=518020</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;I was asked the question "How can you tell if a Web Service really is a Web Service?".&amp;nbsp; If someone says that they have a Web Service (or more importantly is trying to sell you one!) what are the&amp;nbsp;questions you should ask?&amp;nbsp; I decided to put together this list of 10 things that point you in the right direction…&amp;nbsp; and welcome any that I've missed.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;1.&amp;nbsp;Uses WSDL.&lt;/STRONG&gt;&amp;nbsp; A Web Service should expose its service contract using WSDL.&amp;nbsp; If it can’t give you a WSDL document, it’s probably just XML over HTTP…&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;2.&amp;nbsp;Uses SOAP.&lt;/STRONG&gt;&amp;nbsp; All messages sent from and received by the Web Service must use SOAP formatting.&amp;nbsp; If it’s not using SOAP it’s probably just XML over HTTP…&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;3.&amp;nbsp;Uses XSD.&lt;/STRONG&gt;&amp;nbsp; All data types in the SOAP payload must be XSD compliant.&amp;nbsp; No platform native types are allowed.&amp;nbsp; If it’s not using XSD it’s probably just XML over HTTP…&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;4.&amp;nbsp;Uses XML.&lt;/STRONG&gt;&amp;nbsp; The underlying messages should of course be formatted using XML.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;5.&amp;nbsp;No Arbitrary Binary Data.&lt;/STRONG&gt;&amp;nbsp; The message payload should 7 bit ASCII and should contain no embedded binary blobs.&amp;nbsp; Any binary data passed over a Web Service should be&amp;nbsp;sent using either SwA, DIME or MTOM (preferably MTOM).&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;6.&amp;nbsp;Transport is likely to be HTTP.&lt;/STRONG&gt;&amp;nbsp; Although not a requirement, the majority of Web Services today use HTTP as the transport.&amp;nbsp; Compliant Web Services should definitely work over HTTP.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;7.&amp;nbsp;Discovery can be through UDDI.&lt;/STRONG&gt;&amp;nbsp; Again although not a requirement, it should be possible to host the Web Service endpoint using UDDI.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;8.&amp;nbsp;Agreed Versions of Specifications.&lt;/STRONG&gt;&amp;nbsp; The versions of the above specifications (WSDL, SOAP, XSD, XML, HTTP, UDDI) should be in line with the latest version of the&amp;nbsp;WS-I Basic Profile (&lt;A href="http://www.ws-i.org"&gt;http://www.ws-i.org&lt;/A&gt;)&amp;nbsp;– to ensure Web Service compliance between vendors.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;9.&amp;nbsp;Operations should be Document Style.&lt;/STRONG&gt;&amp;nbsp; Operations to/from a Web Service should be Document/Message Style (e.g. &lt;FONT face="Courier New"&gt;SendOrder(order o)&lt;/FONT&gt;).&amp;nbsp; RPC style should be avoided (e.g. &lt;FONT face="Courier New"&gt;SetOrderLine1(orderId id)&lt;/FONT&gt;).&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana&gt;&lt;FONT size=2&gt;&lt;STRONG&gt;10.&amp;nbsp;Should be compliant with WS-*.&lt;/STRONG&gt;&amp;nbsp; Compliant Web Services should be able to accept WS-* payloads and extensions for Security, Reliability and Transactions (although not all stacks today support these yet).&lt;BR&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=518020" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/smguest/archive/tags/Interoperability/default.aspx">Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Web+Services+Interoperability/default.aspx">Web Services Interoperability</category></item><item><title>Interoperability BOF at PDC - Microsoft with Sun</title><link>http://blogs.msdn.com/smguest/archive/2005/09/11/463758.aspx</link><pubDate>Mon, 12 Sep 2005 03:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:463758</guid><dc:creator>smguest</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/smguest/comments/463758.aspx</comments><wfw:commentRss>http://blogs.msdn.com/smguest/commentrss.aspx?PostID=463758</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Interested in interoperability betwen .NET and Java?&amp;nbsp; Then come to tomorrow's (Monday's) BOF session at PDC and hear speakers from both Microsoft and Sun talk about the subject.&amp;nbsp; Here are&amp;nbsp;the details:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Monday 12, 9:30pm, Room 511A - &lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;Interoperability: .NET, Java, Windows &amp;amp; Solaris&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=463758" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/smguest/archive/tags/Interoperability/default.aspx">Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Events/default.aspx">Events</category></item><item><title>Creating Word documents on IBM WebSphere and BEA WebLogic</title><link>http://blogs.msdn.com/smguest/archive/2005/09/10/463494.aspx</link><pubDate>Sun, 11 Sep 2005 02:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:463494</guid><dc:creator>smguest</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/smguest/comments/463494.aspx</comments><wfw:commentRss>http://blogs.msdn.com/smguest/commentrss.aspx?PostID=463494</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Running IBM WebSphere, BEA WebLogic or another J2EE application server?&amp;nbsp; Wish you could generate server-side Microsoft Word documents without any third party add-ins?&amp;nbsp; &lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;With Microsoft Office 2003 and an XML reference schema called WordML, you can do this today.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;&lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/InteropOfXMLPt1.asp"&gt;Here's&lt;/A&gt; the first part in a series that shows you how.&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=463494" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/smguest/archive/tags/Interoperability/default.aspx">Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Technology/default.aspx">Technology</category></item><item><title>New Version of WSE Trace Tool</title><link>http://blogs.msdn.com/smguest/archive/2005/07/20/440986.aspx</link><pubDate>Wed, 20 Jul 2005 19:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:440986</guid><dc:creator>smguest</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/smguest/comments/440986.aspx</comments><wfw:commentRss>http://blogs.msdn.com/smguest/commentrss.aspx?PostID=440986</wfw:commentRss><description>&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: verdana; mso-outline-level: 1"&gt;I caught up with &lt;A href="http://benjaminm.net/"&gt;Benjamin Mitchell&lt;/A&gt; at TechEd Europe this year and we chatted briefly about WSE Trace - a small tool that I put together to help with viewing of traces generated by &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=1BA1F631-C3E7-420A-BC1E-EF18BAB66122&amp;amp;displaylang=en"&gt;WSE&lt;/A&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Given that there is still some interest in this I thought it was overdue for a little update.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; COLOR: black; FONT-FAMILY: verdana; mso-outline-level: 1"&gt;As a result, I've uploaded a new version of WSE Trace (v2.0 beta) to the &lt;A href="http://workspaces.gotdotnet.com/wsetrace"&gt;workspaces site&lt;/A&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The goal of the tool remains the same:&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;-&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Easy to run and copy between machines (it's still only a single 523k .exe!) &lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;-&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Very easy to setup (yep, just run the .exe)&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;-&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Transport Independent &lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;-&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Free of any modifications to app.config or other files &lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Version 2.0 supports all the features of previous releases, plus:&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; FONT-SIZE: 10pt; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; COLOR: black; mso-outline-level: 1"&gt;&lt;SPAN style="COLOR: #000000; FONT-FAMILY: Verdana"&gt;&lt;U&gt;Integration with Visual Studio .NET 2003.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/U&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Just select the "install into Visual Studio .NET" option in the tool to show the trace option in Solution Explorer:&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; mso-outline-level: 1"&gt;&lt;IMG height=79 src="http://simon.guest.members.winisp.net/images/wsetrace1.jpg" width=170&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Note:&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Installation and un-installation of the tool does &lt;SPAN style="FONT-WEIGHT: bold"&gt;not &lt;/SPAN&gt;require an MSI!&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Hey, this is easier to install than an Eclipse add-in! ;-)&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; FONT-SIZE: 10pt; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; COLOR: black; mso-outline-level: 1"&gt;&lt;SPAN style="COLOR: #000000; FONT-FAMILY: Verdana"&gt;&lt;U&gt;WS-I Basic Profile 1.0 Compliance&lt;/U&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;If you have the WS-I testing tool installed, now you can right click on any message, select Basic Profile -&amp;gt; Analyze Message to run a WS-I Basic Profile compliance check on the message.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; mso-outline-level: 1"&gt;&lt;IMG src="http://simon.guest.members.winisp.net/images/wsetrace2.jpg"&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN-TOP: 0px; FONT-SIZE: 10pt; MARGIN-BOTTOM: 0px; VERTICAL-ALIGN: middle; COLOR: black; mso-outline-level: 1"&gt;&lt;SPAN style="COLOR: #000000; FONT-FAMILY: Verdana"&gt;&lt;U&gt;Most Recently Used Projects&lt;/U&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Rather than selecting the directory every time, I've put in a MRU list to easily select previous projects you have traced.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="MARGIN: 0in; mso-outline-level: 1"&gt;&lt;IMG height=155 src="http://simon.guest.members.winisp.net/images/wsetrace3.jpg" width=272&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;That's it - click &lt;A href="http://workspaces.gotdotnet.com/wsetrace"&gt;here&lt;/A&gt; to get to the workspace to download.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Also note that this new version of the trace tool only supports WSE 2.0 SP3 and Microsoft Visual Studio .NET 2003.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;On my list of things to look at are WSE 3.0, Visual Studio 2005 and of course Indigo.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;A few of you have been asking for the source code for this tool.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;There is nothing I would like better than to share this with people (and hopefully get others adding more functionality).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I'll therefore be uploading this to the workspace very soon.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=440986" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/smguest/archive/tags/Interoperability/default.aspx">Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Web+Services+Interoperability/default.aspx">Web Services Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Events/default.aspx">Events</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Technology/default.aspx">Technology</category></item><item><title>MTOM Blogcast</title><link>http://blogs.msdn.com/smguest/archive/2005/07/14/438899.aspx</link><pubDate>Thu, 14 Jul 2005 21:19:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:438899</guid><dc:creator>smguest</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/smguest/comments/438899.aspx</comments><wfw:commentRss>http://blogs.msdn.com/smguest/commentrss.aspx?PostID=438899</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;For those that didn't get to attend my session at JavaOne or TechEd Europe this year, here is a 5 minute&amp;nbsp;&lt;A href="http://simon.guest.members.winisp.net/webcasts/mtomblogcast.wmv"&gt;"blog cast"&lt;/A&gt; of my MTOM interop demo - as I described in this &lt;a href="http://blogs.msdn.com/smguest/archive/2005/06/30/434218.aspx"&gt;earlier post&lt;/A&gt;.&amp;nbsp; See how easy it is to use WSE 3.0 CTP and JAX-WS to send a binary attachment between Java and .NET.&amp;nbsp; &lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;(...oh, and apologies in advance for my slow VPC!)&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=438899" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/smguest/archive/tags/Interoperability/default.aspx">Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Web+Services+Interoperability/default.aspx">Web Services Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Technology/default.aspx">Technology</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Architecture/default.aspx">Architecture</category></item><item><title>Custom Exception Handling in Indigo</title><link>http://blogs.msdn.com/smguest/archive/2005/07/12/438084.aspx</link><pubDate>Tue, 12 Jul 2005 22:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:438084</guid><dc:creator>smguest</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/smguest/comments/438084.aspx</comments><wfw:commentRss>http://blogs.msdn.com/smguest/commentrss.aspx?PostID=438084</wfw:commentRss><description>&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;One question I frequently get asked is "how do I handle exceptions over Web Services?"&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;If you've ever tried passing exceptions using Web Services you'll likely be able to relate to the issues.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;The main problem is that the majority of toolkits don't have a great way to deserialize generated SOAP Faults to local exceptions - which means that you have to dig through the SOAP Fault to get an error code or parse the detail message to figure out what when wrong.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;A href="http://pluralsight.com/blogs/keith"&gt;Keith Brown&lt;/A&gt; recently highlighted some of the problems in a &lt;A href="http://pluralsight.com/blogs/keith/archive/2005/06/02/9712.aspx"&gt;recent post&lt;/A&gt;.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Fortunately, this is something that Indigo handles beautifully.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Here's how it works:&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Firstly, you define your custom exception:&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;[Serializable]&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;public class MyCustomException : Exception, ISerializable&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;public MyCustomException(string Message)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 1in; FONT-FAMILY: Verdana; mso-outline-level: 3"&gt;&lt;FONT face="Courier New"&gt;: base(Message)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;public MyCustomException(SerializationInfo si, StreamingContext sc)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 1in; FONT-FAMILY: Verdana; mso-outline-level: 3"&gt;&lt;FONT face="Courier New"&gt;: base(si, sc)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Notice that the exception is attributed with Serializable, implements ISerializable and has a constructor that accepts SerializationInfo and StreamingContext.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;All these three are required to correctly serialize the custom exception type over the wire.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;In our service contract we attribute the operation that will be generating this exception.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Here we mark the custom exception as being a known type and define it as a fault contract.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;[OperationContract]&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;[KnownType(typeof(MyCustomException))]&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;[FaultContract(typeof(MyCustomException))]&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;void GiveMeCustomException();&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;To throw the custom exception from an Indigo service, we generate the custom exception - but then wrap the exception in a SOAP Fault.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;It is this that is then thrown from the service.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;MyCustomException mce = new MyCustomException("Custom problem...");&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;Fault&amp;lt;MyCustomException&amp;gt; fault = new Fault&amp;lt;MyCustomException&amp;gt;(mce);&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;throw fault;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;On the client, catching these custom exceptions is very easy.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;You need to reference the shared CustomException type in your project and then...&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;try&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;// call the operation that generates the exception&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;catch (Fault&amp;lt;MyCustomException&amp;gt;)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;Console.WriteLine("It worked!&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Custom Exception!");&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;catch (Exception e)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;Console.WriteLine("Didn't work.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Sorry.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;"+e.ToString());&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Then, to map the fault to the local custom exception, you use:&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;catch (Fault&amp;lt;MyCustomException&amp;gt; fault)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;Console.WriteLine("It worked!&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Custom Exception!");&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;MyCustomException mce = fault.Detail;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Finally, you can also add additional fields to the exception (which was Keith's main gripe).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;To do this, simply create a public property and override the GetObjectData method to handle the serialization correctly:&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;[Serializable]&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;public class MyCustomException : Exception, ISerializable&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;private string myValue = "";&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;public MyCustomException(string Message)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 1in; FONT-FAMILY: Verdana; mso-outline-level: 3"&gt;&lt;FONT face="Courier New"&gt;: base(Message)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;public MyCustomException(SerializationInfo si, StreamingContext sc)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 1in; FONT-FAMILY: Verdana; mso-outline-level: 3"&gt;&lt;FONT face="Courier New"&gt;: base(si, sc)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;public string MyValue&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 1in; FONT-FAMILY: Verdana; mso-outline-level: 3"&gt;&lt;FONT face="Courier New"&gt;get { return myValue; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 1in; FONT-FAMILY: Verdana; mso-outline-level: 3"&gt;&lt;FONT face="Courier New"&gt;set { myValue = value; }&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;public override void GetObjectData(SerializationInfo si, StreamingContext sc)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;{&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 1in; FONT-FAMILY: Verdana; mso-outline-level: 3"&gt;&lt;FONT face="Courier New"&gt;base.GetObjectData(si, sc);&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 1in; FONT-FAMILY: Verdana; mso-outline-level: 3"&gt;&lt;FONT face="Courier New"&gt;si.AddValue("MyValue", myValue);&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in 0in 0in 0.5in; FONT-FAMILY: Verdana; mso-outline-level: 2"&gt;&lt;FONT face="Courier New"&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;From what I've seen, this is an awesome feature and will greatly help the handling of custom exceptions.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Thanks go to Israel Burman for helping me get to the bottom of this.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;My next task is to see whether I can use the same approach, but map custom exceptions generated on WebSphere 6.0 to custom exceptions in Indigo ;-).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=438084" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/smguest/archive/tags/Interoperability/default.aspx">Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Blogs/default.aspx">Blogs</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Web+Services+Interoperability/default.aspx">Web Services Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Technology/default.aspx">Technology</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Architecture/default.aspx">Architecture</category></item><item><title>How to do MTOM Interop</title><link>http://blogs.msdn.com/smguest/archive/2005/06/30/434218.aspx</link><pubDate>Thu, 30 Jun 2005 17:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:434218</guid><dc:creator>smguest</dc:creator><slash:comments>9</slash:comments><comments>http://blogs.msdn.com/smguest/comments/434218.aspx</comments><wfw:commentRss>http://blogs.msdn.com/smguest/commentrss.aspx?PostID=434218</wfw:commentRss><description>&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;In my JavaOne session yesterday I showed (what I believe to be) the first MTOM Interop demo between .NET and Java using publicly available toolkits.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;For those that don't know MTOM (Message Transmission Optimization Mechanism) is the new specification for optimizing the transmission and/or wire format of SOAP messages.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Primarily this means that we have a new standard that allows the sending of attachments over Web Services - one that the industry agrees on, and one that is composable with the other WS-* specifications.&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;The demo showed WSE 3.0 CTP (which can be downloaded &lt;A href="http://msdn.microsoft.com/webservices/building/wse/default.aspx"&gt;here&lt;/A&gt;) returning a PowerPoint deck to a Java client using JAX-WS EA 2.0 (which can be downloaded &lt;A href="https://jax-rpc.dev.java.net/jaxws20-ea2/"&gt;here&lt;/A&gt;).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;This is how it works:&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;The WSE service defines a method called GetFileBinary:&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;[WebMethod]&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;public byte[] GetFileBinary(String fileName)&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;{&lt;BR&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;String filePath = AppDomain.CurrentDomain.BaseDirectory + @"App_Data\" + fileName;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;return File.ReadAllBytes(filePath);&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;As you can see the method returns an array of bytes.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;To enable MTOM encoding we use the following switch in the web.config file:&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;&amp;lt;mtom clientMode="On" /&amp;gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;When we call the method the binary representation of the attachment appears within the body of the SOAP response (although actually this is an abstract representation of the multiple MIME messages that are physically sent on the wire).&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;So, how do we call this in Java?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Well, first we create a new instance of the service using JAX-WS EA 2.0 and call the GetFileBinary method:&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;ServiceFactory serviceFactory = ServiceFactory.newInstance();&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;Service service = (Service)serviceFactory.createService(new URL("http://localhost:8080/dotNETWS/Service.asmx?WSDL"), Service.class);&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;ServiceSoap soap = service.getServiceSoap();&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;SOAPBinding binding = (SOAPBinding)((BindingProvider)soap).getBinding();&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;binding.setMTOMEnabled(true);&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;Notice how we also set the MTOMEnabled flag on the binding of the service.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;When the method is called, an array of bytes is returned.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;We simply output to a FileOutputStream:&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;byte[] fileData = soap.getFileBinary("JavaOne.ppt");&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;FileOutputStream fos = new FileOutputStream("C:\\Documents and Settings\\Administrator\\Desktop\\JavaOne.ppt");&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;fos.write(fileData);&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;fos.flush();&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&lt;FONT face="Courier New"&gt;fos.close();&lt;/FONT&gt;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;..and there we have the attachment!&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Anyone that has done anything with SwA or DIME interop in the past will hopefully recognize the progress that we are making in this area - testament I believe to how Microsoft and Sun has been working together on these specifications.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;From a presenter's point of view, it was also nice to see how easy this demo was to put together (even if it was done just a few hours before my presentation ;-)&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P style="FONT-SIZE: 10pt; MARGIN: 0in; FONT-FAMILY: Verdana; mso-outline-level: 1"&gt;What's next?&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;I am&amp;nbsp;working with &lt;A href="http://weblogs.java.net/blog/arungupta/"&gt;Arun Gupta&lt;/A&gt; from Sun to formally write up the demo into a whitepaper and sample download that we'll post on both sites.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;After that we'll be working on showing Secure MTOM (WS-Security + MTOM) to demonstrate how attachments can be sent securely between Web Service endpoints.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=434218" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/smguest/archive/tags/Interoperability/default.aspx">Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Web+Services+Interoperability/default.aspx">Web Services Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Events/default.aspx">Events</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Architecture/default.aspx">Architecture</category></item><item><title>Update from JavaOne</title><link>http://blogs.msdn.com/smguest/archive/2005/06/29/433736.aspx</link><pubDate>Wed, 29 Jun 2005 10:31:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:433736</guid><dc:creator>smguest</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/smguest/comments/433736.aspx</comments><wfw:commentRss>http://blogs.msdn.com/smguest/commentrss.aspx?PostID=433736</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Wow, here&amp;nbsp;I am at JavaOne!&amp;nbsp; It’s kind of odd...&amp;nbsp;&amp;nbsp; I’ve been doing Java development for a number of years now and&amp;nbsp;I realize that&amp;nbsp;this is my first visit to JavaOne.&amp;nbsp; (What’s more ironic is that I had to wait to join Microsoft before I went ;-)&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;So, what have we been up to - and what are we doing?&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;Tomorrow (Wednesday)&amp;nbsp;is the Interop track at JavaOne, so if you are here, be sure to check out the sessions that&amp;nbsp;are lined up.&amp;nbsp; You can get a full run down of these on page 118 of the JavaOne Program Guide.&amp;nbsp; In particular I’d like to draw your attention to our BOF session on Wednesday evening at 7.30pm (Hall E 340) – “On the Couch with Sun and Microsoft”.&amp;nbsp; This is an open Q&amp;amp;A session where you can put forward any question you may have about getting products on both platforms to work together.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Raghavan Srinivas (from Sun) and I have been working on the demos for tomorrow's Advanced Web Services Interoperability session (TS-9866).&amp;nbsp;&amp;nbsp;We are&amp;nbsp;to the wire, but looking pretty good.&amp;nbsp; We'll be showing WS-Security, WS-RM, and even MTOM interop between .NET and Java.&amp;nbsp; Not sure what MTOM is?&amp;nbsp; Then you'll want to join us at 2.45pm to find out!&amp;nbsp; &lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;On your way,&amp;nbsp;be sure to visit the Microsoft booth in the pavillion.&amp;nbsp; We are #440, next to the lunch hall - we have a great collection of demos (running on 64-bit AMD Sun hardware) and&amp;nbsp;a team of&amp;nbsp;experts ready to take questions.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;So far,&amp;nbsp;my experience of JavaOne this year has&amp;nbsp;very positive - it's been great to hear what people are doing,&amp;nbsp;and talking with them about their&amp;nbsp;perceptions of Microsoft and their interests around Interoperability.&amp;nbsp; The highlight of Monday&amp;nbsp;had to be&amp;nbsp;meeting Scott McNealy (and giving him a copy of my book) when he visited&amp;nbsp;our booth ;-)&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=433736" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/smguest/archive/tags/Interoperability/default.aspx">Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Web+Services+Interoperability/default.aspx">Web Services Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Events/default.aspx">Events</category></item><item><title>Microsoft at TechEd also ;-)</title><link>http://blogs.msdn.com/smguest/archive/2005/05/31/423618.aspx</link><pubDate>Wed, 01 Jun 2005 03:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:423618</guid><dc:creator>smguest</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/smguest/comments/423618.aspx</comments><wfw:commentRss>http://blogs.msdn.com/smguest/commentrss.aspx?PostID=423618</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;As I mentioned in my last post I'll be at JavaOne this year - but before that of course I'll be making my way down to TechEd!&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;I'll be presenting on Saturday 4th for TechEd Academic at the University of Florida.&amp;nbsp; I always enjoy the academic sessions as it helps put different perspectives on many topics.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;After the weekend, my main session at TechEd is &lt;STRONG&gt;&lt;A href="http://www.msteched.com/content/sessionview.aspx?TopicID=b89a566f-524b-418f-88a7-58d47806f2d0"&gt;CSI354&lt;/A&gt;&lt;/STRONG&gt; on &lt;STRONG&gt;Wednesday 8th&lt;/STRONG&gt; at &lt;STRONG&gt;5.30pm&lt;/STRONG&gt;.&amp;nbsp; I can only apologize for the time (yeah, 5.30pm wouldn't be my first pick), but hope that you'll join me and not wait until the post-conference DVD.&amp;nbsp; We've been working hard this year to show things that "have only been talked about" until now!&amp;nbsp; (…and yes, that's all I'm giving away!).&amp;nbsp; &lt;/FONT&gt;&lt;FONT face=Verdana size=2&gt;In between, be sure to stop at the ARC cabana where my team will be hanging out.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;If you are looking for a good list of recommended sessions, check out Scott Hanselman's list &lt;A href="http://www.hanselman.com/blog/MyPicksForTechEd2005Sessions.aspx"&gt;here&lt;/A&gt;.&amp;nbsp;&amp;nbsp;In addition to these, I'm personally&amp;nbsp;looking forward to the HOLs (Hands On Labs).&amp;nbsp; I find these especially useful for those products that fit the&amp;nbsp;"I should know more about that" category.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Hope to see you there...&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=423618" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/smguest/archive/tags/Interoperability/default.aspx">Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Blogs/default.aspx">Blogs</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Web+Services+Interoperability/default.aspx">Web Services Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Architecture/default.aspx">Architecture</category></item><item><title>Microsoft at JavaOne</title><link>http://blogs.msdn.com/smguest/archive/2005/05/24/421470.aspx</link><pubDate>Tue, 24 May 2005 21:33:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:421470</guid><dc:creator>smguest</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/smguest/comments/421470.aspx</comments><wfw:commentRss>http://blogs.msdn.com/smguest/commentrss.aspx?PostID=421470</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;As you may have read from &lt;A href="http://www.theserverside.net/news/thread.tss?thread_id=34081"&gt;TheServerSide's post&lt;/A&gt; or through other articles, Microsoft will be attending &lt;A href="http://java.sun.com/javaone/"&gt;JavaOne&lt;/A&gt; this year in San Francisco.&amp;nbsp; We've been working with Sun over the past few months to put together an Interoperability track on the Tuesday of the conference.&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;The track includes the following &lt;A href="https://www28.cplan.com/javaone05_93_1/sessions_catalog.jsp"&gt;sessions&lt;/A&gt;:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;*&amp;nbsp; TS-3552:&amp;nbsp; Interoperability Track Keynote - come to hear Mark Hapner (Distinguished Engineer) from Sun and Andrew Laymen (Director of Distributed Systems) from Microsoft kick off the interoperability track!&amp;nbsp; Mark and Andrew will be covering WS-* Web Services Architecture.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;*&amp;nbsp; TS-9886:&amp;nbsp; Advanced Web Services Interoperability - this is a session I'll be co-presenting with Raghavan Srinivas.&amp;nbsp; Rags and I will be discussing recommendations and strategies for using Web Services to interoperate between Java and .NET today.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;*&amp;nbsp; BOF-9095: "On the Couch with Microsoft and Sun" - this is a BoF (Birds of a Feather) session that Marina Fisher (Sun) and I submitted.&amp;nbsp; The format is simple:&amp;nbsp; 3 people from Microsoft (Doug Purdy, Dino Chiesa and myself).&amp;nbsp; 3 people from Sun (Marina, Ray Lai and Laurence Moroney).&amp;nbsp; An audience.&amp;nbsp; An independent moderator.&amp;nbsp; No agenda.&amp;nbsp; No PowerPoint.&amp;nbsp; Come and ask open questions to the panel about any interoperability related issues on your mind!&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;*&amp;nbsp; TS-3367:&amp;nbsp; Interoperability using Techniques other than Web Services - everyone is aware that there are many ways to achieve interoperability between Java and .NET.&amp;nbsp; In his session (on Thursday), Kevin Wittkopf from Microsoft will be examining some of these.&amp;nbsp; Expect to hear about different types of connectors, bridges and RMI/Remoting techniques.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;In addition, we&amp;nbsp;have a booth on the exhibitors floor.&amp;nbsp; We encourage you to come up and ask us questions after the sessions about something you may have heard - or&amp;nbsp;even if you just have general questions about how we interoperate with Java today.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;So, what's the hidden agenda here?&amp;nbsp; Well, quite simply there is none.&amp;nbsp; I think I speak for all of us attending JavaOne when I say that we believe there is a great interoperability story between Java and .NET - and feel that JavaOne is a great conference for that story to be told.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Verdana size=2&gt;Hope to see you there!&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=421470" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/smguest/archive/tags/Interoperability/default.aspx">Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Blogs/default.aspx">Blogs</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Web+Services+Interoperability/default.aspx">Web Services Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Events/default.aspx">Events</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Architecture/default.aspx">Architecture</category></item><item><title>Channel9 Fun cont'd</title><link>http://blogs.msdn.com/smguest/archive/2005/05/17/418930.aspx</link><pubDate>Wed, 18 May 2005 03:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:418930</guid><dc:creator>smguest</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/smguest/comments/418930.aspx</comments><wfw:commentRss>http://blogs.msdn.com/smguest/commentrss.aspx?PostID=418930</wfw:commentRss><description>&lt;FONT face=Verdana size=2&gt;Did I also mention that the C9 demo&amp;nbsp;mentioned in my last post&amp;nbsp;shows BEA WebLogic (running on Red Hat Linux) creating a Microsoft Excel spreadsheet - using a technology called Office XML?&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=418930" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/smguest/archive/tags/Interoperability/default.aspx">Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Technology/default.aspx">Technology</category></item><item><title>Channel9 Fun</title><link>http://blogs.msdn.com/smguest/archive/2005/05/17/418416.aspx</link><pubDate>Tue, 17 May 2005 09:19:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:418416</guid><dc:creator>smguest</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/smguest/comments/418416.aspx</comments><wfw:commentRss>http://blogs.msdn.com/smguest/commentrss.aspx?PostID=418416</wfw:commentRss><description>&lt;FONT face=Verdana size=2&gt;&lt;A href="http://channel9.msdn.com/ShowPost.aspx?PostID=69105#69105"&gt;Here's&lt;/A&gt; a 34 minute video that Robert, Karsten and I put together for &lt;A href="http://channel9.msdn.com"&gt;Channel 9&lt;/A&gt;.&amp;nbsp; In it I show how we can take a mainframe app, BEA WebLogic running on Red Hat and some Office XML,&amp;nbsp;mix it together and front it with an interface written in Avalon.&amp;nbsp; &lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=418416" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/smguest/archive/tags/Interoperability/default.aspx">Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Events/default.aspx">Events</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Technology/default.aspx">Technology</category></item><item><title>WS-Security Interop using WSE 2.0 and Sun JWSDP 1.5</title><link>http://blogs.msdn.com/smguest/archive/2005/05/12/417055.aspx</link><pubDate>Fri, 13 May 2005 07:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:417055</guid><dc:creator>smguest</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/smguest/comments/417055.aspx</comments><wfw:commentRss>http://blogs.msdn.com/smguest/commentrss.aspx?PostID=417055</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Verdana size=2&gt;An update to my WS-Security interop series got posted today.&amp;nbsp; &lt;A href="http://msdn.microsoft.com/architecture/default.aspx?pull=/library/en-us/dnbda/html/WSSInteropJWSDP15.asp"&gt;This article&lt;/A&gt; shows WS-Security interoperability (using X.509 certs) between WSE 2.0 and Sun's JWSDP (Java Web Services Developer Pack) 1.5.&amp;nbsp; &lt;/FONT&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=417055" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/smguest/archive/tags/Interoperability/default.aspx">Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Web+Services+Interoperability/default.aspx">Web Services Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Events/default.aspx">Events</category></item><item><title>Office Redistributable PIAs available</title><link>http://blogs.msdn.com/smguest/archive/2005/04/19/409695.aspx</link><pubDate>Tue, 19 Apr 2005 21:29:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:409695</guid><dc:creator>smguest</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/smguest/comments/409695.aspx</comments><wfw:commentRss>http://blogs.msdn.com/smguest/commentrss.aspx?PostID=409695</wfw:commentRss><description>&lt;FONT face=Verdana size=2&gt;News from &lt;A href="http://devhawk.net"&gt;Harry&lt;/A&gt; - the Office 2003 PIAs (Primary Interop Assemblies) are now &lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=3c9a983a-ac14-4125-8ba0-d36d67e0f4ad&amp;amp;displaylang=en"&gt;available&lt;/A&gt; as a separate, redistributable download.&amp;nbsp; This is&amp;nbsp;great news for developers building apps that interoperate with Microsoft Office 2003.&lt;/FONT&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=409695" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/smguest/archive/tags/Interoperability/default.aspx">Interoperability</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Events/default.aspx">Events</category><category domain="http://blogs.msdn.com/smguest/archive/tags/Technology/default.aspx">Technology</category></item></channel></rss>