October 22, 2003

Finally

Well, I did it. Giant commit today and now basic .Messaging works. It works well enough to send simple messages across soap.tcp.

Along the way I discovered a small but nasty bug with XmlDocument.Load (Stream). Normally when something cleans up after itself, you say thank you and move along. However, in this case, when .Messaging thinks it gets to close the NetworkStream but XmlDocument has already done it, things get a bit strange. Worked around it for now, and am on my way to bugzilla to file a nice new bug about it.

Finally getting these files working, finished, and into cvs has made my day, thats for sure. Now on to the next project, not sure if it will be more Transports, or maybe something a bit different, but we will see :)

Posted by tberman at 02:16 PM | Comments (0)

October 19, 2003

And I hang my head in shame

Well, I know I said that the end of this week might see a nice checkin from me with lots of .Messaging stuff.

And, if I've said it once, I'll say it again, the end of this week might see a nice checkin from me :)

Seriously though, I have been working on it pretty regularly, just lots and lots of stuff goes into it to get it all working properly. The work is progressing, so I am hoping for some good news in the future.

On a kinda Mono front, if there are any Mono/.Net hackers in the Toronto, Canada area, please drop me a note if you can, I would love to get an idea of the size of the community in this area.

Posted by tberman at 08:12 PM | Comments (0)

October 13, 2003

More WSE2 fun/news

Well, some good news, and maybe some more good news.

I finished an initial implementation passthrough of the Microsoft.Web.Services.Addressing namespace. No doubt there are bugs in it, and as well, there are a couple pieces that are missing. Notably, the ServiceName implementation is very lacking. However, in general, it is fairly complete.

So, now I have moved onto doing some work inside the Messaging namespace. After laying down some code for the frameworking and then implementing the soap.tcp code, I am curious of the other 3 supported transport mechanisms (http, https, soap.inproc) which ones users would like to see implemented before others? As well, what other parts of the WSE2 spec are people waiting on implementation, is it Policy, or Routing, or what? My own WSE2 uses so far have been restricted to Addressing, and Messaging, so I'm not too sure what people out there are using and would like to see work moved forward on.

Hopefully by the end of the week I will have the soap.tcp stuff working, and I have a great gtk# app that uses it already to dogfeed it with and catch any potential bugs. However, it uses the WSE2 API in a very limited fashion, so its not the greatest. Does anyone out there have an app that either uses no gui, or a gui that works in mono, and has heavy use of WSE2? I doubt it, but if so, please let me know, I would love to be able to dogfeed this code even more :)

Posted by tberman at 05:37 PM | Comments (7)

October 12, 2003

The wonders of email

I must say, I love email, very much

Yesterday I fired an email off to Hervey Wilson regarding my SoapReceiver issue that I blogged about earlier. Today when I woke up, there was a nice fresh email reply from him saying that name resolution in WSE2 has gotten a lot better than it was for the Technical Preview. Great news.

He also said that he is looking at binding to specific IPs, but it does add greater complexity in general, either way, it was awesome to get a response so fast from a guy who has to be as busy as he is.

Posted by tberman at 12:28 PM | Comments (0)

October 10, 2003

NUnit fun

Well, after finishing up a first pass through implementation on Microsoft.Web.Services.Addressing, I figured it might be a good idea to write some NUnit test cases that pass fine on the ms class lib, and see what happens.

I figured the time consuming part would be writing the test case code... wow was I ever wrong.

First, I got to find out that the documentation for NUnit2.1 is very hard to find, most of the info I actually figured out came from running through the il for the NUnit.Framework.dll.

After I figured out how to write the test cases, I wrote a bunch, well, only 3 main classes of test cases, but I think its good enough to point me to the potential problems. Most of Microsoft.Web.Services.Addressing is based on 3 main classes: AttributedUri, AttributedUriString and EndpointReferenceType.

Since the 3 classes of test cases I wrote attempt to flex some of the API for all 3, I should be able to get a good indication of where I need to apply some bugfixing.

So, now, I booted up my linux box, and went to moving my test cases over, I was feeling pretty good at this point, and figured I was on the home stretch as far as seeing some mono results. Again, wrong, really really wrong.

I had to hack up the M.W.S Makefile to support building the test stuff, which was lots of fun, I promise.

