Updated: 8/12/2003; 11:01:26 AM.
John Bristowe's Weblog
public class JohnBristowe : Plumber, ITookTheRedPill { ... }
        

Wednesday, February 12, 2003

From Mr. Remoting himself:

Distributed .NET Newsletter.

Early next week, I'll send out the first issue of my free Distributed .NET Newsletter.

This bi-weekly newsletter contains real world tips and tricks about .NET Remoting, Web Services and EnterpriseServices, and design guidance for distributed applications. You'll also find the occasional pointers to other free resources like white papers, patterns&practices documents or other great samples on the web.

You can subscribe to the newsletter in HTML or plaintext format at http://www.ingorammer.com/contact/Newsletter.aspx.

To all weblog writers, newsletter publishers and usergroup members: It would be really great if you could help me spread the word! This newsletter contains real world advice, is completely free and I promise to never give any email addresses to any third party. Ever. I hate spam as much as you do.

[Ingo Rammer's DotNetCentric]

Spread the word...


11:47:46 PM    comment []

Neat-o!

// GrooveOutputFilter.cs
// John Bristowe (
john.bristowe@empowered.com) - February 12th, 2003

// This work is licensed under the Creative Commons Attribution-ShareAlike
// License (
http://creativecommons.org/licenses/by-sa/1.0)

using Microsoft.Web.Services;
using Microsoft.Win32;
using System;
using System.Xml;

namespace Groove.Web.Services
{
 public class GrooveOutputFilter : SoapOutputFilter
 {
  public override void ProcessMessage(SoapEnvelope envelope)
  {
   if (envelope == null) throw new ArgumentNullException("envelope");

   bool isLocalInvocation = envelope.Context["target"] == null;

   XmlElement soapHeader = envelope.CreateHeader();

   XmlElement grooveHeader = envelope.CreateElement("GrooveHeader", "http://webservices.groove.net/Groove/1.0/Core/");
   soapHeader.AppendChild(grooveHeader);

   XmlElement grooveHeaderTtl = envelope.CreateElement("TimeToLive", "http://webservices.groove.net/Groove/1.0/Core/");

   if (envelope.Context["ttl"] == null) grooveHeaderTtl.InnerText = "30";
   else grooveHeaderTtl.InnerText = envelope.Context["ttl"].ToString();

   grooveHeader.AppendChild(grooveHeaderTtl);

   if (isLocalInvocation)
   {
    RegistryKey grooveRegistryKey = Registry.CurrentUser.OpenSubKey("Software\\Groove Networks, Inc.\\Groove\\WebServices");
    if (grooveRegistryKey != null)
    {
     string nonce = (string) grooveRegistryKey.GetValue("WebServicesNonce");

     XmlElement grooveNonce = envelope.CreateElement("GrooveNonce", "http://webservices.groove.net/Groove/1.0/Core/");
     grooveNonce.InnerText = nonce;

     grooveHeader.AppendChild(grooveNonce);
    }

    string identityUrl = envelope.Context["identityUrl"] as string;
    if (identityUrl != null)
    {
     XmlElement grooveIdentityUrl = envelope.CreateElement("GrooveIdentityURL", "
http://webservices.groove.net/Groove/1.0/Core/");
     grooveIdentityUrl.InnerText = identityUrl;

     grooveHeader.AppendChild(grooveIdentityUrl);
    }
   }
   else
   {
    string target = envelope.Context["target"] as string;

    XmlElement grooveTarget = envelope.CreateElement("TargetURL", "http://webservices.groove.net/Groove/1.0/Core/");
    grooveTarget.InnerText = target;
   }
  }  
 }
}

Invoking Read from a client application is a snap:

class HelloGroove
{
 [STAThread]
 static void Main()
 {
  GrooveAccounts grooveAccounts = new GrooveAccounts();
  grooveAccounts.Url = "
http://localhost:9080/GWS/Groove/1.0/Accounts/";

  Account[] accounts = grooveAccounts.Read();
 }
}

GrooveAccounts is a WSE client-side proxy.


11:29:54 PM    comment []

After hearing about Groove over & over & over & over, I finally broke down and installed the Preview Edition tonight.

Neat! It runs like a dream; no hitches, no hiccups. (I'm running Windows Server 2003 RC2.)

Cool! It exposes SOAP endpoints.

Sweet Jesus! This is one of the coolest collaboration applications I've ever seen.

It's time to start the revolution at my company.


8:45:21 PM    comment []

© Copyright 2003 John Bristowe.
 
February 2003
Sun Mon Tue Wed Thu Fri Sat
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28  
Jan   Mar


Click here to visit the Radio UserLand website.

Subscribe to "John Bristowe's Weblog" in Radio UserLand.

Click to see the XML version of this web page.

Click here to send an email to the editor of this weblog.