<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Rants</title>
        <link>http://geekswithblogs.net/wojan/category/4935.aspx</link>
        <description>Rants regarding Microsoft development.</description>
        <language>en-US</language>
        <copyright>Scott Wojan</copyright>
        <managingEditor>wojohnson@rocketmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>An open plea to Microsoft to fix the serializers in WCF.</title>
            <link>http://geekswithblogs.net/wojan/archive/2010/12/10/143086.aspx</link>
            <description>&lt;p&gt;I simply DO NOT understand how Microsoft can be this far along with a tool like WCF and it STILL tout it as being an "Enterprise" tool.&lt;/p&gt;
&lt;p&gt;For example... The following is a simple xsd schema with a VERY simple data contract that any enterprise would expect an "enterprise system" to be able to handle:&lt;/p&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xml &lt;/span&gt;&lt;span style="color: red; font-size: 9.5pt"&gt;version&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;=&lt;/span&gt;&lt;span style="font-size: 9.5pt"&gt;"&lt;span style="color: blue"&gt;1.0&lt;/span&gt;" &lt;span style="color: red"&gt;encoding&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;utf-8&lt;/span&gt;"&lt;span style="color: blue"&gt;?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:schema &lt;/span&gt;&lt;span style="color: red; font-size: 9.5pt"&gt;id&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;=&lt;/span&gt;&lt;span style="font-size: 9.5pt"&gt;"&lt;span style="color: blue"&gt;Sample&lt;/span&gt;"&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;    &lt;/span&gt;&lt;span style="color: red; font-size: 9.5pt"&gt;targetNamespace&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;=&lt;/span&gt;&lt;span style="font-size: 9.5pt"&gt;"&lt;span style="color: blue"&gt;http://tempuri.org/Sample.xsd&lt;/span&gt;"&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;    &lt;/span&gt;&lt;span style="color: red; font-size: 9.5pt"&gt;elementFormDefault&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;=&lt;/span&gt;&lt;span style="font-size: 9.5pt"&gt;"&lt;span style="color: blue"&gt;qualified&lt;/span&gt;"&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;    &lt;/span&gt;&lt;span style="color: red; font-size: 9.5pt"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;=&lt;/span&gt;&lt;span style="font-size: 9.5pt"&gt;"&lt;span style="color: blue"&gt;http://tempuri.org/Sample.xsd&lt;/span&gt;"&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;    &lt;/span&gt;&lt;span style="color: red; font-size: 9.5pt"&gt;xmlns:mstns&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;=&lt;/span&gt;&lt;span style="font-size: 9.5pt"&gt;"&lt;span style="color: blue"&gt;http://tempuri.org/Sample.xsd&lt;/span&gt;"&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;    &lt;/span&gt;&lt;span style="color: red; font-size: 9.5pt"&gt;xmlns:xs&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;=&lt;/span&gt;&lt;span style="font-size: 9.5pt"&gt;"&lt;span style="color: blue"&gt;http://www.w3.org/2001/XMLSchema&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt; &lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:element &lt;/span&gt;&lt;span style="color: red; font-size: 9.5pt"&gt;name&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;=&lt;/span&gt;&lt;span style="font-size: 9.5pt"&gt;"&lt;span style="color: blue"&gt;SomeDataElement&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:annotation&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;      &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:documentation&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt"&gt;This documents the data element. This sure would be nice for consumers to see!&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;xs:documentation&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:annotation&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:complexType&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;      &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:all&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:element &lt;/span&gt;&lt;span style="color: red; font-size: 9.5pt"&gt;name&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;=&lt;/span&gt;&lt;span style="font-size: 9.5pt"&gt;"&lt;span style="color: blue"&gt;Description&lt;/span&gt;" &lt;span style="color: red"&gt;minOccurs&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;0&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;          &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:simpleType&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:restriction &lt;/span&gt;&lt;span style="color: red; font-size: 9.5pt"&gt;base&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;=&lt;/span&gt;&lt;span style="font-size: 9.5pt"&gt;"&lt;span style="color: blue"&gt;xs:string&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;              &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:minLength &lt;/span&gt;&lt;span style="color: red; font-size: 9.5pt"&gt;value&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;=&lt;/span&gt;&lt;span style="font-size: 9.5pt"&gt;"&lt;span style="color: blue"&gt;0&lt;/span&gt;"&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;              &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:maxLength &lt;/span&gt;&lt;span style="color: red; font-size: 9.5pt"&gt;value&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;=&lt;/span&gt;&lt;span style="font-size: 9.5pt"&gt;"&lt;span style="color: blue"&gt;255&lt;/span&gt;"&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;            &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:restriction&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;          &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:simpleType&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:element&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;      &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:all&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;      &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:attribute &lt;/span&gt;&lt;span style="color: red; font-size: 9.5pt"&gt;name&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;=&lt;/span&gt;&lt;span style="font-size: 9.5pt"&gt;"&lt;span style="color: blue"&gt;IPAddress&lt;/span&gt;" &lt;span style="color: red"&gt;use&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;required&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:annotation&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;          &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:documentation&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt"&gt;Another explanation!  WOW!&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;xs:documentation&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:annotation&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;        &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:simpleType&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;          &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:restriction &lt;/span&gt;&lt;span style="color: red; font-size: 9.5pt"&gt;base&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;=&lt;/span&gt;&lt;span style="font-size: 9.5pt"&gt;"&lt;span style="color: blue"&gt;xs:string&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;            &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:pattern &lt;/span&gt;&lt;span style="color: red; font-size: 9.5pt"&gt;value&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;=&lt;/span&gt;&lt;span style="font-size: 9.5pt"&gt;"&lt;span style="color: blue"&gt;(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])&lt;/span&gt;"&lt;span style="color: blue"&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;          &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:restriction&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;        &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:simpleType&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;      &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:attribute&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;    &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:complexType&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt; &amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:element&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt; &lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:schema&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;gt;&lt;/span&gt; &lt;/div&gt;
&lt;p&gt;An minimal example xml document would be:&lt;/p&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xml &lt;/span&gt;&lt;span style="color: red; font-size: 9.5pt"&gt;version&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;=&lt;/span&gt;&lt;span style="font-size: 9.5pt"&gt;"&lt;span style="color: blue"&gt;1.0&lt;/span&gt;"&lt;span style="color: red"&gt;encoding&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;utf-8&lt;/span&gt;"&lt;span style="color: blue"&gt; ?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;SomeDataElement&lt;/span&gt;&lt;span style="color: red; font-size: 9.5pt"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;=&lt;/span&gt;&lt;span style="font-size: 9.5pt"&gt;"&lt;span style="color: blue"&gt;http://tempuri.org/Sample.xsd&lt;/span&gt;" &lt;span style="color: red"&gt;IPAddress&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;1.1.168.10&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;SomeDataElement&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;With the max example being: &lt;/p&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xml &lt;/span&gt;&lt;span style="color: red; font-size: 9.5pt"&gt;version&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;=&lt;/span&gt;&lt;span style="font-size: 9.5pt"&gt;"&lt;span style="color: blue"&gt;1.0&lt;/span&gt;"&lt;span style="color: red"&gt;encoding&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;utf-8&lt;/span&gt;"&lt;span style="color: blue"&gt; ?&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;SomeDataElement&lt;/span&gt;&lt;span style="color: red; font-size: 9.5pt"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;=&lt;/span&gt;&lt;span style="font-size: 9.5pt"&gt;"&lt;span style="color: blue"&gt;http://tempuri.org/Sample.xsd&lt;/span&gt;" &lt;span style="color: red"&gt;IPAddress&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;1.1.168.10&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt; &amp;lt;&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;Description&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 9.5pt"&gt;ddd&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Description&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;SomeDataElement&lt;/span&gt;&lt;span style="color: blue; font-size: 9.5pt"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;This schema simply CANNOT be exposed by WCF. &lt;/p&gt;
&lt;p&gt;Let's list why: &lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;svcutil.exe will not generate classes for you because it can't read an xsd with &lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:annotation&lt;/span&gt;.&lt;/li&gt;
    &lt;li&gt;Even if you remove the documentation, the DataContractSerializer DOES NOT support attributes so IPAddress would become an element this not meeting the contract&lt;/li&gt;
    &lt;li&gt;xsd.exe could generate classes but it is a very legacy tool, generates legacy code, and you still suffer from the following issues:&lt;/li&gt;
    &lt;li&gt;NONE of the serializers support emitting of the &lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:annotation&lt;/span&gt; documentation.  You'd think a consumer would really like to have as much documentation as possible!&lt;/li&gt;
    &lt;li&gt;NONE of the serializers support the enforcement of &lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:restriction&lt;/span&gt; so you can forget about the &lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:&lt;/span&gt;&lt;font color="#a31515" size="2"&gt;minLength&lt;/font&gt;, &lt;font color="#a31515" size="2"&gt;&lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:&lt;/span&gt;maxLength&lt;/font&gt;, or &lt;span style="color: #a31515; font-size: 9.5pt"&gt;xs:pattern&lt;/span&gt; enforcement.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Microsoft... please, please, please, please look at putting the work into your serializers so that they support &lt;u&gt;the very basics &lt;/u&gt;of designing enterprise data contracts!!&lt;/p&gt;
