qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chuck Rolke <cro...@redhat.com>
Subject Re: different versions of .NET clients
Date Mon, 29 Nov 2010 18:28:53 GMT
Adam,

The .NET Binding is hidden away in the /cpp directory.

Here's a way to build it:

1. Fetch the qpid-0.8.tar.gz (57M) to your system. Say, to D:\qpid

2. Unzip, untar (7zip works great) to D:\qpid. You now have
   D:\qpid\qpid-0.8\cpp\...

3. Run powershell script
   D:\qpid\qpid-0.8\cpp\bindings\qpid\dotnet\configure-windows.ps1

4. This script asks you to identify
   a. The directory that holds 32-bit boost. Navigate to it, single click it, and click OK.
   b. The new, out-of-source directory in which to run CMake.
      This is the QPID_BUILD_ROOT folder for 32-bit builds.
      Select the parent directory for it (the default 'qpid-0.8' is fine)
      Press 'Make New Folder'
      Type in 'x86' and press OK
   c. Run CMake in the folder you created? Press Yes.

   d. The questions repeat for a 64-bit build. To skip 64-bit builds, press Cancel.
      For now just press Cancel.

   CMake runs to populate your QPID_BUILD_ROOT with generated sources and project files

5. Navigate to your QPID_BUILD_ROOT D:\qpid\qpid-0.8\x86

6. Build the qpid-cpp.sln solution. For now, just build Debug, Win32.
   This is a 'regular cpp build'.
   This step produces all the "cpp libraries" that the .NET binding will need.

7. In QPID_BUILD_ROOT execute the procedure start-devenv-messaging-x86-32bit.bat.
   This step launches the .NET Binding solution with QPID_BUILD_ROOT and with BOOST_ROOT
   set appropriately.

8. In the solution, select Configuration Debug, Platform x86. Build the solution.

After building the .NET Binding solution you will have the binding proper and a dozen or so
examples like client-server, drain-spout, sender-receiver, and helloworld ready to run.

This setup allows you to develop 32-bit and 64-bit .NET Binding code without having to adjust
your environment to find the right version of Boost. The procedure assigns the *_ROOT values
and then launchs Visual Studio so you always have the correct QPID_BUILD_ROOT and the 
correct Boost in your path.

Thanks Steve and Cliff for clarifying the WCF and DOTNET status.

-Chuck

----- "Adam Crain" <acrain@greenenergycorp.com> wrote:

> From: "Adam Crain" <acrain@greenenergycorp.com>
> To: users@qpid.apache.org
> Sent: Monday, November 29, 2010 12:13:21 PM GMT -05:00 US/Canada Eastern
> Subject: Re: different versions of .NET clients
>
> Hi Steve,
> 
> Thanks for the reply. I just looked at your RC directory and
> downloaded:
> 
> http://people.apache.org/~robbie/qpid/0.8/RC3/qpid-dotnet-0-10-0.8.zip
> 
> Is the file you intended for me to examine? I only see binary
> artifacts
> here.
> 
> -Adam
> 
> On Mon, Nov 29, 2010 at 12:05 PM, Steve Huston <shuston@riverace.com>
> wrote:
> 
> > Hi Adam,
> >
> > > There appear to be two different .NET clients available:
> > >
> > > 1) http://apache.cyberuse.com//qpid/0.6/qpid-wcf-0.6.zip
> > >
> > > 2) http://apache.cyberuse.com//qpid/0.6/qpid-dotnet-0-10-0.6.zip
> > >
> > > 1) appears to be a .NET/WCF wrapper around the C++ client (is
> > > this correct?). I have gotten this to compile and run.
> >
> > Correct.
> >
> > > 2) The README describes as a native .NET implementation also
> > > compatible with amqp 0.10
> >
> > Also correct. Though #2 does not get much attention or maintenance.
> My
> > history is sketchy on this, but my undestanding is #2 started as a
> > translation of the Java client; again, I believe it doesn't get
> much
> > attention.
> >
> > > Downloading 2), there appears to be no source in the
> > > distribution, although the README claims that the following
> > > folder should exist after unpacking:
> > >
> > > *******
> > > Generate code from <project home>/dotnet/client-010/gentool:
> > >
> > >   $ cd <project home>/dotnet/client-010/gentool
> > >   $ ant
> > > *******
> > >
> > > In the distro there are two folders, examples and lib, that
> > > only contain binary artifacts.
> > >
> > > What are the major differences between these two
> > > implementations from an API perspective? I've been using the
> > > java client extensively and now want to provide .NET support.
> >
> > If I were you and wanted to program to a .NET model instead of WCF
> > model, I'd look more at the .NET binding in the forthcoming 0.8. You
> can
> > grab a release candidate from
> > http://people.apache.org/~robbie/qpid/0.8/RC3/. It's not a nice
> Windows
> > installer yet so you'll need to build it from source, but I think
> you'll
> > find it a closer model to what you want.
> >
> > If you want to be a guinea pig for an installer for this, let me
> know.
> >
> > -Steve
> >
> > --
> > Steve Huston, Riverace Corporation
> > Total Lifecycle Support for Your Networked Applications
> > http://www.riverace.com
> >
> >
> >
> ---------------------------------------------------------------------
> > Apache Qpid - AMQP Messaging Implementation
> > Project:      http://qpid.apache.org
> > Use/Interact: mailto:users-subscribe@qpid.apache.org
> >
> >

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org


Mime
View raw message