After getting the Makefile ready, I went to build, only to find out that mono is using nunit2.0 not nunit2.1. So, I am now faced with a decision, either move my test cases backwards, or move mono forwards. Apparently some quality work has been put into moving nunit2.1 to mono already, so I will check the status of that before deciding.

For a quick fix, I attempted to copy over my NUnit.Framework.dll from my windows box to see if maybe I could just get this one test case to run. Now, I havnt used gnunit or nunit-console before, so my error might be completely from this move, or it might be completely different, but I couldnt get either test harness to successfully even load the test assembly... Lots of fun, I swear :)

Hopefully today I will get a little bit further and maybe get some test results to show off and brag about :)

Posted by tberman at 09:31 AM | Comments (1)

October 07, 2003

WSE2 is neat sometimes

So, as some of you know, I have been working on implementing parts of WSE2 on mono. There are plenty of potential issues with this, as it isn't yet a fully finished spec, so there are most likely going to be some changes. My fingers are crossed that the changes to the API are minimal at best.

However, one potential change I would like to see is this:

Running the following code results in this exception:

"Unhandled Exception: System.ArgumentException: Host name 127.0.0.1 does not represent the local machine (__LOCALHOST__)" with __LOCALHOST__ signifying the hostname of your wonderful windows computer.

SoapReceivers.Add(new Uri("soap.tcp://127.0.0.1/WSE2_Madness"), new MySoapReciever());

Now, it seems to me that this should work fine, one of the things I liked best about soap is that it shouldnt care where this message is sent to, just that it received it. The other great thing about WSE2 for me was the ability to send soap messages over tcp with ease, http's overhead is just something that isn't always needed and it was wonderful to see MS recognize this.

However, by forcing addressing based on windows host names, this seems like one of the potentially greatest features of WSE2 is going to be by and large relatively useless for the general public.

I could be misunderstanding the spec, or missing an important piece, and if so, I hope I figure out what it is, and grok it ASAP, because this is a potentially wonderful API that I hope gets major use.

Hopefully soon I will have some good news about the Microsoft.Web.Services.Addressing namespace working :)

Posted by tberman at 03:02 PM | Comments (1)

First in a series

Well, this morning I figured I would try a little something I had on my mind for the last day or two. The Mono project is huge, really really huge. There are a lot of developers, many who do things that aren't considered front page news (myself included). What I figured I would do, is once a month, or maybe twice, I would try and profile one of these 'Unsung Heros' and give the effort they put into making this project wonderful a little bit of press, for lack of a better word.

This time, I am going to introduce you to a guy named John Luke, or as many of us better know him, jluke.

This guy has his hands in some many different pieces of the project. He does a lot for the documentation effort, something which is so very important to attracting people to mono, and in particular, he attempts to document the little things about Gtk# that can drive people up the wall.

For example, about 2 weeks ago, I was experimenting with a right click context menu popup, pretty basic stuff if you ask me. After getting it set up what seemed to be correctly, all I would get from the right click was this little 2x2 menu with no menuitems, no text, and no 'click-ability'. This was extremely frustrating.

I then posted to the gtk-sharp mailing list asking if anyone else had seen this, and wondering what the potential fix might have been. The general consensus was that everyone had seen this behaviour, but no one knew quite how to fix it.

Most developers would have let it go at that, however a week later John Luke not only replied to the list that he had figured it out, and gave a code sample, he then also updated the Gtk# documentation to show this example, so as to prevent this happening to any other newbie Gtk# developers.

This is not the only example of John Luke's tenacity, and general determination for this project, but it is one that obviously affected me, and it shows what makes him, in my opinion, a unsung hero of Mono.

Posted by tberman at 11:33 AM | Comments (1)

October 06, 2003

Testing out my new blog

Well, as much as I hate blogging, the fever struck me, and miguel was kind enough to hook me up with this wonderful blog at ximian.

I will be using this to publish some opinions on my ongoing WSE2 implementation under mono, as well as some other code related musings.

For example, today at work I discovered that php tied into the gd library, even on win32. This opens up huge potential for me, as you can with this functionality, set the src of an img tag to a php script that returns an image and have it just display in the browser. Neat stuff if you ask me.

Posted by tberman at 04:18 PM | Comments (2)