<div dir="ltr">I have pushed my changes to RabbitMQ client for .NET for it to work in a Windows 8 Store / WinRT environment.  It includes a basic Windows Store application that connects to the specified amqp URL and subscribes to messages.  By pressing a button, messages can be sent to the RabbitMQ server and will then be received by the subscription and displayed in a list.<div>
<br></div><div>The unit tests had to be copied and ported to MSTest because NUnit doesn&#39;t deploy to an app container and some of the WinRT APIs require that.  Specifically getting the protocol from application configuration.</div>
<div><br></div><div style>I added a Subscription.NextAsync() and modified the SharedQueue to handle a Task based DequeueAsync efficiently.  This allows the main GUI loop to wait for a message without a separate thread.  These changes will only be compiled in if the project is a Windows Store App (which defines NETFX_CORE).</div>
<div style><br></div><div style>The SSL code is un-tested and probably broken.  The reason for the change is that the WinRT StreamSocket API handles the SSL internally and doesn&#39;t let the client code do as much as with the previous Socket implementation.  If someone with experience with SSL can take a look and test it, that would be great.  </div>
<div style><br></div><div style>Please take a look here:</div><div style><a href="https://bitbucket.org/nathanbrown/rabbitmq-dotnet-client/commits/branch/WinStore">https://bitbucket.org/nathanbrown/rabbitmq-dotnet-client/commits/branch/WinStore</a><br>
</div><div style><br></div><div style>It doesn&#39;t appear that the NuGet package creation is in this repository, so I was unable to make any changes to that.</div><div style><br></div><div style>Let me know of any feedback you have.</div>
<div style><br></div><div style>Thanks,</div><div style><br></div><div style>Nathan Brown</div><div style><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jun 25, 2013 at 10:29 AM, Nathan Brown <span dir="ltr">&lt;<a href="mailto:nathan@nkbrown.us" target="_blank">nathan@nkbrown.us</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Accidentally sent the message before I finished.<div><br></div><div>My questions were:</div><div><br></div>
<div>Is there any feedback on the code I&#39;ve submitted so far?<div><br></div><div>For the Windows 8 changes; How should I deal with the split in the codebase?  Should I use conditional compilation like #ifdef NETFX_CORE, or use copies of the files that change and links for the ones that don&#39;t?  I personally think that conditional compilation for most changes and only separate files for the ones that change a lot (like SSL handling) is the best option.</div>

</div><div><br></div><div>Thanks,</div><div><br></div><div>Nathan</div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jun 25, 2013 at 10:22 AM, Nathan Brown <span dir="ltr">&lt;<a href="mailto:nathan@nkbrown.us" target="_blank">nathan@nkbrown.us</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I&#39;ve submitted the contributor agreement, and I hope the submitted changes can now be reviewed and considered for main-line inclusion.<div>

<br></div><div>Emile mentioned that this is now under &quot;bug25552&quot;, should I re-base my code to the most recent .net client release and set the branch name to match?</div>
<div><br></div><div>Also, there are really the separate changes that could be made independently:</div><div><ul><li><a href="https://bitbucket.org/nathanbrown/rabbitmq-dotnet-client/commits/25988f1d5bea8ad86aed536edd4d4fe1826ac43f" target="_blank">Corrected test to pull correct value types from dictionary.</a><br>


</li><li>Move from non-generic dictionary (.net 1.1) to generic dictionary, required, but independent of the next change.  This is my <a href="https://bitbucket.org/nathanbrown/rabbitmq-dotnet-client/commits/branch/depreciate1_1" target="_blank">&quot;depreciate1_1&quot; branch</a>.</li>


<li>Add Windows 8/RT code to handle differences in threads and sockets.</li><li>Threads are removed in favor of Tasks, and sockets have been removed in favor of StreamSockts</li></ul><div>*</div><div><br></div>
</div></div><div class="gmail_extra"><br><br><div class="gmail_quote"><div><div>On Sat, May 11, 2013 at 2:05 PM, Michael Klishin <span dir="ltr">&lt;<a href="mailto:michael.s.klishin@gmail.com" target="_blank">michael.s.klishin@gmail.com</a>&gt;</span> wrote:<br>


</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr"><div class="gmail_extra"><div>2013/5/12 Nathan Brown <span dir="ltr">&lt;<a href="mailto:nathan@nkbrown.us" target="_blank">nathan@nkbrown.us</a>&gt;</span><br>


<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

 I&#39;m also not familiar with setting up and testing SSL in RabbitMQ.</blockquote></div><br></div>Take a look at <a href="http://rabbitmq.com/ssl.html" target="_blank">http://rabbitmq.com/ssl.html</a><span><font color="#888888"><br>


-- <br>MK<br><br><a href="http://github.com/michaelklishin" target="_blank">http://github.com/michaelklishin</a><br>

<a href="http://twitter.com/michaelklishin" target="_blank">http://twitter.com/michaelklishin</a><br>
</font></span></div></div>
<br></div></div>_______________________________________________<br>
rabbitmq-discuss mailing list<br>
<a href="mailto:rabbitmq-discuss@lists.rabbitmq.com" target="_blank">rabbitmq-discuss@lists.rabbitmq.com</a><br>
<a href="https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss" target="_blank">https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss</a><br>
<br></blockquote></div><br></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>