<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Whaly&#039;s World &#187; Microsoft .NET</title>
	<atom:link href="http://baleinoid.com/whaly/category/coding/net/feed/" rel="self" type="application/rss+xml" />
	<link>http://baleinoid.com/whaly</link>
	<description>tail -f /var/log/whaly</description>
	<lastBuildDate>Wed, 10 Mar 2010 20:19:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Error 415 and WCF Compatibility between .Net 2.0 and 3.5</title>
		<link>http://baleinoid.com/whaly/2010/03/error-415-and-wcf-compatibility-between-net-2-0-and-3-5/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=error-415-and-wcf-compatibility-between-net-2-0-and-3-5</link>
		<comments>http://baleinoid.com/whaly/2010/03/error-415-and-wcf-compatibility-between-net-2-0-and-3-5/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 20:19:26 +0000</pubDate>
		<dc:creator>whaly</dc:creator>
				<category><![CDATA[Microsoft .NET]]></category>
		<category><![CDATA[binding]]></category>
		<category><![CDATA[Config]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[wcf]]></category>

		<guid isPermaLink="false">http://baleinoid.com/whaly/?p=157</guid>
		<description><![CDATA[If you try to call a 3.5 WCF Service with the framework 2.0 and WCF 3.0, you will have an error 415 : Cannot process the message because the content type 'text/xml; charset=utf-8' was not the expected type 'application/soap+xml; charset=utf-8' 'text/xml' is the content type for SOAP 1.1 while 'application/soap+xml' is the content type for [...]]]></description>
			<content:encoded><![CDATA[<p>If you try to call a 3.5 WCF Service with the framework 2.0 and WCF 3.0, you will have an error 415 :</p>
<blockquote><p>Cannot process the message because the content type 'text/xml; charset=utf-8' was not the expected type 'application/soap+xml; charset=utf-8'</p></blockquote>
<p>'text/xml' is the content type for SOAP 1.1 while 'application/soap+xml' is the content type for SOAP 1.2 and your client WCF 3.0 use SOAP 1.1 while the service with WCF 3.5 use SOAP 1.2.</p>
<p>Here is the solution that worked for me. If you have access to the service config, you just have to change the binding to use SOAP 1.1 :</p>
<p>Add a new custom binding in the 'bindings' section </p>
<pre class="brush: xml; light: true;">
      &lt;customBinding&gt;
        &lt;binding name=&quot;Soap11HttpBinding&quot;&gt;
          &lt;textMessageEncoding messageVersion=&quot;Soap11&quot; /&gt;
          &lt;httpTransport /&gt;
        &lt;/binding&gt;
      &lt;/customBinding&gt;
</pre>
<p>and don't forget to update your endpoint with the new binding :</p>
<pre class="brush: xml; light: true;">
    &lt;endpoint ...
        binding=&quot;customBinding&quot;
        bindingConfiguration=&quot;Soap11HttpBinding&quot;&gt;
        ...
    &lt;/endpoint&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://baleinoid.com/whaly/2010/03/error-415-and-wcf-compatibility-between-net-2-0-and-3-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to remove Diacritics in .net C#</title>
		<link>http://baleinoid.com/whaly/2010/01/how-to-remove-diacritics-in-net-c/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=how-to-remove-diacritics-in-net-c</link>
		<comments>http://baleinoid.com/whaly/2010/01/how-to-remove-diacritics-in-net-c/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 18:36:13 +0000</pubDate>
		<dc:creator>whaly</dc:creator>
				<category><![CDATA[Microsoft .NET]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[diacritics]]></category>
		<category><![CDATA[string]]></category>

		<guid isPermaLink="false">http://baleinoid.com/whaly/?p=145</guid>
		<description><![CDATA[If you need to remove diacritics from a string you can : [Bad] do a lot's of replace like inputString = inputString.Replace('À', 'A'); repeat for ÀÁÂÃÄâãäàáÈÉÊËêëèéÌÍÎÏîïìíÒÓÔÖôõöòóÙÚÛÜûüùúÝýÑñç and maybe miss some exotic chars or the Õ in this list ! [Good] or you can use this function public static string RemoveDiacritics(string inputString) { //!\\ Warning 'œ' [...]]]></description>
			<content:encoded><![CDATA[<p>If you need to remove diacritics from a string you can :</p>
<ul>
<li>[Bad] do a lot's of replace like <img src='http://baleinoid.com/whaly/blog/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> </li>
</ul>
<pre class="brush: csharp; light: true;">inputString = inputString.Replace('À', 'A');</pre>
<p>repeat for ÀÁÂÃÄâãäàáÈÉÊËêëèéÌÍÎÏîïìíÒÓÔÖôõöòóÙÚÛÜûüùúÝýÑñç and maybe miss some exotic chars or the Õ in this list !</p>
<ul>
<li>[Good] or you can use this function <img src='http://baleinoid.com/whaly/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
</ul>
<pre class="brush: csharp; light: true;">
	public static string RemoveDiacritics(string inputString)
	{
		//!\\ Warning 'œ' will be replaced with a 'o' not an 'oe'
		String normalizedString = inputString.Normalize(NormalizationForm.FormD);
		StringBuilder stringBuilder = new StringBuilder();
		for (int i = 0; i &lt; normalizedString.Length; i++)
		{
			Char c = normalizedString[i];
			if (System.Globalization.CharUnicodeInfo.GetUnicodeCategory(c) != System.Globalization.UnicodeCategory.NonSpacingMark)
				stringBuilder.Append(c);
		}
		return stringBuilder.ToString();
	}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://baleinoid.com/whaly/2010/01/how-to-remove-diacritics-in-net-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WCF WSDL SOAP binding: Rpc or Document, Encoded or Literal</title>
		<link>http://baleinoid.com/whaly/2009/10/wcf-wsdl-soap-binding-rpc-or-document-encoded-or-literal/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=wcf-wsdl-soap-binding-rpc-or-document-encoded-or-literal</link>
		<comments>http://baleinoid.com/whaly/2009/10/wcf-wsdl-soap-binding-rpc-or-document-encoded-or-literal/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 19:38:02 +0000</pubDate>
		<dc:creator>whaly</dc:creator>
				<category><![CDATA[Microsoft .NET]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[document]]></category>
		<category><![CDATA[encoded]]></category>
		<category><![CDATA[literal]]></category>
		<category><![CDATA[rpc]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[wcf]]></category>
		<category><![CDATA[wsdl]]></category>

		<guid isPermaLink="false">http://baleinoid.com/whaly/?p=92</guid>
		<description><![CDATA[Yeah, my new WebService must be Rpc/Encoded. What ???? Hopefully this page from Ibm explain the different style/use in SOAP message. A WSDL document describes a Web service. A WSDL binding describes how the service is bound to a messaging protocol, particularly the SOAP messaging protocol. A WSDL SOAP binding can be either a Remote [...]]]></description>
			<content:encoded><![CDATA[<p>Yeah, my new WebService must be <strong>Rpc/Encoded</strong>. What ????</p>
<p>Hopefully this <a href="http://www.ibm.com/developerworks/webservices/library/ws-whichwsdl/">page</a> from Ibm explain the different style/use in SOAP message.</p>
<blockquote><p>A WSDL document describes a Web service. A WSDL binding describes how the service is bound to a messaging protocol, particularly the SOAP messaging protocol. A WSDL SOAP binding can be either a Remote Procedure Call (RPC) style binding or a document style binding. A SOAP binding can also have an encoded use or a literal use.</p></blockquote>
<p>Ok now I know that four style/use models:<br />
RPC/Encoded, RPC/literal, <del>Document/encoded</del> or Document/literal</p>
<p>But how do I do that in WCF C# ?? It's very easy, just use the [<a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.xmlserializerformatattribute.aspx">XmlSerializerFormat</a>] attribute.</p>
<p>Here is a very very simple test to check the different result in the soap message:</p>
<p><strong>Interface of the Wcf service used :</strong></p>
<pre class="brush: csharp; light: true;">
using System.ServiceModel;

namespace WcfService1
{
    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        [XmlSerializerFormat(Style = OperationFormatStyle.Rpc, Use = OperationFormatUse.Encoded)]
        string TestRpcEncoded(int value);

        [OperationContract]
        [XmlSerializerFormat(Style = OperationFormatStyle.Rpc, Use = OperationFormatUse.Literal)]
        string TestRpcLiteral(int value);

        //[OperationContract]
        //[XmlSerializerFormat(Style = OperationFormatStyle.Document, Use = OperationFormatUse.Encoded)]
        //string TestDocumentEncoded(int value);

        [OperationContract]
        [XmlSerializerFormat(Style = OperationFormatStyle.Document, Use = OperationFormatUse.Literal)]
        string TestDocumentLiteral(int value);
    }
}
</pre>
<p><strong>Result captured on the network with fiddler:</strong></p>
<p><em>For clarity, I have removed:</p>
<ul>
<li>s:Envelope tag</li>
<li>xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"</li>
<li>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"</li>
<li>xmlns:xsd="http://www.w3.org/2001/XMLSchema"</li>
<li>xmlns="http://tempuri.org/"</li>
</ul>
<p></em></p>
<p><strong>RPC / Encoded call</strong></p>
<pre class="brush: xml; light: true;">
&lt;!-- Request --&gt;
&lt;s:Body s:encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;&gt;
  &lt;q1:TestRpcEncoded&gt;
    &lt;value xsi:type=&quot;xsd:int&quot;&gt;42&lt;/value&gt;
  &lt;/q1:TestRpcEncoded&gt;
&lt;/s:Body&gt;

&lt;!-- Response --&gt;
&lt;s:Body s:encodingStyle=&quot;http://schemas.xmlsoap.org/soap/encoding/&quot;&gt;
  &lt;q1:TestRpcEncodedResponse&gt;
    &lt;TestRpcEncodedResult xsi:type=&quot;xsd:string&quot;&gt;You entered: 42&lt;/TestRpcEncodedResult&gt;
  &lt;/q1:TestRpcEncodedResponse&gt;
&lt;/s:Body&gt;
</pre>
<p><strong>RPC / Literal call</strong></p>
<pre class="brush: xml; light: true;">
&lt;!-- Request --&gt;
&lt;s:Body&gt;
  &lt;TestRpcLiteral&gt;
    &lt;value xmlns=&quot;&quot;&gt;42&lt;/value&gt;
  &lt;/TestRpcLiteral&gt;
&lt;/s:Body&gt;

&lt;!-- Response --&gt;
&lt;s:Body&gt;
  &lt;TestRpcLiteralResponse&gt;
    &lt;TestRpcLiteralResult xmlns=&quot;&quot;&gt;You entered: 42&lt;/TestRpcLiteralResult&gt;
  &lt;/TestRpcLiteralResponse&gt;
&lt;/s:Body&gt;
</pre>
<p><strong>Document / Encoded call</strong><br />
If you add the TestDocumentEncoded you will get an InvalidOperationException.<br />
This combination is not supported.</p>
<p><strong>Document / Literal call</strong></p>
<pre class="brush: xml; light: true;">
&lt;!-- Request --&gt;
&lt;s:Body&gt;&lt;/code&gt;
  &lt;TestDocumentLiteral&gt;&lt;value&gt;42&lt;/value&gt;&lt;/TestDocumentLiteral&gt;
&lt;/s:Body&gt;

&lt;!-- Response --&gt;
&lt;s:Body&gt;
  &lt;TestDocumentLiteralResponse&gt;
    &lt;TestDocumentLiteralResult&gt;You entered: 42&lt;/TestDocumentLiteralResult&gt;
  &lt;/TestDocumentLiteralResponse&gt;
&lt;/s:Body&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://baleinoid.com/whaly/2009/10/wcf-wsdl-soap-binding-rpc-or-document-encoded-or-literal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The time separator</title>
		<link>http://baleinoid.com/whaly/2009/08/the-time-separator/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=the-time-separator</link>
		<comments>http://baleinoid.com/whaly/2009/08/the-time-separator/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 14:13:38 +0000</pubDate>
		<dc:creator>whaly</dc:creator>
				<category><![CDATA[Microsoft .NET]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[datetime]]></category>
		<category><![CDATA[locale]]></category>

		<guid isPermaLink="false">http://baleinoid.com/whaly/?p=55</guid>
		<description><![CDATA[DateTime.Now.ToString(&#34;HH:mm:ss&#34;); is a common mystake if you want to transmit to someone or to be sure that you have something like "HH:mm:ss" because the character (:) is not just a colon, it's a time separator wich depend on the locale. Here is a list of culture where the (:) change into a dot (.) it-IT [...]]]></description>
			<content:encoded><![CDATA[<pre class="brush: csharp; light: true;">DateTime.Now.ToString(&quot;HH:mm:ss&quot;);</pre>
<p>is a common mystake if you want to transmit to someone or to be sure that you have something like "HH:mm:ss" because the character (:) is not just a colon, it's a time separator wich depend on the locale.</p>
<p>Here is a list of culture where the (:) change into a dot (.)<br />
it-IT : Italian (Italy)<br />
fo-FO : Faroese (Faroe Islands)<br />
bn-BD : Bengali (Bangladesh)<br />
ml-IN : Malayalam (India)<br />
bn-IN : Bengali (India)</p>
<p>To workaround you can use CultureInfo.InvariantCulture or escape the colon character.</p>
<p>... and same story for the date separator "/" but this one is at this time the same for every culture.</p>
]]></content:encoded>
			<wfw:commentRss>http://baleinoid.com/whaly/2009/08/the-time-separator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changing the subtitle language in Monkey Island Special Edition</title>
		<link>http://baleinoid.com/whaly/2009/07/changing-the-subtitle-language-in-monkey-island-special-edition/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=changing-the-subtitle-language-in-monkey-island-special-edition</link>
		<comments>http://baleinoid.com/whaly/2009/07/changing-the-subtitle-language-in-monkey-island-special-edition/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 18:42:42 +0000</pubDate>
		<dc:creator>whaly</dc:creator>
				<category><![CDATA[Game]]></category>
		<category><![CDATA[Microsoft .NET]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[language]]></category>
		<category><![CDATA[Monkey Island]]></category>
		<category><![CDATA[subtitle]]></category>
		<category><![CDATA[tool]]></category>

		<guid isPermaLink="false">http://baleinoid.com/whaly/?p=18</guid>
		<description><![CDATA[The first time you start Monkey Island SE, you can choose the subtitle language, but after that you can't do it anymore with the game interface. You can follow the instruction on the steam support page or you can use my little tool and if you don't trust me the source code is available. Have [...]]]></description>
			<content:encoded><![CDATA[<p>The first time you start <a href="http://monkeyislandspecialedition.com/">Monkey Island SE</a>, you can choose the subtitle language, but after that you can't do it anymore with the game interface.</p>
<p>You can follow the instruction on the steam <a href="https://support.steampowered.com/kb_article.php?ref=4485-RTLN-7894">support page</a> or you can use <a href="http://baleinoid.com/whaly/projects/MonkeyIslandSELanguageConfig/MonkeyIslandSELanguageConfig_Bin.zip">my little tool</a> and if you don't trust me <a href="http://baleinoid.com/whaly/projects/MonkeyIslandSELanguageConfig/MonkeyIslandSELanguageConfig_Source.zip">the source code is available</a>.<br />
<img alt="" src="http://baleinoid.com/whaly/projects/MonkeyIslandSELanguageConfig/MonkeyIslandSELanguageConfig_Screenshot.png" title="Monkey Island SE Language Config Screenshot" class="aligncenter" width="263" height="275" /><br />
Have fun !<br />
Whaly</p>
<p><center><br />
<object type="application/x-shockwave-flash" data="http://widgets.clearspring.com/o/4a1c128fff6697d7/4a64bbd6a6ab7e5f/4a1c128fff6697d7/75c3d344" id="W4a1c128fff6697d74a64bbd6a6ab7e5f" width="400" height="400"><param name="movie" value="http://widgets.clearspring.com/o/4a1c128fff6697d7/4a64bbd6a6ab7e5f/4a1c128fff6697d7/75c3d344" /><param name="wmode" value="transparent" /><param name="allowNetworking" value="all" /><param name="allowScriptAccess" value="always" /></object><br />
</center></p>
]]></content:encoded>
			<wfw:commentRss>http://baleinoid.com/whaly/2009/07/changing-the-subtitle-language-in-monkey-island-special-edition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XmlWriter and UTF-8 encoding without signature</title>
		<link>http://baleinoid.com/whaly/2009/07/xmlwriter-and-utf-8-encoding-without-signature/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=xmlwriter-and-utf-8-encoding-without-signature</link>
		<comments>http://baleinoid.com/whaly/2009/07/xmlwriter-and-utf-8-encoding-without-signature/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 19:41:13 +0000</pubDate>
		<dc:creator>whaly</dc:creator>
				<category><![CDATA[Microsoft .NET]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[encoding]]></category>
		<category><![CDATA[utf8]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://baleinoid.com/whaly/?p=3</guid>
		<description><![CDATA[I used this code to serialize some objects in Xml : XmlWriter writer = new XmlTextWriter(stream, Encoding.UTF8); But the output contains an UTF header, the Byte Order Mark (BOM). The use of the header/signature is usually for xml file, if you want to use the ouput in an HttpResponse, you don't need the signature. (some [...]]]></description>
			<content:encoded><![CDATA[<p>I used this code to serialize some objects in Xml :</p>
<pre class="brush: csharp; light: true;">XmlWriter writer = new XmlTextWriter(stream, Encoding.UTF8);</pre>
<p>But the output contains an UTF header, the Byte Order Mark (BOM). The use of the header/signature is usually for xml file, if you want to use the ouput in an HttpResponse, you don't need the signature. (some parser can cause a parsing error in java, like org.xml.sax.SAXException).</p>
<p>Here is the change to remove the BOM :</p>
<pre class="brush: csharp; light: true;">XmlWriter writer = new XmlTextWriter(stream, new UTF8Encoding(false));</pre>
]]></content:encoded>
			<wfw:commentRss>http://baleinoid.com/whaly/2009/07/xmlwriter-and-utf-8-encoding-without-signature/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