&lt;p&gt; &lt;/p&gt; &lt;img src="http://geekswithblogs.net/wojan/aggbug/143086.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Wojan</dc:creator>
            <guid>http://geekswithblogs.net/wojan/archive/2010/12/10/143086.aspx</guid>
            <pubDate>Fri, 10 Dec 2010 18:40:12 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/wojan/comments/143086.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/wojan/archive/2010/12/10/143086.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/wojan/comments/commentRss/143086.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/wojan/services/trackbacks/143086.aspx</trackback:ping>
        </item>
        <item>
            <title>What Is Everyone's Biggest Pet Peeve??</title>
            <link>http://geekswithblogs.net/wojan/archive/2006/06/29/83629.aspx</link>
            <description>&lt;P&gt;&lt;FONT face=Arial&gt;&lt;FONT size=2&gt;&lt;EM&gt;(I know I'm setting myself up for at least one shot at me)&lt;/EM&gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=3&gt;&lt;STRONG&gt;My #1 biggest pet peeve is C# naming conventions!!&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;U&gt;Field Variables&lt;/U&gt;&lt;BR&gt;Man does it drive me bonkers to find&amp;nbsp;field variables with a prefix like &lt;FONT face="Courier New"&gt;_MyVariable&lt;/FONT&gt; or even worse &lt;FONT face="Courier New"&gt;m_MyVariable&lt;/FONT&gt;.&amp;nbsp; Arrrgh, it hurts just to even type it!&amp;nbsp; What does the underscore do for you?&amp;nbsp; Tell you that it's a field variable?&amp;nbsp; Why not have &lt;FONT face="Courier New"&gt;&amp;#222;MyVariable&lt;/FONT&gt; or or &lt;FONT face="Courier New"&gt;z&amp;#230;MyVariable&lt;/FONT&gt;?&amp;nbsp; Those are just as arbitrary as an underscore or m underscore.&amp;nbsp; If you can't determine the variable is a field variable from the code you're in, I'd say that your method or class has become too bloated and could use some refactoring.&amp;nbsp; Personally, I stick to field variables using camelCase and if it needs it, the property accessor with PascalCase.&amp;nbsp; So &lt;FONT face="Courier New"&gt;myVariable&lt;/FONT&gt; and &lt;FONT face="Courier New"&gt;MyVariable&lt;/FONT&gt;.&amp;nbsp; No other crazy characters needed!&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=2&gt;&lt;U&gt;Reference Types&lt;/U&gt;&lt;BR&gt;If it isn't a value type, then it's a reference type and eventually down the inheritance tree its great grandpappy is Object.&amp;nbsp; Why oh why do I run across stuff like &lt;FONT face="Courier New"&gt;Customer objCustomer = new Customer();&lt;/FONT&gt;&amp;nbsp; I look at this and read "Object Customer is a Customer Object".&amp;nbsp; Come on people, this isn't an untyped scripting language!!&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial size=4&gt;So, what gets your blood boiling&amp;nbsp;out there in coding land?&lt;/FONT&gt;&lt;/P&gt; &lt;img src="http://geekswithblogs.net/wojan/aggbug/83629.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Wojan</dc:creator>
            <guid>http://geekswithblogs.net/wojan/archive/2006/06/29/83629.aspx</guid>
            <pubDate>Thu, 29 Jun 2006 23:16:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/wojan/comments/83629.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/wojan/archive/2006/06/29/83629.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/wojan/comments/commentRss/83629.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/wojan/services/trackbacks/83629.aspx</trackback:ping>
        </item>
        <item>
            <title>BLINQ?  You’re kidding me right?</title>
            <link>http://geekswithblogs.net/wojan/archive/2006/06/28/83485.aspx</link>
            <description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;So I'm signed up to receive ".NET Insight", the newsletter from the guys over at &lt;A href="http://www.ftponline.com"&gt;FTPOnline&lt;/A&gt;, and I get a recent one with &amp;#8220;&lt;A href="http://www.ftponline.com/channels/aspnet/2006_06/rjennings/"&gt;Generate Data-Based Web Sites With Blinq&lt;/A&gt;&amp;#8221; as&amp;nbsp;a news&amp;nbsp;title.&amp;nbsp; My first thought is &amp;#8220;greeeat... another &lt;EM&gt;blah&lt;/EM&gt;LINQ technology to add to all the &lt;EM&gt;x&lt;/EM&gt;LINQ confusion....&amp;#8221;.&amp;nbsp; Hesitantly, I click the link and begin to read about BLINQ... blah, blah, blah... &amp;#8220;&lt;EM&gt;Blinq.exe is a deceptively simple command-line tool&amp;#8212;similar to SqlMetal.exe for LINQ to SQL&amp;#8212;that auto-generates a complete, fully navigable Web site for viewing, editing, adding, or deleting data in a SQL Server database.&lt;/EM&gt;&amp;#8221;... ERRRRRRT!!!&amp;nbsp;&lt;EM&gt;(insert deer in headlights look here)...&lt;/EM&gt; In a haze I kind of make out &lt;EM&gt;&amp;#8220;autogenerate...&amp;#8221; &amp;#8220;25-page ASP.NET Web site...&amp;#8221; &amp;#8220;NorthWind...&amp;#8221;.&lt;/EM&gt;&amp;nbsp; I finally come to and continue reading to the next page when I hit &lt;EM&gt;&amp;#8220;Each table generates a TableName.aspx page with a paged GridView control, TableNameDetails.aspx page with a DetailsView control, and a NewTableName.aspx page with a DetailsView that defaults to Insert mode. Users navigate the site with SiteMap buttons and breadcrumbs, as well as HyperLinkField objects in GridView and DetailsView controls.&amp;#8221;&lt;/EM&gt;.&amp;nbsp; Next thing I know, I'm waking up on the floor and my dog is&amp;nbsp;licking my face.&amp;nbsp; I gracefully get back into my chair and resume reading the article and yes, the product/tool &lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;truly &lt;/SPAN&gt;is as horrible as it reads.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Why does Microsoft do this to people?&amp;nbsp; Does anyone remember Microsoft Access?&amp;nbsp; Didn't everyone learn that auto-generated apps from tables&amp;nbsp;are &lt;SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;inflexible &lt;/SPAN&gt;and hard to maintain?&amp;nbsp; Even the most simple database designs have numerous intersection tables and this thing is going to create 3 screens plus all the plumbing for each of those?&amp;nbsp; What happens if I have a database schema, generate the whole app using this tool, tweak it for look and feel, remove the useless stuff like intersection table screens and then... gasp... I have to make a schema change like add a new table or pull a column out into a lookup table.&amp;nbsp; What then?&amp;nbsp; I have to regenerate the whole thing again, tweak the look and feel, and delete all the useless stuff again?&amp;nbsp; How is that productive?&amp;nbsp; How is this helping anyone Microsoft?&amp;nbsp;&amp;nbsp; The people that would even use a product/tool like this are exactly the ones that shouldn't be using a tool like this it's going to get abused, get them in trouble and then they are going to have to call in consultants to help them redo the whole thing properly... &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;....&amp;nbsp; &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;....&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;So as I was saying... this new BLINQ tool sounds like the real deal business people,&amp;nbsp;you don't&amp;nbsp;need developers, you can do it all yourself!&amp;nbsp; Go BLINQ!&lt;/P&gt; &lt;img src="http://geekswithblogs.net/wojan/aggbug/83485.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Scott Wojan</dc:creator>
            <guid>http://geekswithblogs.net/wojan/archive/2006/06/28/83485.aspx</guid>
            <pubDate>Thu, 29 Jun 2006 02:58:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/wojan/comments/83485.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/wojan/archive/2006/06/28/83485.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/wojan/comments/commentRss/83485.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/wojan/services/trackbacks/83485.aspx</trackback:ping>
        </item>
    </channel>
</rss>
