blob: f7b056372d1a559cfc6de86551de39b7b5806d83 [file] [log] [blame]
<div class="wiki-content maincontent"><h2 id="NMS-GettingStartedwithNMS">Getting Started with NMS</h2>
<p>The NMS API provides your client with a common API model for working with Message Oriented Middleware, but to make use of the API you need to download one of the NMS Provider libraries. The NMS Providers libraries are what makes it possible for your code to connect to your Message Broker. Follow the links below to read more about the <a shape="rect" href="nms-providers.xml">NMS Provider</a> for your Message broker and <a shape="rect" href="download.xml">download</a> a release bundle.</p>
<h3 id="NMS-NMSProviders">NMS Providers</h3><p>An NMS Provider is a .NET Assembly that provides an implementation of the NMS API that provides connectivity with a particular Messaging Service or an implementation of a standard Messaging Protocol. Currently, the following providers are available:</p><ul><li><a shape="rect" href="apachenmsactivemq.xml"><strong>ActiveMQ</strong></a> client which communicates with ActiveMQ using its own native wire protocol and provides many <a shape="rect" href="activemq-advanced-features.xml">advanced features</a> beyond the standard NMS API.</li><li><a shape="rect" href="apachenmsstomp.xml"><strong>STOMP</strong></a> which connects to any <a shape="rect" class="external-link" href="http://stomp.codehaus.org/" rel="nofollow">STOMP Broker</a>.&#160; Also, when coupled with <a shape="rect" class="external-link" href="http://stomp.codehaus.org/StompConnect" rel="nofollow">StompConnect</a>, NMS can be used to communicate with pretty much any existing MOM provider! (Or at least those that support JMS which most MOM providers do).</li><li><a shape="rect" href="apachenmsmsmq.xml"><strong>MSMQ</strong></a> is an implementation of NMS using Microsoft's MSMQ API.</li><li><a shape="rect" href="apachenmsems.xml"><strong>EMS</strong></a> provider for talking to TIBCO's EMS message broker.&#160; To use this, you will need to following TIBCO's licensing requirements to acquire the TIBCO client assembly DLL.&#160; NMS does not ship with the TIBCO client assembly.</li><li><a shape="rect" href="apachenmswcf.xml"><strong>WCF</strong></a> provides support of Windows Communications Framework.</li><li><a shape="rect" href="apachenmsamqp.xml"><strong>AMQP</strong></a> is an implementation of NMS using the <a shape="rect" class="external-link" href="https://qpid.apache.org/components/messaging-api/index.html">Apache Qpid Messaging API</a>. AMQP 1.0 protocol support is provided by <a shape="rect" class="external-link" href="https://qpid.apache.org/proton/index.html">Apache Qpid Proton</a>.</li><li><a shape="rect" href="apachenmsmqtt.xml"><strong>MQTT</strong></a> provider uses the&#160;publish-subscribe<span style="color: rgb(37,37,37);">&#160;pattern that is a "light weight" messaging protocol for use on top of the&#160;</span><a shape="rect" class="external-link" href="https://en.wikipedia.org/wiki/TCP/IP" rel="nofollow" title="TCP/IP">TCP/IP protocol</a><span style="color: rgb(37,37,37);">.&#160;</span></li><li><span style="color: rgb(37,37,37);"><strong><a shape="rect" href="apachenmsxms.xml">XMS</a></strong> provider connects to the IBM WebSphere MQ Series broker.</span></li></ul>
<h2 id="NMS-Buildingthecode">Building the code</h2>
<p>While there are binary distributions available for all the <a shape="rect" href="nms-providers.xml">NMS Providers</a> you sometimes might want to build the code from trunk in order to test out the latest changes or fixes. On Windows you can use Visual Studio to build the code. On Linux or OS X you can use <a shape="rect" class="external-link" href="http://www.mono-project.com" rel="nofollow">Mono</a>.</p>
<p>The build uses <a shape="rect" class="external-link" href="http://nant.sourceforge.net/" rel="nofollow">NAnt</a> which both work on .Net and Mono.&#160; You will need to have NAnt 0.91-Alpha2 or later.</p>
<p>For more help see the <a shape="rect" class="external-link" href="http://activemq.apache.org/nms/building.html">Building NMS</a> guide.</p>
<h2 id="NMS-AlternativestoNMS">Alternatives to NMS</h2>
<p>There are currently a few alternatives to using NMS and working with ActiveMQ in .NET applications however the <a shape="rect" href="apachenmsactivemq.xml">NMS ActiveMQ Provider</a> is very feature rich and we recommend it as your starting point for .NET ActiveMQ inter-op.</p>
<ul><li>use the <a shape="rect" class="external-link" href="http://stomp.codehaus.org/DotNet" rel="nofollow">pure C# Stomp client</a> to access ActiveMQ from .Net using a lightweight client.</li><li>use the ActiveMQ Java client from C# and .Net using IKVM. <a shape="rect" class="external-link" href="http://dotnetjunkies.com/WebLog/csteen/archive/2004/08/20/22813.aspx" rel="nofollow">More information</a>.</li><li>use the <a shape="rect" class="external-link" href="http://activemq.apache.org/rest.html">ActiveMQ REST</a> API via HTTP</li><li>use the <a shape="rect" class="external-link" href="http://activemq.apache.org/c-integration.html">ActiveMQ C Integration</a> to reuse the C/C++ library.</li></ul></div>