Daily Archives: July 30, 2004

iXMLSerializable in .NET 2.0

I was trying to understand why  I was being told that the implementation of iXMLSerializable in DataTable and DataSet in 2.0 is responsible for all of the xml goodies (readxml/write/etc and of course all the webservices stuff) when DataSet in 1.0 and 1.1 does not even implement iXMLSerializable, yet still manages to do all of these things.

I know about the difference between using the binary formatter and the soap formatter, but I never worried about what was going on deeper down when datasets were “magically” serialized for me by ASMX.

After reassuring myself by looking at the DataSet Class documentation for 1.1 and seeing for sure that it implements iSerializable but not iXMLSerializable, I found this little goodie:

Dataset.iXMLSerializable.ReadXML Method  (This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.)

and realized that it MUST be in there, just buried/hidden. So I kept digging and digging .

I found the answer in the June 2004 MSDN article: “New Features for Web Service Developers in Beta 1 of the .NET Framework 2.0“ by Elliot Rapp,Yasser Shohoud and Matt Tavis.

“The IXmlSerializable interface has been in the .NET Framework since version 1.0, but was not intended for general usage. This interface was designed specifically for System.Data.DataSet to enable custom serialization control and was marked for internal use to discourage its usage. Full support for IXmlSerializable in ASP.NET Web services has been introduced in the .NET Framework 2.0 in direct response to customer feedback for scenarios that require more control of the schema and wire format.”

So it was basically hidden from view.  Now, hopefully I’ll be able to sleep so I’m off to bed.

How knowledegable do you have to be?

I seem to make a point of sharing my .NET discoveries with the concept of “heh, if *I* can do this, so can you!” That is the point of why I am doing a WSE2 talk at DevConnections though I am hardly an expert. Michele LePlumber Bustamante is also doing a WSE2 talk at this conference, but she is doing something much deeper. Hopefully hers will be scheduled *after* mine.

My talk will really be for people who think it’s all too scary and wouldn’t even try to use it. The point is that you can at least leverage SOME of WSE2 and make some improvements (especially on the security end) to your apps even if you don’t really understand plumbing or all of that WS-* specification stuff. (“You know like rockets and lasers and stuff” – sorry … family joke).

One thing that I learned from talking with Michele and also asking Don Box at TechEd (I should rephrase that, one of the many things…) was that WSE2 is now easy enough to get yourself into trouble. I.E. you don’t have to be a plumber to implement some of it’s functions, but you’ll need to call a plumber if you have a leak. This is another part of my mission with the talk – to make sure dummies like myself know where they should tread and where they should not and when to call in a pro!

All this talk of plumbing makes me think of this funny item in the Duluth Trading Co. catalog that Rich and I got a good giggle from…

blogs.ineta.org!

http://blogs.ineta.org

Jeff Julian has spun off all of the INETA volunteer bloggers from Geekswithblogs.net onto the INETA website. This works in much the same was as the filter from weblogs.asp.net to blogs.msdn.com.

Since there were already a bunch of INETA related people on geekswithblogs.net you will find a host of bloggers already. This is not an INETA info only blog – it is the blogs of the INETA volunteers and of course, these are all super blogs. Bill Evjen is currently heading up the count with the most posts with Jeff and Amy Sorokas leading right behind!

If you are an INETA volunteer and would like a blog, just contact Jeff. The info is at the top of the blogs.ineta.org page.